From afba4b2abd37b3de7d29a3be1f7e6ffad7db29de Mon Sep 17 00:00:00 2001 From: Nevur Date: Sun, 30 Apr 2017 14:49:33 +0200 Subject: [PATCH 001/111] Started to work towards PK3 support. -Tweaked compression conditional to a switch-case format, looking towards adding several comrpession algorithms; haven't removed the previous "compressed" boolean yet. -Added dynamically allocated name strings for lumps; haven't removed the previous name field. -Added rudimentary PK3 central directory recognition; nothing is actually loaded in the end. --- src/p_setup.c | 2 +- src/w_wad.c | 134 +++++++++++++++++++++++++++++++++++++++++++++----- src/w_wad.h | 9 ++++ 3 files changed, 133 insertions(+), 12 deletions(-) diff --git a/src/p_setup.c b/src/p_setup.c index a0c745e60..2e8822e60 100644 --- a/src/p_setup.c +++ b/src/p_setup.c @@ -2881,7 +2881,7 @@ boolean P_SetupLevel(boolean skipprecip) camera.angle = FixedAngle((fixed_t)thing->angle << FRACBITS); } } - + // Salt: CV_ClearChangedFlags() messes with your settings :( /*if (!cv_cam_height.changed) CV_Set(&cv_cam_height, cv_cam_height.defaultvalue); diff --git a/src/w_wad.c b/src/w_wad.c index b1b72eec1..678463580 100644 --- a/src/w_wad.c +++ b/src/w_wad.c @@ -115,6 +115,8 @@ void W_Shutdown(void) fclose(wadfiles[numwadfiles]->handle); Z_Free(wadfiles[numwadfiles]->lumpinfo); Z_Free(wadfiles[numwadfiles]->filename); + while (wadfiles[numwadfiles]->numlumps--) + Z_Free(wadfiles[numwadfiles]->lumpinfo[wadfiles[numwadfiles]->numlumps].name2); Z_Free(wadfiles[numwadfiles]); } } @@ -340,6 +342,8 @@ UINT16 W_LoadWadFile(const char *filename) // This code emulates a wadfile with one lump name "OBJCTCFG" // at position 0 and size of the whole file. // This allows soc files to be like all wads, copied by network and loaded at the console. + //wadfile->restype = RET_WAD; + numlumps = 1; lumpinfo = Z_Calloc(sizeof (*lumpinfo), PU_STATIC, NULL); lumpinfo->position = 0; @@ -347,6 +351,10 @@ UINT16 W_LoadWadFile(const char *filename) lumpinfo->size = ftell(handle); fseek(handle, 0, SEEK_SET); strcpy(lumpinfo->name, "OBJCTCFG"); + // Allocate the lump's full name. + lumpinfo->name2 = Z_Malloc(9 * sizeof(char), PU_STATIC, NULL); + strcpy(lumpinfo->name2, "OBJCTCFG"); + lumpinfo->name2[8] = '\0'; } #ifdef HAVE_BLUA // detect lua script with the "lua" extension @@ -355,6 +363,8 @@ UINT16 W_LoadWadFile(const char *filename) // This code emulates a wadfile with one lump name "LUA_INIT" // at position 0 and size of the whole file. // This allows soc files to be like all wads, copied by network and loaded at the console. + //wadfile->restype = RET_WAD; + numlumps = 1; lumpinfo = Z_Calloc(sizeof (*lumpinfo), PU_STATIC, NULL); lumpinfo->position = 0; @@ -362,11 +372,99 @@ UINT16 W_LoadWadFile(const char *filename) lumpinfo->size = ftell(handle); fseek(handle, 0, SEEK_SET); strcpy(lumpinfo->name, "LUA_INIT"); + // Allocate the lump's full name. + lumpinfo->name2 = Z_Malloc(9 * sizeof(char), PU_STATIC, NULL); + strcpy(lumpinfo->name2, "LUA_INIT"); + lumpinfo->name2[8] = '\0'; } #endif + else if (!stricmp(&filename[strlen(filename) - 4], ".pk3")) + { + long centralDirPos; + long handlePos; + long size; + char *sigBuffer; + + //wadfile->restype = RET_PK3; + CONS_Alert(CONS_NOTICE, "PK3 file detected.\n"); + + // Obtain the file's size. + fseek(handle, 0, SEEK_END); + size = ftell(handle); + CONS_Printf("PK3 size is: %ld\n", size); + + // We must look for the central directory through the file. + rewind(handle); + sigBuffer = malloc(sizeof(char)*4); + for (centralDirPos = 0; centralDirPos < size - 4; centralDirPos++) + { + fread(sigBuffer, 1, 4, handle); + if (memcmp(sigBuffer, "\x50\x4b\x01\x02", 4) == 0) + { + CONS_Printf("Found PK3 central directory at position %ld.\n", centralDirPos); + fseek(handle, -4, SEEK_CUR); + break; + } + else + fseek(handle, -3, SEEK_CUR); // Backwards 3 steps, since fread advances after giving the data. + } + + // Error if we couldn't find the central directory at all. It likely means this is not a ZIP/PK3 file. + if (centralDirPos + 4 == size) + { + CONS_Alert(CONS_ERROR, "No central directory inside PK3! File may be corrupted or incomplete.\n"); + free(sigBuffer); + return INT16_MAX; + } + + // Since we found the central directory, now we can map our lumpinfo table. + // We will look for file headers inside it, until we reach the central directory end signature. + CONS_Printf("Now finding central directory file headers...\n"); + for (handlePos = centralDirPos; handlePos < size - 3; handlePos++) + { + fread(sigBuffer, 1, 4, handle); + if (!memcmp(sigBuffer, "\x50\x4b\x01\x02", 4)) // Got a central dir file header. + { + char *eName; + unsigned short int eNameLen = 0; + unsigned short int eXFieldLen = 0; + unsigned short int eCommentLen = 0; + CONS_Printf("Entry at %ld:\n", handlePos); + // We get the variable length fields. + fseek(handle, 24, SEEK_CUR); + fscanf(handle, "%hu %hu %hu", &eNameLen, &eXFieldLen, &eCommentLen); + CONS_Printf("Name length is %u.\n", eNameLen); + + // We jump straight to the name field now. + fseek(handle, 10, SEEK_CUR); + eName = malloc(sizeof(char)*(eNameLen + 1)); + fgets(eName, eNameLen, handle); + CONS_Printf("%s\n", eName); + free(eName); + } + else if (!memcmp(sigBuffer, "\x50\x4b\x05\x06", 4)) // Found the central dir end signature, stop seeking. + { + CONS_Printf("Found central directory end at position %ld.\n", handlePos); + break; + } + fseek(handle, -3, SEEK_CUR); + } + // We reached way past beyond the file size. + // This means we couldn't find the central directory end signature, and thus the file might be broken. + if (handlePos + 3 == size) + { + CONS_Alert(CONS_ERROR, "No central dir end inside PK3! File may be corrupted or incomplete.\n"); + free(sigBuffer); + return INT16_MAX; + } + free(sigBuffer); + return INT16_MAX; + } + // assume wad file else { - // assume wad file + //wadfile->restype = RET_WAD; + wadinfo_t header; lumpinfo_t *lump_p; filelump_t *fileinfo; @@ -427,19 +525,29 @@ UINT16 W_LoadWadFile(const char *filename) { lump_p->size = realsize; lump_p->compressed = 1; + lump_p->compression = CM_LZF; } else { lump_p->size -= 4; lump_p->compressed = 0; + lump_p->compression = CM_NONE; } lump_p->position += 4; lump_p->disksize -= 4; } - else lump_p->compressed = 0; + else + { + lump_p->compressed = 0; + lump_p->compression = CM_NONE; + } memset(lump_p->name, 0x00, 9); strncpy(lump_p->name, fileinfo->name, 8); + // Allocate the lump's full name. + lump_p->name2 = Z_Malloc(9 * sizeof(char), PU_STATIC, NULL); + strncpy(lump_p->name2, fileinfo->name, 8); + lump_p->name2[8] = '\0'; } free(fileinfov); } @@ -843,17 +951,21 @@ size_t W_ReadLumpHeaderPwad(UINT16 wad, UINT16 lump, void *dest, size_t size, si if (!size || size+offset > lumpsize) size = lumpsize - offset; - if (wadfiles[wad]->lumpinfo[lump].compressed) + // + switch(wadfiles[wad]->lumpinfo[lump].compressed) { - UINT8 *data; - data = W_ReadCompressedLump(wad, lump); - if (!data) return 0; - M_Memcpy(dest, data+offset, size); - Z_Free(data); - return size; - } - else + case CM_LZF: + { + UINT8 *data; + data = W_ReadCompressedLump(wad, lump); + if (!data) return 0; + M_Memcpy(dest, data+offset, size); + Z_Free(data); + return size; + } + default: return W_RawReadLumpHeader(wad, lump, dest, size, offset); + } } size_t W_ReadLumpHeader(lumpnum_t lumpnum, void *dest, size_t size, size_t offset) diff --git a/src/w_wad.h b/src/w_wad.h index f7ea64a56..a882fb936 100644 --- a/src/w_wad.h +++ b/src/w_wad.h @@ -34,14 +34,19 @@ typedef struct UINT32 infotableofs; // the 'directory' of resources } wadinfo_t; +// Available compression methods for lumps. +enum compmethod{CM_NONE, CM_LZF}; + // a memory entry of the wad directory typedef struct { unsigned long position; // filelump_t filepos unsigned long disksize; // filelump_t size char name[9]; // filelump_t name[] + char *name2; // Dynamically allocated name. size_t size; // real (uncompressed) size INT32 compressed; // i + enum compmethod compression; // lump compression method } lumpinfo_t; // ========================================================================= @@ -58,9 +63,13 @@ typedef struct #include "m_aatree.h" #endif +// Resource type of the WAD. Yeah, I know this sounds dumb, but I'll leave it like this until I clean up the code further. +enum restype {RET_WAD, RET_PK3}; + typedef struct wadfile_s { char *filename; + enum restype restype; lumpinfo_t *lumpinfo; lumpcache_t *lumpcache; #ifdef HWRENDER From 376d2a2da30f32ca67b2726dae24f6d8ca9fc6aa Mon Sep 17 00:00:00 2001 From: Nevur Date: Sun, 30 Apr 2017 17:43:11 +0200 Subject: [PATCH 002/111] Further work on PK3 support. -PK3 files are now properly loaded as files. -PK3 lumps are still being treated the same way as WAD files. It means they're dependant on markers, if that makes any sense in the context of a ZIP file (it doesn't). I haven't worked out this part yet but I obviously intend to do so. -I don't know if the lumps' position address is correct, we'll figure out when I fix the thing from above. --- src/w_wad.c | 76 ++++++++++++++++++++++++++++++++++++++++++----------- 1 file changed, 61 insertions(+), 15 deletions(-) diff --git a/src/w_wad.c b/src/w_wad.c index 678463580..e1539af4b 100644 --- a/src/w_wad.c +++ b/src/w_wad.c @@ -380,11 +380,13 @@ UINT16 W_LoadWadFile(const char *filename) #endif else if (!stricmp(&filename[strlen(filename) - 4], ".pk3")) { - long centralDirPos; - long handlePos; - long size; + unsigned long centralDirPos; + unsigned long handlePos; + unsigned long size; char *sigBuffer; + numlumps = 0; + //wadfile->restype = RET_PK3; CONS_Alert(CONS_NOTICE, "PK3 file detected.\n"); @@ -423,23 +425,63 @@ UINT16 W_LoadWadFile(const char *filename) for (handlePos = centralDirPos; handlePos < size - 3; handlePos++) { fread(sigBuffer, 1, 4, handle); - if (!memcmp(sigBuffer, "\x50\x4b\x01\x02", 4)) // Got a central dir file header. + if (!memcmp(sigBuffer, "\x50\x4b\x01\x02", 4)) // Found a central dir file header. { char *eName; - unsigned short int eNameLen = 0; + unsigned short int eNameLen = 8; unsigned short int eXFieldLen = 0; unsigned short int eCommentLen = 0; - CONS_Printf("Entry at %ld:\n", handlePos); - // We get the variable length fields. - fseek(handle, 24, SEEK_CUR); - fscanf(handle, "%hu %hu %hu", &eNameLen, &eXFieldLen, &eCommentLen); - CONS_Printf("Name length is %u.\n", eNameLen); + unsigned int eSize = 0; + unsigned int eCompSize = 0; + unsigned int eLocalHeaderOffset = 0; + + fseek(handle, 16, SEEK_CUR); + fread(&eSize, 1, 4, handle); + fread(&eCompSize, 1, 4, handle); + + // We get the variable length fields. + fread(&eNameLen, 1, 2, handle); + fread(&eXFieldLen, 1, 2, handle); + fread(&eCommentLen, 1, 2, handle); + fseek(handle, 8, SEEK_CUR); + fread(&eLocalHeaderOffset, 1, 4, handle); // Get the offset. - // We jump straight to the name field now. - fseek(handle, 10, SEEK_CUR); eName = malloc(sizeof(char)*(eNameLen + 1)); - fgets(eName, eNameLen, handle); - CONS_Printf("%s\n", eName); + fgets(eName, eNameLen + 1, handle); + if (eSize == 0) // Is this entry a folder? + { + CONS_Printf("Folder %s at %ld:\n", eName, handlePos); + } + else // If not, then it is a normal file. Let's arrange its lumpinfo structure then! + { + CONS_Printf("File %s at %ld:\n", eName, handlePos); + + if (numlumps == 0) // First lump? Let's allocate the first lumpinfo block. + lumpinfo = Z_Malloc(sizeof(*lumpinfo), PU_STATIC, NULL); + else // Otherwise, reallocate and increase by 1. Might not be optimal, though... + lumpinfo = (lumpinfo_t*) Z_Realloc(lumpinfo, (numlumps + 1)*sizeof(*lumpinfo), PU_STATIC, NULL); + + lumpinfo[numlumps].position = eLocalHeaderOffset + 30 + eNameLen + eXFieldLen; + lumpinfo[numlumps].disksize = eCompSize; + + strncpy(lumpinfo[numlumps].name, eName + eNameLen - 8, 8); + lumpinfo[numlumps].name[8] = '\0'; + + lumpinfo[numlumps].name2 = Z_Malloc((eNameLen+1)*sizeof(char), PU_STATIC, NULL); + strncpy(lumpinfo[numlumps].name2, eName, eNameLen); + lumpinfo[numlumps].name2[eNameLen] = '\0'; + + lumpinfo[numlumps].size = eSize; + + lumpinfo[numlumps].compressed = 0; + + lumpinfo[numlumps].compression = CM_NONE; + + //CONS_Printf("The lump's current long name is %s\n", lumpinfo[numlumps].name2); + //CONS_Printf("The lump's current short name is %s\n", lumpinfo[numlumps].name); + numlumps++; + } + free(eName); } else if (!memcmp(sigBuffer, "\x50\x4b\x05\x06", 4)) // Found the central dir end signature, stop seeking. @@ -457,8 +499,12 @@ UINT16 W_LoadWadFile(const char *filename) free(sigBuffer); return INT16_MAX; } + + // If we've reached this far, then it means our dynamically stored lumpinfo has to be ready. + // Now we finally build our... incorrectly called wadfile. + // TODO: Maybe we should give them more generalized names, like resourcefile or resfile or something. + // Mostly for clarity and better understanding when reading the code. free(sigBuffer); - return INT16_MAX; } // assume wad file else From 448ceefe84426e88f77344fbb0ff4f955cef0851 Mon Sep 17 00:00:00 2001 From: Nevur Date: Sun, 30 Apr 2017 20:05:26 +0200 Subject: [PATCH 003/111] Little progress made. The code from everywhere still looks for the basic WAD structure of the lumps. -Removed a redundant boolean related to texture loading in P_AddWadFile. -Started working on handling PK3s differently, except that I'm not sure about what I'm doing. I don't know what to do from now on for today, so I'll leave it here for now. --- src/p_setup.c | 84 +++++++++++++++++++++++++++++++-------------------- src/w_wad.c | 22 +++++++++++--- src/w_wad.h | 2 +- 3 files changed, 70 insertions(+), 38 deletions(-) diff --git a/src/p_setup.c b/src/p_setup.c index 2e8822e60..1505e8c73 100644 --- a/src/p_setup.c +++ b/src/p_setup.c @@ -3027,8 +3027,8 @@ boolean P_AddWadFile(const char *wadfilename, char **firstmapname) UINT16 numlumps, wadnum; INT16 firstmapreplaced = 0, num; char *name; + char *fullName; lumpinfo_t *lumpinfo; - boolean texturechange = false; boolean replacedcurrentmap = false; if ((numlumps = W_LoadWadFile(wadfilename)) == INT16_MAX) @@ -3036,49 +3036,72 @@ boolean P_AddWadFile(const char *wadfilename, char **firstmapname) CONS_Printf(M_GetText("Errors occured while loading %s; not added.\n"), wadfilename); return false; } - else wadnum = (UINT16)(numwadfiles-1); + else + wadnum = (UINT16)(numwadfiles-1); + + lumpinfo = wadfiles[wadnum]->lumpinfo; // // search for sound replacements // - lumpinfo = wadfiles[wadnum]->lumpinfo; - for (i = 0; i < numlumps; i++, lumpinfo++) + switch(wadfiles[wadnum]->type) { - name = lumpinfo->name; - if (name[0] == 'D') + case RET_PK3: + for (i = 0; i < numlumps; i++, lumpinfo++) { - if (name[1] == 'S') for (j = 1; j < NUMSFX; j++) + name = lumpinfo->name; + fullName = lumpinfo->name2; + if (!strnicmp(fullName, "sounds", 6)) { - if (S_sfx[j].name && !strnicmp(S_sfx[j].name, name + 2, 6)) + // We found a sound. Let's check whether it's replacing an existing sound or it's a brand new one. + for (j = 1; j < NUMSFX; j++) { - // the sound will be reloaded when needed, - // since sfx->data will be NULL - CONS_Debug(DBG_SETUP, "Sound %.8s replaced\n", name); + if (S_sfx[j].name && !strnicmp(S_sfx[j].name, name, 6)) + { + // the sound will be reloaded when needed, + // since sfx->data will be NULL + CONS_Debug(DBG_SETUP, "Sound %.8s replaced\n", name); - I_FreeSfx(&S_sfx[j]); + I_FreeSfx(&S_sfx[j]); - sreplaces++; + sreplaces++; + } } } - else if (name[1] == '_') + } + break; + default: + for (i = 0; i < numlumps; i++, lumpinfo++) + { + name = lumpinfo->name; + if (name[0] == 'D') + { + if (name[1] == 'S') for (j = 1; j < NUMSFX; j++) + { + if (S_sfx[j].name && !strnicmp(S_sfx[j].name, name + 2, 6)) + { + // the sound will be reloaded when needed, + // since sfx->data will be NULL + CONS_Debug(DBG_SETUP, "Sound %.8s replaced\n", name); + + I_FreeSfx(&S_sfx[j]); + + sreplaces++; + } + } + else if (name[1] == '_') + { + CONS_Debug(DBG_SETUP, "Music %.8s replaced\n", name); + mreplaces++; + } + } + else if (name[0] == 'O' && name[1] == '_') { CONS_Debug(DBG_SETUP, "Music %.8s replaced\n", name); - mreplaces++; + digmreplaces++; } } - else if (name[0] == 'O' && name[1] == '_') - { - CONS_Debug(DBG_SETUP, "Music %.8s replaced\n", name); - digmreplaces++; - } -#if 0 - // - // search for texturechange replacements - // - else if (!memcmp(name, "TEXTURE1", 8) || !memcmp(name, "TEXTURE2", 8) - || !memcmp(name, "PNAMES", 6)) -#endif - texturechange = true; + break; } if (!devparm && sreplaces) CONS_Printf(M_GetText("%s sounds replaced\n"), sizeu1(sreplaces)); @@ -3095,10 +3118,7 @@ boolean P_AddWadFile(const char *wadfilename, char **firstmapname) // Reload it all anyway, just in case they // added some textures but didn't insert a // TEXTURE1/PNAMES/etc. list. - if (texturechange) // initialized in the sound check - R_LoadTextures(); // numtexture changes - else - R_FlushTextureCache(); // just reload it from file + R_LoadTextures(); // numtexture changes // Reload ANIMATED / ANIMDEFS P_InitPicAnims(); diff --git a/src/w_wad.c b/src/w_wad.c index e1539af4b..9c935e36e 100644 --- a/src/w_wad.c +++ b/src/w_wad.c @@ -293,6 +293,7 @@ UINT16 W_LoadWadFile(const char *filename) FILE *handle; lumpinfo_t *lumpinfo; wadfile_t *wadfile; + enum restype type; UINT32 numlumps; size_t i; INT32 compressed = 0; @@ -342,7 +343,7 @@ UINT16 W_LoadWadFile(const char *filename) // This code emulates a wadfile with one lump name "OBJCTCFG" // at position 0 and size of the whole file. // This allows soc files to be like all wads, copied by network and loaded at the console. - //wadfile->restype = RET_WAD; + type = RET_WAD; numlumps = 1; lumpinfo = Z_Calloc(sizeof (*lumpinfo), PU_STATIC, NULL); @@ -363,7 +364,7 @@ UINT16 W_LoadWadFile(const char *filename) // This code emulates a wadfile with one lump name "LUA_INIT" // at position 0 and size of the whole file. // This allows soc files to be like all wads, copied by network and loaded at the console. - //wadfile->restype = RET_WAD; + type = RET_WAD; numlumps = 1; lumpinfo = Z_Calloc(sizeof (*lumpinfo), PU_STATIC, NULL); @@ -387,7 +388,7 @@ UINT16 W_LoadWadFile(const char *filename) numlumps = 0; - //wadfile->restype = RET_PK3; + type = RET_PK3; CONS_Alert(CONS_NOTICE, "PK3 file detected.\n"); // Obtain the file's size. @@ -454,6 +455,7 @@ UINT16 W_LoadWadFile(const char *filename) } else // If not, then it is a normal file. Let's arrange its lumpinfo structure then! { + int namePos = eNameLen - 1; CONS_Printf("File %s at %ld:\n", eName, handlePos); if (numlumps == 0) // First lump? Let's allocate the first lumpinfo block. @@ -464,7 +466,16 @@ UINT16 W_LoadWadFile(const char *filename) lumpinfo[numlumps].position = eLocalHeaderOffset + 30 + eNameLen + eXFieldLen; lumpinfo[numlumps].disksize = eCompSize; - strncpy(lumpinfo[numlumps].name, eName + eNameLen - 8, 8); + // We will trim the file's full name so that only the filename is left. + while(namePos--) + { + if(eName[namePos] == '/') + { + namePos++; + break; + } + } + strncpy(lumpinfo[numlumps].name, eName + namePos, 8); lumpinfo[numlumps].name[8] = '\0'; lumpinfo[numlumps].name2 = Z_Malloc((eNameLen+1)*sizeof(char), PU_STATIC, NULL); @@ -509,7 +520,7 @@ UINT16 W_LoadWadFile(const char *filename) // assume wad file else { - //wadfile->restype = RET_WAD; + type = RET_WAD; wadinfo_t header; lumpinfo_t *lump_p; @@ -621,6 +632,7 @@ UINT16 W_LoadWadFile(const char *filename) // wadfile = Z_Malloc(sizeof (*wadfile), PU_STATIC, NULL); wadfile->filename = Z_StrDup(filename); + wadfile->type = type; wadfile->handle = handle; wadfile->numlumps = (UINT16)numlumps; wadfile->lumpinfo = lumpinfo; diff --git a/src/w_wad.h b/src/w_wad.h index a882fb936..c69c2e626 100644 --- a/src/w_wad.h +++ b/src/w_wad.h @@ -69,7 +69,7 @@ enum restype {RET_WAD, RET_PK3}; typedef struct wadfile_s { char *filename; - enum restype restype; + enum restype type; lumpinfo_t *lumpinfo; lumpcache_t *lumpcache; #ifdef HWRENDER From 2c614f8f2c75cff9e67be9269e41c2e02d5a9806 Mon Sep 17 00:00:00 2001 From: Nevur Date: Mon, 1 May 2017 16:37:32 +0200 Subject: [PATCH 004/111] More work on PK3 handling. -Moved the MD5 check for added files up so it avoids unnecessary work when you mess up and re-add a file. -Using compression enum for compressed lumps now. -Vastly improved central directory seeking algorithm, big files are read fine now. Thanks a lot JTE! -Improved remaining central directory navigation algorithm, we know and expect what data is coming from now on, after all. -TX_ textures and sounds are replaced, but textures crash the game on mapload, and sounds are simply mute when replaced. Might have to do something with caching, I don't know yet. --- src/p_setup.c | 2 +- src/r_data.c | 26 +++++-- src/w_wad.c | 206 +++++++++++++++++++++++++++++++++----------------- src/w_wad.h | 6 +- 4 files changed, 163 insertions(+), 77 deletions(-) diff --git a/src/p_setup.c b/src/p_setup.c index 1505e8c73..2109c5086 100644 --- a/src/p_setup.c +++ b/src/p_setup.c @@ -3046,7 +3046,7 @@ boolean P_AddWadFile(const char *wadfilename, char **firstmapname) // switch(wadfiles[wadnum]->type) { - case RET_PK3: + case 2342342: for (i = 0; i < numlumps; i++, lumpinfo++) { name = lumpinfo->name; diff --git a/src/r_data.c b/src/r_data.c index d29c625e7..fafa67c63 100644 --- a/src/r_data.c +++ b/src/r_data.c @@ -567,8 +567,16 @@ void R_LoadTextures(void) // but the alternative is to spend a ton of time checking and re-checking all previous entries just to skip any potentially patched textures. for (w = 0, numtextures = 0; w < numwadfiles; w++) { - texstart = W_CheckNumForNamePwad(TX_START, (UINT16)w, 0) + 1; - texend = W_CheckNumForNamePwad(TX_END, (UINT16)w, 0); + if (wadfiles[w]->type == RET_PK3) + { + texstart = W_CheckNumForFullNamePK3("txturs/", (UINT16)w, 0) + 1; + texend = W_CheckNumForFolderEndPK3("txturs/", (UINT16)w, texstart); + } + else + { + texstart = W_CheckNumForNamePwad(TX_START, (UINT16)w, 0) + 1; + texend = W_CheckNumForNamePwad(TX_END, (UINT16)w, 0); + } texturesLumpPos = W_CheckNumForNamePwad("TEXTURES", (UINT16)w, 0); if (texturesLumpPos != INT16_MAX) @@ -588,7 +596,7 @@ void R_LoadTextures(void) I_Error("No textures detected in any WADs!\n"); } } - + CONS_Printf("We got a number of %d textures.\n", numtextures); // Allocate memory and initialize to 0 for all the textures we are initialising. // There are actually 5 buffers allocated in one for convenience. textures = Z_Calloc((numtextures * sizeof(void *)) * 5, PU_STATIC, NULL); @@ -610,8 +618,16 @@ void R_LoadTextures(void) for (i = 0, w = 0; w < numwadfiles; w++) { // Get the lump numbers for the markers in the WAD, if they exist. - texstart = W_CheckNumForNamePwad(TX_START, (UINT16)w, 0) + 1; - texend = W_CheckNumForNamePwad(TX_END, (UINT16)w, 0); + if (wadfiles[w]->type == RET_PK3) + { + texstart = W_CheckNumForFullNamePK3("txturs/", (UINT16)w, 0) + 1; + texend = W_CheckNumForFolderEndPK3("txturs/", (UINT16)w, texstart); + } + else + { + texstart = W_CheckNumForNamePwad(TX_START, (UINT16)w, 0) + 1; + texend = W_CheckNumForNamePwad(TX_END, (UINT16)w, 0); + } texturesLumpPos = W_CheckNumForNamePwad("TEXTURES", (UINT16)w, 0); if (texturesLumpPos != INT16_MAX) diff --git a/src/w_wad.c b/src/w_wad.c index 9c935e36e..4645e87d5 100644 --- a/src/w_wad.c +++ b/src/w_wad.c @@ -337,6 +337,24 @@ UINT16 W_LoadWadFile(const char *filename) return INT16_MAX; } +#ifndef NOMD5 + // + // w-waiiiit! + // Let's not add a wad file if the MD5 matches + // an MD5 of an already added WAD file! + // + W_MakeFileMD5(filename, md5sum); + + for (i = 0; i < numwadfiles; i++) + { + if (!memcmp(wadfiles[i]->md5sum, md5sum, 16)) + { + CONS_Alert(CONS_ERROR, M_GetText("%s is already loaded\n"), filename); + return INT16_MAX; + } + } +#endif + // detect dehacked file with the "soc" extension if (!stricmp(&filename[strlen(filename) - 4], ".soc")) { @@ -381,11 +399,13 @@ UINT16 W_LoadWadFile(const char *filename) #endif else if (!stricmp(&filename[strlen(filename) - 4], ".pk3")) { - unsigned long centralDirPos; - unsigned long handlePos; + char curHeader[4]; unsigned long size; - char *sigBuffer; - + char seekPat[] = {0x50, 0x4b, 0x01, 0x02, 0x00}; + char endPat[] = {0x50, 0x4b, 0x05, 0x06, 0xff}; + char *s; + int c; + boolean matched = FALSE; numlumps = 0; type = RET_PK3; @@ -397,49 +417,63 @@ UINT16 W_LoadWadFile(const char *filename) CONS_Printf("PK3 size is: %ld\n", size); // We must look for the central directory through the file. + // All of the central directory entry headers have a signature of 0x50 0x4b 0x01 0x02. + // The first entry found means the beginning of the central directory. rewind(handle); - sigBuffer = malloc(sizeof(char)*4); - for (centralDirPos = 0; centralDirPos < size - 4; centralDirPos++) + s = seekPat; + while((c = fgetc(handle)) != EOF) { - fread(sigBuffer, 1, 4, handle); - if (memcmp(sigBuffer, "\x50\x4b\x01\x02", 4) == 0) + if (*s != c && s > seekPat) // No match? + s = seekPat; // We "reset" the counter by sending the s pointer back to the start of the array. + if (*s == c) { - CONS_Printf("Found PK3 central directory at position %ld.\n", centralDirPos); - fseek(handle, -4, SEEK_CUR); - break; + s++; + if (*s == 0x00) // The array pointer has reached the key char which marks the end. It means we have matched the signature. + { + matched = TRUE; + fseek(handle, -4, SEEK_CUR); + CONS_Printf("Found PK3 central directory at position %ld.\n", ftell(handle)); + break; + } } - else - fseek(handle, -3, SEEK_CUR); // Backwards 3 steps, since fread advances after giving the data. } // Error if we couldn't find the central directory at all. It likely means this is not a ZIP/PK3 file. - if (centralDirPos + 4 == size) + if (matched == FALSE) { CONS_Alert(CONS_ERROR, "No central directory inside PK3! File may be corrupted or incomplete.\n"); - free(sigBuffer); return INT16_MAX; } // Since we found the central directory, now we can map our lumpinfo table. // We will look for file headers inside it, until we reach the central directory end signature. + // We exactly know what data to expect this time, so now we don't need to do a byte-by-byte search. CONS_Printf("Now finding central directory file headers...\n"); - for (handlePos = centralDirPos; handlePos < size - 3; handlePos++) + while(ftell(handle) < size - 4) // Make sure we don't go past the file size! { - fread(sigBuffer, 1, 4, handle); - if (!memcmp(sigBuffer, "\x50\x4b\x01\x02", 4)) // Found a central dir file header. + fread(curHeader, 1, 4, handle); + + // We found a central directory entry signature? + if (!strncmp(curHeader, seekPat, 3)) { + // Let's fill in the fields that we actually need. + // (Declaring all those vars might not be the optimal way to do this, sorry.) char *eName; unsigned short int eNameLen = 8; unsigned short int eXFieldLen = 0; unsigned short int eCommentLen = 0; + unsigned short int eCompression = 0; unsigned int eSize = 0; unsigned int eCompSize = 0; unsigned int eLocalHeaderOffset = 0; - fseek(handle, 16, SEEK_CUR); + // We get the compression type indicator value. + fseek(handle, 6, SEEK_CUR); + fread(&eCompression, 1, 2, handle); + // Get the + fseek(handle, 8, SEEK_CUR); fread(&eSize, 1, 4, handle); fread(&eCompSize, 1, 4, handle); - // We get the variable length fields. fread(&eNameLen, 1, 2, handle); fread(&eXFieldLen, 1, 2, handle); @@ -449,15 +483,14 @@ UINT16 W_LoadWadFile(const char *filename) eName = malloc(sizeof(char)*(eNameLen + 1)); fgets(eName, eNameLen + 1, handle); - if (eSize == 0) // Is this entry a folder? + if (0)//(eSize == 0) // Is this entry a folder? { - CONS_Printf("Folder %s at %ld:\n", eName, handlePos); + CONS_Printf("Folder %s at %ld:\n", eName, ftell(handle)); } else // If not, then it is a normal file. Let's arrange its lumpinfo structure then! { int namePos = eNameLen - 1; - CONS_Printf("File %s at %ld:\n", eName, handlePos); - + CONS_Printf("File %s at: %ld\n", eName, ftell(handle)); if (numlumps == 0) // First lump? Let's allocate the first lumpinfo block. lumpinfo = Z_Malloc(sizeof(*lumpinfo), PU_STATIC, NULL); else // Otherwise, reallocate and increase by 1. Might not be optimal, though... @@ -465,7 +498,8 @@ UINT16 W_LoadWadFile(const char *filename) lumpinfo[numlumps].position = eLocalHeaderOffset + 30 + eNameLen + eXFieldLen; lumpinfo[numlumps].disksize = eCompSize; - + lumpinfo[numlumps].size = eSize; + CONS_Printf("Address: %ld, Full: %ld, Comp: %ld\n", lumpinfo[numlumps].position, lumpinfo[numlumps].size, lumpinfo[numlumps].disksize); // We will trim the file's full name so that only the filename is left. while(namePos--) { @@ -475,47 +509,65 @@ UINT16 W_LoadWadFile(const char *filename) break; } } + memset(lumpinfo[numlumps].name, '\0', 9) strncpy(lumpinfo[numlumps].name, eName + namePos, 8); - lumpinfo[numlumps].name[8] = '\0'; lumpinfo[numlumps].name2 = Z_Malloc((eNameLen+1)*sizeof(char), PU_STATIC, NULL); strncpy(lumpinfo[numlumps].name2, eName, eNameLen); lumpinfo[numlumps].name2[eNameLen] = '\0'; - lumpinfo[numlumps].size = eSize; - - lumpinfo[numlumps].compressed = 0; - - lumpinfo[numlumps].compression = CM_NONE; - - //CONS_Printf("The lump's current long name is %s\n", lumpinfo[numlumps].name2); - //CONS_Printf("The lump's current short name is %s\n", lumpinfo[numlumps].name); + // We set the compression type from what we're supporting so far. + switch(eCompression) + { + case 0: + lumpinfo[numlumps].compression = CM_NONE; + break; + case 8: + lumpinfo[numlumps].compression = CM_DEFLATE; + break; + case 14: + lumpinfo[numlumps].compression = CM_LZF; + break; + default: + CONS_Alert(CONS_WARNING, "Lump has an unsupported compression type!\n"); + lumpinfo[numlumps].compression = CM_NONE; + break; + } + fseek(handle, eXFieldLen + eCommentLen, SEEK_CUR); // We skip to where we expect the next central directory entry or end marker to be. numlumps++; } - free(eName); } - else if (!memcmp(sigBuffer, "\x50\x4b\x05\x06", 4)) // Found the central dir end signature, stop seeking. + // We found the central directory end signature? + else if (!strncmp(curHeader, endPat, 4)) { - CONS_Printf("Found central directory end at position %ld.\n", handlePos); + CONS_Printf("Central directory end signature found at: %ld\n", ftell(handle)); + + // We will create a "virtual" marker lump at the very end of lumpinfo for convenience. + // This marker will be used by the different lump-seeking (eg. textures, sprites, etc.) in PK3-specific cases in an auxiliary way. + lumpinfo = (lumpinfo_t*) Z_Realloc(lumpinfo, (numlumps + 1)*sizeof(*lumpinfo), PU_STATIC, NULL); + strcpy(lumpinfo[numlumps].name, "PK3_ENDM\0"); + lumpinfo[numlumps].name2 = Z_Malloc(14 * sizeof(char), PU_STATIC, NULL); + strcpy(lumpinfo[numlumps].name2, "PK3_ENDMARKER\0"); + lumpinfo[numlumps].position = 0; + lumpinfo[numlumps].size = 0; + lumpinfo[numlumps].disksize = 0; + lumpinfo[numlumps].compression = CM_NONE; + numlumps++; break; } - fseek(handle, -3, SEEK_CUR); + // ... None of them? We're only expecting either a central directory signature entry or the central directory end signature. + // The file may be broken or incomplete... + else + { + CONS_Alert(CONS_WARNING, "Expected central directory header signature, got something else!"); + return INT16_MAX; + } } - // We reached way past beyond the file size. - // This means we couldn't find the central directory end signature, and thus the file might be broken. - if (handlePos + 3 == size) - { - CONS_Alert(CONS_ERROR, "No central dir end inside PK3! File may be corrupted or incomplete.\n"); - free(sigBuffer); - return INT16_MAX; - } - // If we've reached this far, then it means our dynamically stored lumpinfo has to be ready. // Now we finally build our... incorrectly called wadfile. // TODO: Maybe we should give them more generalized names, like resourcefile or resfile or something. // Mostly for clarity and better understanding when reading the code. - free(sigBuffer); } // assume wad file else @@ -581,13 +633,11 @@ UINT16 W_LoadWadFile(const char *filename) if (realsize != 0) { lump_p->size = realsize; - lump_p->compressed = 1; lump_p->compression = CM_LZF; } else { lump_p->size -= 4; - lump_p->compressed = 0; lump_p->compression = CM_NONE; } @@ -596,7 +646,6 @@ UINT16 W_LoadWadFile(const char *filename) } else { - lump_p->compressed = 0; lump_p->compression = CM_NONE; } memset(lump_p->name, 0x00, 9); @@ -609,24 +658,6 @@ UINT16 W_LoadWadFile(const char *filename) free(fileinfov); } -#ifndef NOMD5 - // - // w-waiiiit! - // Let's not add a wad file if the MD5 matches - // an MD5 of an already added WAD file! - // - W_MakeFileMD5(filename, md5sum); - - for (i = 0; i < numwadfiles; i++) - { - if (!memcmp(wadfiles[i]->md5sum, md5sum, 16)) - { - CONS_Alert(CONS_ERROR, M_GetText("%s is already loaded\n"), filename); - return INT16_MAX; - } - } -#endif - // // link wad file to search files // @@ -797,6 +828,41 @@ UINT16 W_CheckNumForNamePwad(const char *name, UINT16 wad, UINT16 startlump) return INT16_MAX; } +// In a PK3 type of resource file, it looks for the next lumpinfo entry that doesn't share the specified pathfile. +// Useful for finding folder ends. +// Returns the position of the lumpinfo entry. +UINT16 W_CheckNumForFolderEndPK3(const char *name, UINT16 wad, UINT16 startlump) +{ + INT32 i; + lumpinfo_t *lump_p = wadfiles[wad]->lumpinfo + startlump; + for (i = startlump; i < wadfiles[wad]->numlumps; i++, lump_p++) + { + if (strnicmp(name, lump_p->name2, strlen(name))) + break; + } + // Not found at all? + CONS_Printf("W_CheckNumForFolderEndPK3: Folder %s end at %d.\n", name, i); + return i; +} + +// In a PK3 type of resource file, it looks for +// Returns lump position in PK3's lumpinfo, or INT16_MAX if not found. +UINT16 W_CheckNumForFullNamePK3(const char *name, UINT16 wad, UINT16 startlump) +{ + INT32 i; + lumpinfo_t *lump_p = wadfiles[wad]->lumpinfo + startlump; + for (i = startlump; i < wadfiles[wad]->numlumps; i++, lump_p++) + { + if (!strnicmp(name, lump_p->name2, strlen(name))) + { + CONS_Printf("W_CheckNumForNamePK3: Found %s at %d.\n", name, i); + return i; + } + } + // Not found at all? + return INT16_MAX; +} + // // W_CheckNumForName // Returns LUMPERROR if name not found. @@ -1010,7 +1076,7 @@ size_t W_ReadLumpHeaderPwad(UINT16 wad, UINT16 lump, void *dest, size_t size, si size = lumpsize - offset; // - switch(wadfiles[wad]->lumpinfo[lump].compressed) + switch(wadfiles[wad]->lumpinfo[lump].compression) { case CM_LZF: { diff --git a/src/w_wad.h b/src/w_wad.h index c69c2e626..1ddcd5a55 100644 --- a/src/w_wad.h +++ b/src/w_wad.h @@ -35,7 +35,7 @@ typedef struct } wadinfo_t; // Available compression methods for lumps. -enum compmethod{CM_NONE, CM_LZF}; +enum compmethod{CM_NONE, CM_DEFLATE, CM_LZF}; // a memory entry of the wad directory typedef struct @@ -107,6 +107,10 @@ const char *W_CheckNameForNumPwad(UINT16 wad, UINT16 lump); const char *W_CheckNameForNum(lumpnum_t lumpnum); UINT16 W_CheckNumForNamePwad(const char *name, UINT16 wad, UINT16 startlump); // checks only in one pwad + +UINT16 W_CheckNumForFullNamePK3(const char *name, UINT16 wad, UINT16 startlump); +UINT16 W_CheckNumForFolderEndPK3(const char *name, UINT16 wad, UINT16 startlump); + lumpnum_t W_CheckNumForName(const char *name); lumpnum_t W_GetNumForName(const char *name); // like W_CheckNumForName but I_Error on LUMPERROR lumpnum_t W_CheckNumForNameInBlock(const char *name, const char *blockstart, const char *blockend); From 65b89f6c0f046b91a9abc9e807e205f3c6949313 Mon Sep 17 00:00:00 2001 From: Nevur Date: Mon, 1 May 2017 16:43:52 +0200 Subject: [PATCH 005/111] Oops. It should compile now. --- src/w_wad.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/w_wad.c b/src/w_wad.c index 4645e87d5..c9d4d6534 100644 --- a/src/w_wad.c +++ b/src/w_wad.c @@ -509,7 +509,7 @@ UINT16 W_LoadWadFile(const char *filename) break; } } - memset(lumpinfo[numlumps].name, '\0', 9) + memset(lumpinfo[numlumps].name, '\0', 9); strncpy(lumpinfo[numlumps].name, eName + namePos, 8); lumpinfo[numlumps].name2 = Z_Malloc((eNameLen+1)*sizeof(char), PU_STATIC, NULL); From 146c7485f5ab3c6e033453200d8225316a0acd07 Mon Sep 17 00:00:00 2001 From: Nevur Date: Mon, 1 May 2017 16:59:59 +0200 Subject: [PATCH 006/111] Cleaned up a little bit of unused code. --- src/w_wad.c | 90 +++++++++++++++++++++++++---------------------------- 1 file changed, 42 insertions(+), 48 deletions(-) diff --git a/src/w_wad.c b/src/w_wad.c index 4645e87d5..96fae8927 100644 --- a/src/w_wad.c +++ b/src/w_wad.c @@ -466,6 +466,7 @@ UINT16 W_LoadWadFile(const char *filename) unsigned int eSize = 0; unsigned int eCompSize = 0; unsigned int eLocalHeaderOffset = 0; + int namePos; // We get the compression type indicator value. fseek(handle, 6, SEEK_CUR); @@ -481,61 +482,54 @@ UINT16 W_LoadWadFile(const char *filename) fseek(handle, 8, SEEK_CUR); fread(&eLocalHeaderOffset, 1, 4, handle); // Get the offset. + if (numlumps == 0) // First lump? Let's allocate the first lumpinfo block. + lumpinfo = Z_Malloc(sizeof(*lumpinfo), PU_STATIC, NULL); + else // Otherwise, reallocate and increase by 1. Might not be optimal, though... + lumpinfo = (lumpinfo_t*) Z_Realloc(lumpinfo, (numlumps + 1)*sizeof(*lumpinfo), PU_STATIC, NULL); + eName = malloc(sizeof(char)*(eNameLen + 1)); fgets(eName, eNameLen + 1, handle); - if (0)//(eSize == 0) // Is this entry a folder? + namePos = eNameLen - 1; + lumpinfo[numlumps].position = eLocalHeaderOffset + 30 + eNameLen + eXFieldLen; + lumpinfo[numlumps].disksize = eCompSize; + lumpinfo[numlumps].size = eSize; + CONS_Printf("File %s at: %ld\n", eName, ftell(handle)); + CONS_Printf("Address: %ld, Full: %ld, Comp: %ld\n", lumpinfo[numlumps].position, lumpinfo[numlumps].size, lumpinfo[numlumps].disksize); + // We will trim the file's full name so that only the filename is left. + while(namePos--) { - CONS_Printf("Folder %s at %ld:\n", eName, ftell(handle)); - } - else // If not, then it is a normal file. Let's arrange its lumpinfo structure then! - { - int namePos = eNameLen - 1; - CONS_Printf("File %s at: %ld\n", eName, ftell(handle)); - if (numlumps == 0) // First lump? Let's allocate the first lumpinfo block. - lumpinfo = Z_Malloc(sizeof(*lumpinfo), PU_STATIC, NULL); - else // Otherwise, reallocate and increase by 1. Might not be optimal, though... - lumpinfo = (lumpinfo_t*) Z_Realloc(lumpinfo, (numlumps + 1)*sizeof(*lumpinfo), PU_STATIC, NULL); - - lumpinfo[numlumps].position = eLocalHeaderOffset + 30 + eNameLen + eXFieldLen; - lumpinfo[numlumps].disksize = eCompSize; - lumpinfo[numlumps].size = eSize; - CONS_Printf("Address: %ld, Full: %ld, Comp: %ld\n", lumpinfo[numlumps].position, lumpinfo[numlumps].size, lumpinfo[numlumps].disksize); - // We will trim the file's full name so that only the filename is left. - while(namePos--) + if(eName[namePos] == '/') { - if(eName[namePos] == '/') - { - namePos++; - break; - } - } - memset(lumpinfo[numlumps].name, '\0', 9) - strncpy(lumpinfo[numlumps].name, eName + namePos, 8); - - lumpinfo[numlumps].name2 = Z_Malloc((eNameLen+1)*sizeof(char), PU_STATIC, NULL); - strncpy(lumpinfo[numlumps].name2, eName, eNameLen); - lumpinfo[numlumps].name2[eNameLen] = '\0'; - - // We set the compression type from what we're supporting so far. - switch(eCompression) - { - case 0: - lumpinfo[numlumps].compression = CM_NONE; - break; - case 8: - lumpinfo[numlumps].compression = CM_DEFLATE; - break; - case 14: - lumpinfo[numlumps].compression = CM_LZF; - break; - default: - CONS_Alert(CONS_WARNING, "Lump has an unsupported compression type!\n"); - lumpinfo[numlumps].compression = CM_NONE; + namePos++; break; } - fseek(handle, eXFieldLen + eCommentLen, SEEK_CUR); // We skip to where we expect the next central directory entry or end marker to be. - numlumps++; } + memset(lumpinfo[numlumps].name, '\0', 9); + strncpy(lumpinfo[numlumps].name, eName + namePos, 8); + + lumpinfo[numlumps].name2 = Z_Malloc((eNameLen+1)*sizeof(char), PU_STATIC, NULL); + strncpy(lumpinfo[numlumps].name2, eName, eNameLen); + lumpinfo[numlumps].name2[eNameLen] = '\0'; + + // We set the compression type from what we're supporting so far. + switch(eCompression) + { + case 0: + lumpinfo[numlumps].compression = CM_NONE; + break; + case 8: + lumpinfo[numlumps].compression = CM_DEFLATE; + break; + case 14: + lumpinfo[numlumps].compression = CM_LZF; + break; + default: + CONS_Alert(CONS_WARNING, "Lump has an unsupported compression type!\n"); + lumpinfo[numlumps].compression = CM_NONE; + break; + } + fseek(handle, eXFieldLen + eCommentLen, SEEK_CUR); // We skip to where we expect the next central directory entry or end marker to be. + numlumps++; free(eName); } // We found the central directory end signature? From 8f2025ab5fb026a401bd6a3c65407fd0e32983fb Mon Sep 17 00:00:00 2001 From: Nevur Date: Mon, 1 May 2017 18:30:20 +0200 Subject: [PATCH 007/111] dsa --- src/w_wad.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/src/w_wad.c b/src/w_wad.c index 96fae8927..72e63f2f4 100644 --- a/src/w_wad.c +++ b/src/w_wad.c @@ -459,6 +459,7 @@ UINT16 W_LoadWadFile(const char *filename) // Let's fill in the fields that we actually need. // (Declaring all those vars might not be the optimal way to do this, sorry.) char *eName; + int namePos; unsigned short int eNameLen = 8; unsigned short int eXFieldLen = 0; unsigned short int eCommentLen = 0; @@ -466,7 +467,6 @@ UINT16 W_LoadWadFile(const char *filename) unsigned int eSize = 0; unsigned int eCompSize = 0; unsigned int eLocalHeaderOffset = 0; - int namePos; // We get the compression type indicator value. fseek(handle, 6, SEEK_CUR); @@ -482,20 +482,20 @@ UINT16 W_LoadWadFile(const char *filename) fseek(handle, 8, SEEK_CUR); fread(&eLocalHeaderOffset, 1, 4, handle); // Get the offset. + eName = malloc(sizeof(char)*(eNameLen + 1)); + fgets(eName, eNameLen + 1, handle); + CONS_Printf("File %s at: %ld\n", eName, ftell(handle)); if (numlumps == 0) // First lump? Let's allocate the first lumpinfo block. lumpinfo = Z_Malloc(sizeof(*lumpinfo), PU_STATIC, NULL); else // Otherwise, reallocate and increase by 1. Might not be optimal, though... lumpinfo = (lumpinfo_t*) Z_Realloc(lumpinfo, (numlumps + 1)*sizeof(*lumpinfo), PU_STATIC, NULL); - eName = malloc(sizeof(char)*(eNameLen + 1)); - fgets(eName, eNameLen + 1, handle); - namePos = eNameLen - 1; lumpinfo[numlumps].position = eLocalHeaderOffset + 30 + eNameLen + eXFieldLen; lumpinfo[numlumps].disksize = eCompSize; lumpinfo[numlumps].size = eSize; - CONS_Printf("File %s at: %ld\n", eName, ftell(handle)); CONS_Printf("Address: %ld, Full: %ld, Comp: %ld\n", lumpinfo[numlumps].position, lumpinfo[numlumps].size, lumpinfo[numlumps].disksize); // We will trim the file's full name so that only the filename is left. + namePos = eNameLen - 1; while(namePos--) { if(eName[namePos] == '/') @@ -839,7 +839,7 @@ UINT16 W_CheckNumForFolderEndPK3(const char *name, UINT16 wad, UINT16 startlump) return i; } -// In a PK3 type of resource file, it looks for +// In a PK3 type of resource file, it looks for an entry with the specified full name. // Returns lump position in PK3's lumpinfo, or INT16_MAX if not found. UINT16 W_CheckNumForFullNamePK3(const char *name, UINT16 wad, UINT16 startlump) { From e125dedbe9271e0f705ae9e4c798d567b073b4d9 Mon Sep 17 00:00:00 2001 From: Nevur Date: Mon, 1 May 2017 18:33:41 +0200 Subject: [PATCH 008/111] sdad --- src/w_wad.c | 92 +++++++++++++++++++++++++---------------------------- 1 file changed, 43 insertions(+), 49 deletions(-) diff --git a/src/w_wad.c b/src/w_wad.c index c9d4d6534..72e63f2f4 100644 --- a/src/w_wad.c +++ b/src/w_wad.c @@ -459,6 +459,7 @@ UINT16 W_LoadWadFile(const char *filename) // Let's fill in the fields that we actually need. // (Declaring all those vars might not be the optimal way to do this, sorry.) char *eName; + int namePos; unsigned short int eNameLen = 8; unsigned short int eXFieldLen = 0; unsigned short int eCommentLen = 0; @@ -483,59 +484,52 @@ UINT16 W_LoadWadFile(const char *filename) eName = malloc(sizeof(char)*(eNameLen + 1)); fgets(eName, eNameLen + 1, handle); - if (0)//(eSize == 0) // Is this entry a folder? + CONS_Printf("File %s at: %ld\n", eName, ftell(handle)); + if (numlumps == 0) // First lump? Let's allocate the first lumpinfo block. + lumpinfo = Z_Malloc(sizeof(*lumpinfo), PU_STATIC, NULL); + else // Otherwise, reallocate and increase by 1. Might not be optimal, though... + lumpinfo = (lumpinfo_t*) Z_Realloc(lumpinfo, (numlumps + 1)*sizeof(*lumpinfo), PU_STATIC, NULL); + + lumpinfo[numlumps].position = eLocalHeaderOffset + 30 + eNameLen + eXFieldLen; + lumpinfo[numlumps].disksize = eCompSize; + lumpinfo[numlumps].size = eSize; + CONS_Printf("Address: %ld, Full: %ld, Comp: %ld\n", lumpinfo[numlumps].position, lumpinfo[numlumps].size, lumpinfo[numlumps].disksize); + // We will trim the file's full name so that only the filename is left. + namePos = eNameLen - 1; + while(namePos--) { - CONS_Printf("Folder %s at %ld:\n", eName, ftell(handle)); - } - else // If not, then it is a normal file. Let's arrange its lumpinfo structure then! - { - int namePos = eNameLen - 1; - CONS_Printf("File %s at: %ld\n", eName, ftell(handle)); - if (numlumps == 0) // First lump? Let's allocate the first lumpinfo block. - lumpinfo = Z_Malloc(sizeof(*lumpinfo), PU_STATIC, NULL); - else // Otherwise, reallocate and increase by 1. Might not be optimal, though... - lumpinfo = (lumpinfo_t*) Z_Realloc(lumpinfo, (numlumps + 1)*sizeof(*lumpinfo), PU_STATIC, NULL); - - lumpinfo[numlumps].position = eLocalHeaderOffset + 30 + eNameLen + eXFieldLen; - lumpinfo[numlumps].disksize = eCompSize; - lumpinfo[numlumps].size = eSize; - CONS_Printf("Address: %ld, Full: %ld, Comp: %ld\n", lumpinfo[numlumps].position, lumpinfo[numlumps].size, lumpinfo[numlumps].disksize); - // We will trim the file's full name so that only the filename is left. - while(namePos--) + if(eName[namePos] == '/') { - if(eName[namePos] == '/') - { - namePos++; - break; - } - } - memset(lumpinfo[numlumps].name, '\0', 9); - strncpy(lumpinfo[numlumps].name, eName + namePos, 8); - - lumpinfo[numlumps].name2 = Z_Malloc((eNameLen+1)*sizeof(char), PU_STATIC, NULL); - strncpy(lumpinfo[numlumps].name2, eName, eNameLen); - lumpinfo[numlumps].name2[eNameLen] = '\0'; - - // We set the compression type from what we're supporting so far. - switch(eCompression) - { - case 0: - lumpinfo[numlumps].compression = CM_NONE; - break; - case 8: - lumpinfo[numlumps].compression = CM_DEFLATE; - break; - case 14: - lumpinfo[numlumps].compression = CM_LZF; - break; - default: - CONS_Alert(CONS_WARNING, "Lump has an unsupported compression type!\n"); - lumpinfo[numlumps].compression = CM_NONE; + namePos++; break; } - fseek(handle, eXFieldLen + eCommentLen, SEEK_CUR); // We skip to where we expect the next central directory entry or end marker to be. - numlumps++; } + memset(lumpinfo[numlumps].name, '\0', 9); + strncpy(lumpinfo[numlumps].name, eName + namePos, 8); + + lumpinfo[numlumps].name2 = Z_Malloc((eNameLen+1)*sizeof(char), PU_STATIC, NULL); + strncpy(lumpinfo[numlumps].name2, eName, eNameLen); + lumpinfo[numlumps].name2[eNameLen] = '\0'; + + // We set the compression type from what we're supporting so far. + switch(eCompression) + { + case 0: + lumpinfo[numlumps].compression = CM_NONE; + break; + case 8: + lumpinfo[numlumps].compression = CM_DEFLATE; + break; + case 14: + lumpinfo[numlumps].compression = CM_LZF; + break; + default: + CONS_Alert(CONS_WARNING, "Lump has an unsupported compression type!\n"); + lumpinfo[numlumps].compression = CM_NONE; + break; + } + fseek(handle, eXFieldLen + eCommentLen, SEEK_CUR); // We skip to where we expect the next central directory entry or end marker to be. + numlumps++; free(eName); } // We found the central directory end signature? @@ -845,7 +839,7 @@ UINT16 W_CheckNumForFolderEndPK3(const char *name, UINT16 wad, UINT16 startlump) return i; } -// In a PK3 type of resource file, it looks for +// In a PK3 type of resource file, it looks for an entry with the specified full name. // Returns lump position in PK3's lumpinfo, or INT16_MAX if not found. UINT16 W_CheckNumForFullNamePK3(const char *name, UINT16 wad, UINT16 startlump) { From 1b881afb99738626a9358a5dae82348512c0e542 Mon Sep 17 00:00:00 2001 From: Nevur Date: Mon, 1 May 2017 19:16:30 +0200 Subject: [PATCH 009/111] Remember when I said I'd stop for today? I lied. -Lumps are loaded fine now. Essentially non-compressed PK3s are supported now. --- src/w_wad.c | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/src/w_wad.c b/src/w_wad.c index 72e63f2f4..661e5acc3 100644 --- a/src/w_wad.c +++ b/src/w_wad.c @@ -462,11 +462,14 @@ UINT16 W_LoadWadFile(const char *filename) int namePos; unsigned short int eNameLen = 8; unsigned short int eXFieldLen = 0; + unsigned short int lNameLen = 0; + unsigned short int lXFieldLen = 0; unsigned short int eCommentLen = 0; unsigned short int eCompression = 0; unsigned int eSize = 0; unsigned int eCompSize = 0; unsigned int eLocalHeaderOffset = 0; + unsigned long int rememberPos = 0; // We get the compression type indicator value. fseek(handle, 6, SEEK_CUR); @@ -490,7 +493,15 @@ UINT16 W_LoadWadFile(const char *filename) else // Otherwise, reallocate and increase by 1. Might not be optimal, though... lumpinfo = (lumpinfo_t*) Z_Realloc(lumpinfo, (numlumps + 1)*sizeof(*lumpinfo), PU_STATIC, NULL); - lumpinfo[numlumps].position = eLocalHeaderOffset + 30 + eNameLen + eXFieldLen; + // We must calculate the position for the actual data. + // Why not eLocalHeaderOffset + 30 + eNameLen + eXFieldLen? That's because the extra field and name lengths MAY be different in the local headers. + rememberPos = ftell(handle); + fseek(handle, eLocalHeaderOffset + 26, SEEK_SET); + fread(&lNameLen, 1, 2, handle); + fread(&lXFieldLen, 1, 2, handle); + lumpinfo[numlumps].position = ftell(handle) + lNameLen + lXFieldLen; + + fseek(handle, rememberPos, SEEK_SET); // Let's go back to the central dir. lumpinfo[numlumps].disksize = eCompSize; lumpinfo[numlumps].size = eSize; CONS_Printf("Address: %ld, Full: %ld, Comp: %ld\n", lumpinfo[numlumps].position, lumpinfo[numlumps].size, lumpinfo[numlumps].disksize); From 9246ab84290291c90fc0dc2b00d6b5eb36d66ec8 Mon Sep 17 00:00:00 2001 From: Nevur Date: Tue, 2 May 2017 15:40:31 +0200 Subject: [PATCH 010/111] Tweaked lump reading functionality. -Removed functions exclusively used by W_ReadLumpHeaderPwad. -Merged those functions into the main one, optimized the structure. --- src/w_wad.c | 128 ++++++++++++++++++++-------------------------------- 1 file changed, 49 insertions(+), 79 deletions(-) diff --git a/src/w_wad.c b/src/w_wad.c index 661e5acc3..f1057d7b4 100644 --- a/src/w_wad.c +++ b/src/w_wad.c @@ -983,80 +983,10 @@ size_t W_LumpLength(lumpnum_t lumpnum) return W_LumpLengthPwad(WADFILENUM(lumpnum),LUMPNUM(lumpnum)); } -/** Reads bytes from the head of a lump, without doing decompression. - * - * \param wad Wad number to read from. - * \param lump Lump number to read from, within wad. - * \param dest Buffer in memory to serve as destination. - * \param size Number of bytes to read. - * \param offest Number of bytes to offset. - * \return Number of bytes read (should equal size). - * \sa W_ReadLumpHeader - */ -static size_t W_RawReadLumpHeader(UINT16 wad, UINT16 lump, void *dest, size_t size, size_t offset) -{ - size_t bytesread; - lumpinfo_t *l; - FILE *handle; - - l = wadfiles[wad]->lumpinfo + lump; - - handle = wadfiles[wad]->handle; - - fseek(handle, (long)(l->position + offset), SEEK_SET); - bytesread = fread(dest, 1, size, handle); - - return bytesread; -} - -// Read a compressed lump; return it in newly Z_Malloc'd memory. -// wad is number of wad file, lump is number of lump in wad. -static void *W_ReadCompressedLump(UINT16 wad, UINT16 lump) -{ -#ifdef ZWAD - char *compressed, *data; - const lumpinfo_t *l = &wadfiles[wad]->lumpinfo[lump]; - size_t retval; - - compressed = Z_Malloc(l->disksize, PU_STATIC, NULL); - data = Z_Malloc(l->size, PU_STATIC, NULL); - if (W_RawReadLumpHeader(wad, lump, compressed, l->disksize, 0) - < l->disksize) - { - I_Error("wad %d, lump %d: cannot read compressed data", - wad, lump); - } - - retval = lzf_decompress(compressed, l->disksize, data, l->size); -#ifndef AVOID_ERRNO - if (retval == 0 && errno == E2BIG) - { - I_Error("wad %d, lump %d: compressed data too big " - "(bigger than %s)", wad, lump, sizeu1(l->size)); - } - else if (retval == 0 && errno == EINVAL) - I_Error("wad %d, lump %d: invalid compressed data", wad, lump); - else -#endif - if (retval != l->size) - { - I_Error("wad %d, lump %d: decompressed to wrong number of " - "bytes (expected %s, got %s)", wad, lump, - sizeu1(l->size), sizeu2(retval)); - } - Z_Free(compressed); - return data; -#else - (void)wad; - (void)lump; - //I_Error("ZWAD files not supported on this platform."); - return NULL; -#endif -} - /** Reads bytes from the head of a lump. * Note: If the lump is compressed, the whole thing has to be read anyway. * + * \param wad Wad number to read from. * \param lump Lump number to read from. * \param dest Buffer in memory to serve as destination. * \param size Number of bytes to read. @@ -1067,6 +997,9 @@ static void *W_ReadCompressedLump(UINT16 wad, UINT16 lump) size_t W_ReadLumpHeaderPwad(UINT16 wad, UINT16 lump, void *dest, size_t size, size_t offset) { size_t lumpsize; + size_t bytesread; + lumpinfo_t *l; + FILE *handle; if (!TestValidLump(wad,lump)) return 0; @@ -1080,20 +1013,57 @@ size_t W_ReadLumpHeaderPwad(UINT16 wad, UINT16 lump, void *dest, size_t size, si if (!size || size+offset > lumpsize) size = lumpsize - offset; - // + // Let's get the raw lump data. + // We setup the desired file handle to read the lump data. + l = wadfiles[wad]->lumpinfo + lump; + handle = wadfiles[wad]->handle; + fseek(handle, (long)(l->position + offset), SEEK_SET); + switch(wadfiles[wad]->lumpinfo[lump].compression) { - case CM_LZF: + case CM_NONE: // If it's uncompressed, we directly write the data into our destination, and return the bytes read. + return fread(dest, 1, size, handle); + case CM_LZF: // Is it LZF compressed? { - UINT8 *data; - data = W_ReadCompressedLump(wad, lump); - if (!data) return 0; - M_Memcpy(dest, data+offset, size); - Z_Free(data); +#ifdef ZWAD + char *rawData; // The lump's raw data. + char *decData; // Lump's decompressed real data. + size_t retval; // Helper var, lzf_decompress 0 when an error occurs. + + rawData = Z_Malloc(l->disksize, PU_STATIC, NULL); + decData = Z_Malloc(l->size, PU_STATIC, NULL); + + if (fread(rawData, 1, l->disksize, handle) < l->disksize) + I_Error("wad %d, lump %d: cannot read compressed data", wad, lump); + retval = lzf_decompress(rawData, l->disksize, decData, l->size); +#ifndef AVOID_ERRNO + if (retval == 0 && errno == E2BIG) // errno is a global var set by the lzf functions when something goes wrong. + { + I_Error("wad %d, lump %d: compressed data too big (bigger than %s)", wad, lump, sizeu1(l->size)); + } + else if (retval == 0 && errno == EINVAL) + I_Error("wad %d, lump %d: invalid compressed data", wad, lump); + else +#endif + if (retval != l->size) + { + I_Error("wad %d, lump %d: decompressed to wrong number of bytes (expected %s, got %s)", wad, lump, sizeu1(l->size), sizeu2(retval)); + } +#else + (void)wad; + (void)lump; + //I_Error("ZWAD files not supported on this platform."); + return NULL; +#endif + if (!decData) // Did we get no data at all? + return 0; + M_Memcpy(dest, decData + offset, size); + Z_Free(rawData); + Z_Free(decData); return size; } default: - return W_RawReadLumpHeader(wad, lump, dest, size, offset); + return fread(dest, 1, size, handle); } } From 0c73dae57d13c7a946ec59ae2783793e302581ac Mon Sep 17 00:00:00 2001 From: Nevur Date: Tue, 2 May 2017 18:04:16 +0200 Subject: [PATCH 011/111] Submitted changes so far. Deflate doesn't work yet, apparently. --- src/w_wad.c | 69 +++++++++++++++++++++++++++++++++++++++++++++++++---- 1 file changed, 64 insertions(+), 5 deletions(-) diff --git a/src/w_wad.c b/src/w_wad.c index f1057d7b4..59e9a7210 100644 --- a/src/w_wad.c +++ b/src/w_wad.c @@ -25,6 +25,9 @@ #endif #include "lzf.h" #endif +//#ifdef HAVE_ZLIB +#include "zlib.h" +//#endif // HAVE_ZLIB #include "doomdef.h" #include "doomstat.h" @@ -504,7 +507,6 @@ UINT16 W_LoadWadFile(const char *filename) fseek(handle, rememberPos, SEEK_SET); // Let's go back to the central dir. lumpinfo[numlumps].disksize = eCompSize; lumpinfo[numlumps].size = eSize; - CONS_Printf("Address: %ld, Full: %ld, Comp: %ld\n", lumpinfo[numlumps].position, lumpinfo[numlumps].size, lumpinfo[numlumps].disksize); // We will trim the file's full name so that only the filename is left. namePos = eNameLen - 1; while(namePos--) @@ -997,7 +999,6 @@ size_t W_LumpLength(lumpnum_t lumpnum) size_t W_ReadLumpHeaderPwad(UINT16 wad, UINT16 lump, void *dest, size_t size, size_t offset) { size_t lumpsize; - size_t bytesread; lumpinfo_t *l; FILE *handle; @@ -1019,16 +1020,17 @@ size_t W_ReadLumpHeaderPwad(UINT16 wad, UINT16 lump, void *dest, size_t size, si handle = wadfiles[wad]->handle; fseek(handle, (long)(l->position + offset), SEEK_SET); + // But let's not copy it yet. We support different compression formats on lumps, so we need to take that into account. switch(wadfiles[wad]->lumpinfo[lump].compression) { case CM_NONE: // If it's uncompressed, we directly write the data into our destination, and return the bytes read. return fread(dest, 1, size, handle); - case CM_LZF: // Is it LZF compressed? + case CM_LZF: // Is it LZF compressed? Used by ZWADs. { #ifdef ZWAD char *rawData; // The lump's raw data. char *decData; // Lump's decompressed real data. - size_t retval; // Helper var, lzf_decompress 0 when an error occurs. + size_t retval; // Helper var, lzf_decompress returns 0 when an error occurs. rawData = Z_Malloc(l->disksize, PU_STATIC, NULL); decData = Z_Malloc(l->size, PU_STATIC, NULL); @@ -1062,8 +1064,65 @@ size_t W_ReadLumpHeaderPwad(UINT16 wad, UINT16 lump, void *dest, size_t size, si Z_Free(decData); return size; } + case CM_DEFLATE: // Is it compressed via DEFLATE? Very common in ZIPs/PK3s, also what most doom-related editors support. + { + int ret; + unsigned have; + z_stream strm; + unsigned char in[16384]; + unsigned char out[16384]; + + /* allocate inflate state */ + strm.zalloc = Z_NULL; + strm.zfree = Z_NULL; + strm.opaque = Z_NULL; + strm.avail_in = 0; + strm.next_in = Z_NULL; + ret = inflateInit(&strm); + if (ret != Z_OK) + return ret; + + /* decompress until deflate stream ends or end of file */ + do { + strm.avail_in = fread(in, 1, 16384, handle); + if (ferror(handle)) { + (void)inflateEnd(&strm); + return Z_ERRNO; + } + if (strm.avail_in == 0) + break; + strm.next_in = in; + + /* run inflate() on input until output buffer not full */ + do { + + strm.avail_out = 16384; + strm.next_out = out; + + ret = inflate(&strm, Z_NO_FLUSH); + //assert(ret != Z_STREAM_ERROR); /* state not clobbered */ + switch (ret) { + case Z_NEED_DICT: + ret = Z_DATA_ERROR; /* and fall through */ + case Z_DATA_ERROR: + case Z_MEM_ERROR: + (void)inflateEnd(&strm); + return ret; + } + + have = 16384 - strm.avail_out; + memcpy(dest, out, have); + } while (strm.avail_out == 0); + + /* done when inflate() says it's done */ + } while (ret != Z_STREAM_END); + + /* clean up and return */ + (void)inflateEnd(&strm); + return size; + } default: - return fread(dest, 1, size, handle); + return 0; } } From b60010f0f1a8bd439c1f538859308a2ce9f9ff63 Mon Sep 17 00:00:00 2001 From: Nevur Date: Tue, 2 May 2017 19:20:29 +0200 Subject: [PATCH 012/111] Tweaked so that it spits out an error for unsupported compression formats. --- src/w_wad.c | 4 ++-- src/w_wad.h | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/w_wad.c b/src/w_wad.c index 59e9a7210..2d717d12a 100644 --- a/src/w_wad.c +++ b/src/w_wad.c @@ -538,7 +538,7 @@ UINT16 W_LoadWadFile(const char *filename) break; default: CONS_Alert(CONS_WARNING, "Lump has an unsupported compression type!\n"); - lumpinfo[numlumps].compression = CM_NONE; + lumpinfo[numlumps].compression = CM_UNSUPPORTED; break; } fseek(handle, eXFieldLen + eCommentLen, SEEK_CUR); // We skip to where we expect the next central directory entry or end marker to be. @@ -1122,7 +1122,7 @@ size_t W_ReadLumpHeaderPwad(UINT16 wad, UINT16 lump, void *dest, size_t size, si return size; } default: - return 0; + I_Error("wad %d, lump %d: unsupported compression type!", wad, lump); } } diff --git a/src/w_wad.h b/src/w_wad.h index 1ddcd5a55..35d060279 100644 --- a/src/w_wad.h +++ b/src/w_wad.h @@ -35,7 +35,7 @@ typedef struct } wadinfo_t; // Available compression methods for lumps. -enum compmethod{CM_NONE, CM_DEFLATE, CM_LZF}; +enum compmethod{CM_NONE, CM_DEFLATE, CM_LZF, CM_UNSUPPORTED}; // a memory entry of the wad directory typedef struct From 8ef6d6fd9e518b18619a7e31a69d973472f6714a Mon Sep 17 00:00:00 2001 From: Nevur Date: Sat, 6 May 2017 16:52:53 +0200 Subject: [PATCH 013/111] A bit more work on PK3. -Expanded folder recognition for PK3s. Some resources are still not loaded from them yet. -Took a glimpse at how maps are loaded, since the flat recognition is rooted somewhere there; did nothing yet about it though. -Working towards "generalizing" how new resources are handled. Some var and functionality redundancy is still present. --- src/p_setup.c | 205 +++++++++++++++++++++++++++++++++++++------------ src/r_data.c | 8 +- src/r_things.c | 32 ++++++++ src/r_things.h | 2 + src/w_wad.c | 5 +- src/w_wad.h | 2 + 6 files changed, 200 insertions(+), 54 deletions(-) diff --git a/src/p_setup.c b/src/p_setup.c index 2109c5086..f82ee5ee2 100644 --- a/src/p_setup.c +++ b/src/p_setup.c @@ -543,10 +543,6 @@ static inline void P_LoadSubsectors(lumpnum_t lumpnum) Z_Free(data); } -// -// P_LoadSectors -// - // // levelflats // @@ -572,24 +568,21 @@ size_t P_PrecacheLevelFlats(void) return flatmemory; } -// help function for P_LoadSectors, find a flat in the active wad files, +// Auxiliary function. Find a flat in the active wad files, // allocate an id for it, and set the levelflat (to speedup search) -// INT32 P_AddLevelFlat(const char *flatname, levelflat_t *levelflat) { size_t i; - // - // first scan through the already found flats - // + // Scan through the already found flats, break if it matches. for (i = 0; i < numlevelflats; i++, levelflat++) - if (strnicmp(levelflat->name,flatname,8)==0) + if (strnicmp(levelflat->name, flatname, 8) == 0) break; - // that flat was already found in the level, return the id + // If there is no match, make room for a new flat. if (i == numlevelflats) { - // store the name + // Store the name. strlcpy(levelflat->name, flatname, sizeof (levelflat->name)); strupr(levelflat->name); @@ -673,6 +666,8 @@ INT32 P_CheckLevelFlat(const char *flatname) return (INT32)i; } +// Sets up the ingame sectors structures. +// Lumpnum is the lumpnum of a SECTORS lump. static void P_LoadSectors(lumpnum_t lumpnum) { UINT8 *data; @@ -681,21 +676,26 @@ static void P_LoadSectors(lumpnum_t lumpnum) sector_t *ss; levelflat_t *foundflats; + // We count how many sectors we got. numsectors = W_LumpLength(lumpnum) / sizeof (mapsector_t); if (numsectors <= 0) I_Error("Level has no sectors"); + + // Allocate as much memory as we need into the global sectors table. sectors = Z_Calloc(numsectors*sizeof (*sectors), PU_LEVEL, NULL); - data = W_CacheLumpNum(lumpnum,PU_STATIC); - //Fab : FIXME: allocate for whatever number of flats - // 512 different flats per level should be plenty + // Cache the data from the lump. + data = W_CacheLumpNum(lumpnum, PU_STATIC); + // Allocate a big chunk of memory as big as our MAXLEVELFLATS limit. + //Fab : FIXME: allocate for whatever number of flats - 512 different flats per level should be plenty foundflats = calloc(MAXLEVELFLATS, sizeof (*foundflats)); if (foundflats == NULL) I_Error("Ran out of memory while loading sectors\n"); numlevelflats = 0; + // For each counted sector, copy the sector raw data from our cache pointer ms, to the global table pointer ss. ms = (mapsector_t *)data; ss = sectors; for (i = 0; i < numsectors; i++, ss++, ms++) @@ -703,9 +703,6 @@ static void P_LoadSectors(lumpnum_t lumpnum) ss->floorheight = SHORT(ms->floorheight)<ceilingheight = SHORT(ms->ceilingheight)<floorpic = P_AddLevelFlat(ms->floorpic, foundflats); ss->ceilingpic = P_AddLevelFlat(ms->ceilingpic, foundflats); @@ -3017,6 +3014,71 @@ boolean P_RunSOC(const char *socfilename) return true; } +#ifdef HAVE_BLUA +// Auxiliary function for PK3 loading - runs Lua scripts from range. +void P_LoadLuaScrRange(UINT16 wadnum, UINT16 first, UINT16 num) +{ + for (; num > 0; num--, first++) + { + LUA_LoadLump(wadnum, first); + } +} +#endif + +// Auxiliary function for PK3 loading - runs SOCs from range. +void P_LoadDehackRange(UINT16 wadnum, UINT16 first, UINT16 num) +{ + for (; num > 0; num--, first++) + { + CONS_Printf(M_GetText("Loading SOC from %s\n"), wadfiles[wadnum]->filename); + DEH_LoadDehackedLumpPwad(wadnum, first); + } +} + +// Auxiliary function for PK3 loading - looks for sound replacements. +// NOTE: it does not really add any new sound entry or anything. +void P_LoadSoundsRange(UINT16 wadnum, UINT16 first, UINT16 num) +{ + size_t j; + lumpinfo_t *lumpinfo = wadfiles[wadnum]->lumpinfo + first; + for (; num > 0; num--, lumpinfo++) + { + // Let's check whether it's replacing an existing sound or it's a brand new one. + for (j = 1; j < NUMSFX; j++) + { + if (S_sfx[j].name && !strnicmp(S_sfx[j].name, lumpinfo->name + 2, 6)) + { + // the sound will be reloaded when needed, + // since sfx->data will be NULL + CONS_Debug(DBG_SETUP, "Sound %.8s replaced\n", lumpinfo->name); + + I_FreeSfx(&S_sfx[j]); + } + } + } +} + +// Auxiliary function for PK3 loading - looks for sound replacements. +// NOTE: does nothing but print debug messages. +void P_LoadMusicsRange(UINT16 wadnum, UINT16 first, UINT16 num) +{ + lumpinfo_t *lumpinfo = wadfiles[wadnum]->lumpinfo + first; + char *name; + for (; num > 0; num--, lumpinfo++) + { + name = lumpinfo->name; + if (name[0] == 'O' && name[1] == '_') + { + CONS_Debug(DBG_SETUP, "Music %.8s replaced\n", name); + } + else if (name[0] == 'D' && name[1] == '_') + { + CONS_Debug(DBG_SETUP, "Music %.8s replaced\n", name); + } + } + return; +} + // // Add a wadfile to the active wad files, // replace sounds, musics, patches, textures, sprites and maps @@ -3027,10 +3089,24 @@ boolean P_AddWadFile(const char *wadfilename, char **firstmapname) UINT16 numlumps, wadnum; INT16 firstmapreplaced = 0, num; char *name; - char *fullName; lumpinfo_t *lumpinfo; boolean replacedcurrentmap = false; + // Vars to help us with the position start and amount of each resource type. + // Useful for PK3s since they use folders. + // WADs use markers for some resources, but others such as sounds are checked lump-by-lump anyway. + UINT16 luaPos, luaNum = 0; + UINT16 socPos, socNum = 0; + UINT16 sfxPos, sfxNum = 0; + UINT16 musPos, musNum = 0; + UINT16 sprPos, sprNum = 0; + UINT16 texPos, texNum = 0; +// UINT16 patPos, patNum = 0; +// UINT16 flaPos, flaNum = 0; +// UINT16 mapPos, mapNum = 0; + + + if ((numlumps = W_LoadWadFile(wadfilename)) == INT16_MAX) { CONS_Printf(M_GetText("Errors occured while loading %s; not added.\n"), wadfilename); @@ -3039,38 +3115,67 @@ boolean P_AddWadFile(const char *wadfilename, char **firstmapname) else wadnum = (UINT16)(numwadfiles-1); - lumpinfo = wadfiles[wadnum]->lumpinfo; - - // - // search for sound replacements - // switch(wadfiles[wadnum]->type) { - case 2342342: - for (i = 0; i < numlumps; i++, lumpinfo++) + case RET_PK3: { - name = lumpinfo->name; - fullName = lumpinfo->name2; - if (!strnicmp(fullName, "sounds", 6)) + // Auxiliary function - input a folder name and gives us the resource markers positions. + void FindFolder(char *folName, UINT16 *start, UINT16 *end) { - // We found a sound. Let's check whether it's replacing an existing sound or it's a brand new one. - for (j = 1; j < NUMSFX; j++) + if (!stricmp(lumpinfo->name2, folName)) { - if (S_sfx[j].name && !strnicmp(S_sfx[j].name, name, 6)) + lumpinfo++; + *start = ++i; + for (i; i < numlumps; i++, lumpinfo++) { - // the sound will be reloaded when needed, - // since sfx->data will be NULL - CONS_Debug(DBG_SETUP, "Sound %.8s replaced\n", name); - - I_FreeSfx(&S_sfx[j]); - - sreplaces++; + if (strnicmp(lumpinfo->name2, folName, strlen(folName))) + { + break; + } } + lumpinfo--; + *end = i-- - *start; + CONS_Printf("Folder %s, first lump %lu, total: %lu.\n", folName, *start, *end); + return; } + return; } + + // Look for the lumps that act as resource delimitation markers. + lumpinfo = wadfiles[wadnum]->lumpinfo; + for (i = 0; i < numlumps; i++, lumpinfo++) + { + FindFolder("Lua/", &luaPos, &luaNum); + FindFolder("Soc/", &socPos, &socNum); + FindFolder("Sounds/", &sfxPos, &sfxNum); + FindFolder("Music/", &musPos, &musNum); + FindFolder("Sprites/", &sprPos, &sprNum); + FindFolder("Textures/", &texPos, &texNum); +// FindFolder("Patches/", &patPos, &patNum); +// FindFolder("Flats/", &flaPos, &flaNum); +// FindFolder("Maps/", &mapPos, &mapNum); + } + + // Update the detected resources. + // Note: ALWAYS load Lua scripts first, SOCs right after, and the remaining resources afterwards. +#ifdef HAVE_BLUA + if (luaNum) // Lua scripts. + P_LoadLuaScrRange(wadnum, luaPos, luaNum); +#endif + if (socNum) // SOCs. + P_LoadDehackRange(wadnum, socPos, socNum); + if (sfxNum) // Sounds. TODO: Function currently only updates already existing sounds, the rest is handled somewhere else. + P_LoadSoundsRange(wadnum, sfxPos, sfxNum); + if (musNum) // Music. TODO: Useless function right now. + P_LoadMusicsRange(wadnum, musPos, musNum); + if (sprNum) // Sprites. + R_LoadSpritsRange(wadnum, sprPos, sprNum); + if (texNum) // Textures. TODO: R_LoadTextures() does the folder positioning once again. New function maybe? + R_LoadTextures(); } break; default: + lumpinfo = wadfiles[wadnum]->lumpinfo; for (i = 0; i < numlumps; i++, lumpinfo++) { name = lumpinfo->name; @@ -3101,6 +3206,18 @@ boolean P_AddWadFile(const char *wadfilename, char **firstmapname) digmreplaces++; } } + + // + // search for sprite replacements + // + R_AddSpriteDefs(wadnum); + + // Reload it all anyway, just in case they + // added some textures but didn't insert a + // TEXTURE1/PNAMES/etc. list. + R_LoadTextures(); // numtexture changes + + break; } if (!devparm && sreplaces) @@ -3110,16 +3227,6 @@ boolean P_AddWadFile(const char *wadfilename, char **firstmapname) if (!devparm && digmreplaces) CONS_Printf(M_GetText("%s digital musics replaced\n"), sizeu1(digmreplaces)); - // - // search for sprite replacements - // - R_AddSpriteDefs(wadnum); - - // Reload it all anyway, just in case they - // added some textures but didn't insert a - // TEXTURE1/PNAMES/etc. list. - R_LoadTextures(); // numtexture changes - // Reload ANIMATED / ANIMDEFS P_InitPicAnims(); diff --git a/src/r_data.c b/src/r_data.c index fafa67c63..3bc93831d 100644 --- a/src/r_data.c +++ b/src/r_data.c @@ -569,8 +569,8 @@ void R_LoadTextures(void) { if (wadfiles[w]->type == RET_PK3) { - texstart = W_CheckNumForFullNamePK3("txturs/", (UINT16)w, 0) + 1; - texend = W_CheckNumForFolderEndPK3("txturs/", (UINT16)w, texstart); + texstart = W_CheckNumForFullNamePK3("textures/", (UINT16)w, 0) + 1; + texend = W_CheckNumForFolderEndPK3("textures/", (UINT16)w, texstart); } else { @@ -620,8 +620,8 @@ void R_LoadTextures(void) // Get the lump numbers for the markers in the WAD, if they exist. if (wadfiles[w]->type == RET_PK3) { - texstart = W_CheckNumForFullNamePK3("txturs/", (UINT16)w, 0) + 1; - texend = W_CheckNumForFolderEndPK3("txturs/", (UINT16)w, texstart); + texstart = W_CheckNumForFullNamePK3("textures/", (UINT16)w, 0) + 1; + texend = W_CheckNumForFolderEndPK3("textures/", (UINT16)w, texstart); } else { diff --git a/src/r_things.c b/src/r_things.c index 2f8e7c91a..e1b4d66b0 100644 --- a/src/r_things.c +++ b/src/r_things.c @@ -368,6 +368,38 @@ static boolean R_AddSingleSpriteDef(const char *sprname, spritedef_t *spritedef, return true; } +// Auxiliary function for PK3 loading - Loads sprites from a specified range. +void R_LoadSpritsRange(UINT16 wadnum, UINT16 first, UINT16 num) +{ + size_t i, addsprites = 0; + char wadname[MAX_WADPATH]; + // + // scan through lumps, for each sprite, find all the sprite frames + // + for (i = 0; i < numsprites; i++) + { + spritename = sprnames[i]; + if (spritename[4] && wadnum >= (UINT16)spritename[4]) + continue; + + if (R_AddSingleSpriteDef(spritename, &sprites[i], wadnum, first, first + num + 1)) + { +#ifdef HWRENDER + if (rendermode == render_opengl) + HWR_AddSpriteMD2(i); +#endif + // if a new sprite was added (not just replaced) + addsprites++; +#ifndef ZDEBUG + CONS_Debug(DBG_SETUP, "sprite %s set in pwad %d\n", spritename, wadnum); +#endif + } + } + + nameonly(strcpy(wadname, wadfiles[wadnum]->filename)); + CONS_Printf(M_GetText("%s added %d frames in %s sprites\n"), wadname, num, sizeu1(addsprites)); +} + // // Search for sprites replacements in a wad whose names are in namelist // diff --git a/src/r_things.h b/src/r_things.h index 3907fd2ae..b3f1f4b4c 100644 --- a/src/r_things.h +++ b/src/r_things.h @@ -50,6 +50,8 @@ void R_SortVisSprites(void); //faB: find sprites in wadfile, replace existing, add new ones // (only sprites from namelist are added or replaced) void R_AddSpriteDefs(UINT16 wadnum); +void R_AddSpriteDefsRange(UINT16 wadnum, UINT16 start, UINT16 end); + #ifdef DELFILE void R_DelSpriteDefs(UINT16 wadnum); diff --git a/src/w_wad.c b/src/w_wad.c index 2d717d12a..e410e4bde 100644 --- a/src/w_wad.c +++ b/src/w_wad.c @@ -696,7 +696,10 @@ UINT16 W_LoadWadFile(const char *filename) CONS_Printf(M_GetText("Added file %s (%u lumps)\n"), filename, numlumps); wadfiles[numwadfiles] = wadfile; numwadfiles++; // must come BEFORE W_LoadDehackedLumps, so any addfile called by COM_BufInsertText called by Lua doesn't overwrite what we just loaded - W_LoadDehackedLumps(numwadfiles-1); + + // TODO: HACK ALERT - Load Lua & SOC stuff right here for WADs. Avoids crash on startup since WADs are loaded using W_InitMultipleFiles. + if (wadfile->type == RET_WAD) + W_LoadDehackedLumps(numwadfiles - 1); W_InvalidateLumpnumCache(); diff --git a/src/w_wad.h b/src/w_wad.h index 35d060279..58b3b322c 100644 --- a/src/w_wad.h +++ b/src/w_wad.h @@ -99,6 +99,8 @@ UINT16 W_LoadWadFile(const char *filename); void W_UnloadWadFile(UINT16 num); #endif +static inline void W_LoadDehackedLumps(UINT16 wadnum); + // W_InitMultipleFiles returns 1 if all is okay, 0 otherwise, // so that it stops with a message if a file was not found, but not if all is okay. INT32 W_InitMultipleFiles(char **filenames); From ea2846394e87c9f89bb613dc63f7056bbabdf1de Mon Sep 17 00:00:00 2001 From: Nevur Date: Sun, 7 May 2017 12:30:06 +0200 Subject: [PATCH 014/111] More PK3 work. Now we're getting somewhere. -DEFLATE-compressed lumps work properly now. -All "big" lumps are supported now with the exception of WAD maps. Notes: -Compiler spits out a shitload of warnings still. -Individual lump reading clashes with folders of the same name (see TEXTURES lump, and the Textures/ folder). Signed-off-by: Nevur --- src/p_setup.c | 8 +-- src/r_data.c | 63 +++++++++++++++++++-- src/w_wad.c | 154 ++++++++++++++++++++++++++++---------------------- src/w_wad.h | 4 +- 4 files changed, 152 insertions(+), 77 deletions(-) diff --git a/src/p_setup.c b/src/p_setup.c index f82ee5ee2..fcc2ae591 100644 --- a/src/p_setup.c +++ b/src/p_setup.c @@ -3105,9 +3105,7 @@ boolean P_AddWadFile(const char *wadfilename, char **firstmapname) // UINT16 flaPos, flaNum = 0; // UINT16 mapPos, mapNum = 0; - - - if ((numlumps = W_LoadWadFile(wadfilename)) == INT16_MAX) + if ((numlumps = W_InitFile(wadfilename)) == INT16_MAX) { CONS_Printf(M_GetText("Errors occured while loading %s; not added.\n"), wadfilename); return false; @@ -3126,7 +3124,7 @@ boolean P_AddWadFile(const char *wadfilename, char **firstmapname) { lumpinfo++; *start = ++i; - for (i; i < numlumps; i++, lumpinfo++) + for (; i < numlumps; i++, lumpinfo++) { if (strnicmp(lumpinfo->name2, folName, strlen(folName))) { @@ -3172,6 +3170,8 @@ boolean P_AddWadFile(const char *wadfilename, char **firstmapname) R_LoadSpritsRange(wadnum, sprPos, sprNum); if (texNum) // Textures. TODO: R_LoadTextures() does the folder positioning once again. New function maybe? R_LoadTextures(); +// if (mapNum) // Maps. TODO: Actually implement the map WAD loading code, lulz. +// P_LoadWadMapRange(); } break; default: diff --git a/src/r_data.c b/src/r_data.c index 3bc93831d..d7ac38974 100644 --- a/src/r_data.c +++ b/src/r_data.c @@ -571,13 +571,14 @@ void R_LoadTextures(void) { texstart = W_CheckNumForFullNamePK3("textures/", (UINT16)w, 0) + 1; texend = W_CheckNumForFolderEndPK3("textures/", (UINT16)w, texstart); + texturesLumpPos = W_CheckNumForFullNamePK3("textures", (UINT16)w, 0); } else { texstart = W_CheckNumForNamePwad(TX_START, (UINT16)w, 0) + 1; texend = W_CheckNumForNamePwad(TX_END, (UINT16)w, 0); + texturesLumpPos = W_CheckNumForNamePwad("TEXTURES", (UINT16)w, 0); } - texturesLumpPos = W_CheckNumForNamePwad("TEXTURES", (UINT16)w, 0); if (texturesLumpPos != INT16_MAX) { @@ -1190,12 +1191,64 @@ static void R_InitExtraColormaps(void) CONS_Printf(M_GetText("Number of Extra Colormaps: %s\n"), sizeu1(numcolormaplumps)); } -// 12/14/14 -- only take flats in F_START/F_END +// Search for flat name through all lumpnum_t R_GetFlatNumForName(const char *name) { - lumpnum_t lump = W_CheckNumForNameInBlock(name, "F_START", "F_END"); - if (lump == LUMPERROR) - lump = W_CheckNumForNameInBlock(name, "FF_START", "FF_END"); // deutex, some other old things + INT32 i; + lumpnum_t lump; + lumpnum_t start; + lumpnum_t end; + + // Scan wad files backwards so patched flats take preference. + for (i = numwadfiles - 1; i >= 0; i--) + { + // WAD type? use markers. + if (wadfiles[i]->type == RET_WAD) + { + // Find the ranges to work with. + start = W_CheckNumForNamePwad("F_START", (UINT16)i, 0); + if (start == INT16_MAX) + { + start = W_CheckNumForNamePwad("FF_START", (UINT16)i, 0); + if (start == INT16_MAX) + { + continue; + } + else + { + end = W_CheckNumForNamePwad("FF_END", (UINT16)i, start); + if (end == INT16_MAX) + { + continue; + } + } + } + else + { + end = W_CheckNumForNamePwad("F_END", (UINT16)i, start); + if (end == INT16_MAX) + continue; + } + } + else if (wadfiles[i]->type == RET_PK3) + { + start = W_CheckNumForFullNamePK3("Flats/", i, 0); + if (start == INT16_MAX) + continue; + end = W_CheckNumForFolderEndPK3("Flats/", i, start); + if (end == INT16_MAX) + continue; + } + // Now find lump with specified name in that range. + lump = W_CheckNumForNamePwad(name, (UINT16)i, start); + if (lump < end) + { + lump += (i<<16); // found it, in our constraints + break; + } + lump = LUMPERROR; + } + if (lump == LUMPERROR) { if (strcmp(name, SKYFLATNAME)) diff --git a/src/w_wad.c b/src/w_wad.c index e410e4bde..65f0ee214 100644 --- a/src/w_wad.c +++ b/src/w_wad.c @@ -291,7 +291,7 @@ static void W_InvalidateLumpnumCache(void) // // Can now load dehacked files (.soc) // -UINT16 W_LoadWadFile(const char *filename) +UINT16 W_InitFile(const char *filename) { FILE *handle; lumpinfo_t *lumpinfo; @@ -412,12 +412,11 @@ UINT16 W_LoadWadFile(const char *filename) numlumps = 0; type = RET_PK3; - CONS_Alert(CONS_NOTICE, "PK3 file detected.\n"); // Obtain the file's size. fseek(handle, 0, SEEK_END); size = ftell(handle); - CONS_Printf("PK3 size is: %ld\n", size); + CONS_Debug(DBG_SETUP, "PK3 size is: %ld\n", size); // We must look for the central directory through the file. // All of the central directory entry headers have a signature of 0x50 0x4b 0x01 0x02. @@ -435,7 +434,7 @@ UINT16 W_LoadWadFile(const char *filename) { matched = TRUE; fseek(handle, -4, SEEK_CUR); - CONS_Printf("Found PK3 central directory at position %ld.\n", ftell(handle)); + CONS_Debug(DBG_SETUP, "Found PK3 central directory at position %ld.\n", ftell(handle)); break; } } @@ -451,7 +450,7 @@ UINT16 W_LoadWadFile(const char *filename) // Since we found the central directory, now we can map our lumpinfo table. // We will look for file headers inside it, until we reach the central directory end signature. // We exactly know what data to expect this time, so now we don't need to do a byte-by-byte search. - CONS_Printf("Now finding central directory file headers...\n"); + CONS_Debug(DBG_SETUP, "Now finding central directory file headers...\n"); while(ftell(handle) < size - 4) // Make sure we don't go past the file size! { fread(curHeader, 1, 4, handle); @@ -477,10 +476,10 @@ UINT16 W_LoadWadFile(const char *filename) // We get the compression type indicator value. fseek(handle, 6, SEEK_CUR); fread(&eCompression, 1, 2, handle); - // Get the + // Get the size fseek(handle, 8, SEEK_CUR); - fread(&eSize, 1, 4, handle); fread(&eCompSize, 1, 4, handle); + fread(&eSize, 1, 4, handle); // We get the variable length fields. fread(&eNameLen, 1, 2, handle); fread(&eXFieldLen, 1, 2, handle); @@ -490,7 +489,6 @@ UINT16 W_LoadWadFile(const char *filename) eName = malloc(sizeof(char)*(eNameLen + 1)); fgets(eName, eNameLen + 1, handle); - CONS_Printf("File %s at: %ld\n", eName, ftell(handle)); if (numlumps == 0) // First lump? Let's allocate the first lumpinfo block. lumpinfo = Z_Malloc(sizeof(*lumpinfo), PU_STATIC, NULL); else // Otherwise, reallocate and increase by 1. Might not be optimal, though... @@ -541,6 +539,7 @@ UINT16 W_LoadWadFile(const char *filename) lumpinfo[numlumps].compression = CM_UNSUPPORTED; break; } + CONS_Debug(DBG_SETUP, "File %s, data begins at: %ld\n", eName, lumpinfo[numlumps].position); fseek(handle, eXFieldLen + eCommentLen, SEEK_CUR); // We skip to where we expect the next central directory entry or end marker to be. numlumps++; free(eName); @@ -548,7 +547,7 @@ UINT16 W_LoadWadFile(const char *filename) // We found the central directory end signature? else if (!strncmp(curHeader, endPat, 4)) { - CONS_Printf("Central directory end signature found at: %ld\n", ftell(handle)); + CONS_Debug(DBG_SETUP, "Central directory end signature found at: %ld\n", ftell(handle)); // We will create a "virtual" marker lump at the very end of lumpinfo for convenience. // This marker will be used by the different lump-seeking (eg. textures, sprites, etc.) in PK3-specific cases in an auxiliary way. @@ -760,7 +759,7 @@ INT32 W_InitMultipleFiles(char **filenames) for (; *filenames; filenames++) { //CONS_Debug(DBG_SETUP, "Loading %s\n", *filenames); - rc &= (W_LoadWadFile(*filenames) != INT16_MAX) ? 1 : 0; + rc &= (W_InitFile(*filenames) != INT16_MAX) ? 1 : 0; } if (!numwadfiles) @@ -850,8 +849,6 @@ UINT16 W_CheckNumForFolderEndPK3(const char *name, UINT16 wad, UINT16 startlump) if (strnicmp(name, lump_p->name2, strlen(name))) break; } - // Not found at all? - CONS_Printf("W_CheckNumForFolderEndPK3: Folder %s end at %d.\n", name, i); return i; } @@ -865,7 +862,6 @@ UINT16 W_CheckNumForFullNamePK3(const char *name, UINT16 wad, UINT16 startlump) { if (!strnicmp(name, lump_p->name2, strlen(name))) { - CONS_Printf("W_CheckNumForNamePK3: Found %s at %d.\n", name, i); return i; } } @@ -943,15 +939,20 @@ lumpnum_t W_CheckNumForNameInBlock(const char *name, const char *blockstart, con // scan wad files backwards so patch lump files take precedence for (i = numwadfiles - 1; i >= 0; i--) { - bsid = W_CheckNumForNamePwad(blockstart,(UINT16)i,0); - if (bsid == INT16_MAX) - continue; // block doesn't exist, keep going - beid = W_CheckNumForNamePwad(blockend,(UINT16)i,0); - // if block end doesn't exist, just search through everything + if (wadfiles[i]->type == RET_WAD) + { + bsid = W_CheckNumForNamePwad(blockstart, (UINT16)i, 0); + if (bsid == INT16_MAX) + continue; // Start block doesn't exist? + beid = W_CheckNumForNamePwad(blockend, (UINT16)i, 0); + if (beid == INT16_MAX) + continue; // End block doesn't exist? + + check = W_CheckNumForNamePwad(name, (UINT16)i, bsid); + if (check < beid) + return (i<<16)+check; // found it, in our constraints + } - check = W_CheckNumForNamePwad(name,(UINT16)i,bsid); - if (check < beid) - return (i<<16)+check; // found it, in our constraints } return LUMPERROR; } @@ -988,6 +989,31 @@ size_t W_LumpLength(lumpnum_t lumpnum) return W_LumpLengthPwad(WADFILENUM(lumpnum),LUMPNUM(lumpnum)); } +/* report a zlib or i/o error */ +void zerr(int ret) +{ + CONS_Printf("zpipe: ", stderr); + switch (ret) { + case Z_ERRNO: + if (ferror(stdin)) + CONS_Printf("error reading stdin\n", stderr); + if (ferror(stdout)) + CONS_Printf("error writing stdout\n", stderr); + break; + case Z_STREAM_ERROR: + CONS_Printf("invalid compression level\n", stderr); + break; + case Z_DATA_ERROR: + CONS_Printf("invalid or incomplete deflate data\n", stderr); + break; + case Z_MEM_ERROR: + CONS_Printf("out of memory\n", stderr); + break; + case Z_VERSION_ERROR: + CONS_Printf("zlib version mismatch!\n", stderr); + } +} + /** Reads bytes from the head of a lump. * Note: If the lump is compressed, the whole thing has to be read anyway. * @@ -1069,59 +1095,55 @@ size_t W_ReadLumpHeaderPwad(UINT16 wad, UINT16 lump, void *dest, size_t size, si } case CM_DEFLATE: // Is it compressed via DEFLATE? Very common in ZIPs/PK3s, also what most doom-related editors support. { - int ret; - unsigned have; - z_stream strm; - unsigned char in[16384]; - unsigned char out[16384]; + char *rawData; // The lump's raw data. + char *decData; // Lump's decompressed real data. + + int zErr; // Helper var. + z_stream strm; + unsigned long rawSize = l->disksize; + unsigned long decSize = l->size; + + rawData = Z_Malloc(rawSize, PU_STATIC, NULL); + decData = Z_Malloc(decSize, PU_STATIC, NULL); + + if (fread(rawData, 1, rawSize, handle) < rawSize) + I_Error("wad %d, lump %d: cannot read compressed data", wad, lump); - /* allocate inflate state */ strm.zalloc = Z_NULL; strm.zfree = Z_NULL; strm.opaque = Z_NULL; - strm.avail_in = 0; - strm.next_in = Z_NULL; - ret = inflateInit(&strm); - if (ret != Z_OK) - return ret; - /* decompress until deflate stream ends or end of file */ - do { - strm.avail_in = fread(in, 1, 16384, handle); - if (ferror(handle)) { - (void)inflateEnd(&strm); - return Z_ERRNO; + strm.total_in = strm.avail_in = rawSize; + strm.total_out = strm.avail_out = decSize; + + strm.next_in = rawData; + strm.next_out = decData; + + zErr = inflateInit2(&strm, -15); + if (zErr == Z_OK) + { + zErr = inflate(&strm, Z_FINISH); + if (zErr == Z_STREAM_END) + { + M_Memcpy(dest, decData, size); } - if (strm.avail_in == 0) - break; - strm.next_in = in; + else + { + size = 0; + zerr(zErr); + (void)inflateEnd(&strm); + } + } + else + { + CONS_Printf("whopet\n"); + size = 0; + zerr(zErr); + } - /* run inflate() on input until output buffer not full */ - do { + Z_Free(rawData); + Z_Free(decData); - strm.avail_out = 16384; - strm.next_out = out; - - ret = inflate(&strm, Z_NO_FLUSH); - //assert(ret != Z_STREAM_ERROR); /* state not clobbered */ - switch (ret) { - case Z_NEED_DICT: - ret = Z_DATA_ERROR; /* and fall through */ - case Z_DATA_ERROR: - case Z_MEM_ERROR: - (void)inflateEnd(&strm); - return ret; - } - - have = 16384 - strm.avail_out; - memcpy(dest, out, have); - } while (strm.avail_out == 0); - - /* done when inflate() says it's done */ - } while (ret != Z_STREAM_END); - - /* clean up and return */ - (void)inflateEnd(&strm); return size; } default: diff --git a/src/w_wad.h b/src/w_wad.h index 58b3b322c..5f1af6aad 100644 --- a/src/w_wad.h +++ b/src/w_wad.h @@ -43,7 +43,7 @@ typedef struct unsigned long position; // filelump_t filepos unsigned long disksize; // filelump_t size char name[9]; // filelump_t name[] - char *name2; // Dynamically allocated name. + char *name2; // Used by PK3s. Dynamically allocated name. size_t size; // real (uncompressed) size INT32 compressed; // i enum compmethod compression; // lump compression method @@ -94,7 +94,7 @@ void W_Shutdown(void); // Opens a WAD file. Returns the FILE * handle for the file, or NULL if not found or could not be opened FILE *W_OpenWadFile(const char **filename, boolean useerrors); // Load and add a wadfile to the active wad files, returns numbers of lumps, INT16_MAX on error -UINT16 W_LoadWadFile(const char *filename); +UINT16 W_InitFile(const char *filename); #ifdef DELFILE void W_UnloadWadFile(UINT16 num); #endif From d4c324eb30f8533b985d0bd832f4df8a2a27df08 Mon Sep 17 00:00:00 2001 From: Nevur Date: Tue, 16 May 2017 21:10:02 +0200 Subject: [PATCH 015/111] PK3 stuff again. -Now can load map WAD files inside Maps/ directory, but they must only contain map data explicitly! Known problems: -There's an issue causing a crash with palettes and colormaps in PK3s. -SS_START and SS_END don't work now. Will check later. -Standalone lumps for maps in the Maps/ folder don't work anymore; perhaps I should keep that functionality? Notes: -It's now a mashup of something dumb that I wanted to do and yet piling hacks again. -A lot of code duplicity with map lump loading functions. --- src/p_setup.c | 828 ++++++++++++++++++++++++++++++++++++++++++++++--- src/p_spec.c | 5 +- src/r_data.c | 29 +- src/r_things.c | 35 ++- src/r_things.h | 2 +- src/w_wad.c | 54 ++-- src/w_wad.h | 10 +- 7 files changed, 872 insertions(+), 91 deletions(-) diff --git a/src/p_setup.c b/src/p_setup.c index fcc2ae591..3aea666da 100644 --- a/src/p_setup.c +++ b/src/p_setup.c @@ -418,6 +418,31 @@ static inline void P_LoadVertexes(lumpnum_t lumpnum) Z_Free(data); } +static inline void P_LoadRawVertexes(UINT8 *data, size_t i) +{ + mapvertex_t *ml; + vertex_t *li; + + numvertexes = i / sizeof (mapvertex_t); + + if (numvertexes <= 0) + I_Error("Level has no vertices"); // instead of crashing + + // Allocate zone memory for buffer. + vertexes = Z_Calloc(numvertexes * sizeof (*vertexes), PU_LEVEL, NULL); + + ml = (mapvertex_t *)data; + li = vertexes; + + // Copy and convert vertex coordinates, internal representation as fixed. + for (i = 0; i < numvertexes; i++, li++, ml++) + { + li->x = SHORT(ml->x)<y = SHORT(ml->y)<v1 = &vertexes[SHORT(ml->v1)]; + li->v2 = &vertexes[SHORT(ml->v2)]; + +#ifdef HWRENDER // not win32 only 19990829 by Kin + // used for the hardware render + if (rendermode != render_soft && rendermode != render_none) + { + li->flength = P_SegLengthf(li); + //Hurdler: 04/12/2000: for now, only used in hardware mode + li->lightmaps = NULL; // list of static lightmap for this seg + } +#endif + + li->angle = (SHORT(ml->angle))<offset = (SHORT(ml->offset))<linedef); + ldef = &lines[linedef]; + li->linedef = ldef; + li->side = side = SHORT(ml->side); + li->sidedef = &sides[ldef->sidenum[side]]; + li->frontsector = sides[ldef->sidenum[side]].sector; + if (ldef-> flags & ML_TWOSIDED) + li->backsector = sides[ldef->sidenum[side^1]].sector; + else + li->backsector = 0; + + li->numlights = 0; + li->rlights = NULL; + } +} + + /** Loads the SSECTORS resource from a level. * * \param lump Lump number of the SSECTORS resource. @@ -543,6 +616,30 @@ static inline void P_LoadSubsectors(lumpnum_t lumpnum) Z_Free(data); } +static inline void P_LoadRawSubsectors(void *data, size_t i) +{ + mapsubsector_t *ms; + subsector_t *ss; + + numsubsectors = i / sizeof (mapsubsector_t); + if (numsubsectors <= 0) + I_Error("Level has no subsectors (did you forget to run it through a nodesbuilder?)"); + ss = subsectors = Z_Calloc(numsubsectors * sizeof (*subsectors), PU_LEVEL, NULL); + + ms = (mapsubsector_t *)data; + + for (i = 0; i < numsubsectors; i++, ss++, ms++) + { + ss->sector = NULL; + ss->numlines = SHORT(ms->numsegs); + ss->firstline = SHORT(ms->firstseg); +#ifdef FLOORSPLATS + ss->splats = NULL; +#endif + ss->validcount = 0; + } +} + // // levelflats // @@ -780,6 +877,111 @@ static void P_LoadSectors(lumpnum_t lumpnum) P_SetupLevelFlatAnims(); } +static void P_LoadRawSectors(UINT8 *data, size_t i) +{ + mapsector_t *ms; + sector_t *ss; + levelflat_t *foundflats; + + // We count how many sectors we got. + numsectors = i / sizeof (mapsector_t); + if (numsectors <= 0) + I_Error("Level has no sectors"); + + // Allocate as much memory as we need into the global sectors table. + sectors = Z_Calloc(numsectors*sizeof (*sectors), PU_LEVEL, NULL); + + // Allocate a big chunk of memory as big as our MAXLEVELFLATS limit. + //Fab : FIXME: allocate for whatever number of flats - 512 different flats per level should be plenty + foundflats = calloc(MAXLEVELFLATS, sizeof (*foundflats)); + if (foundflats == NULL) + I_Error("Ran out of memory while loading sectors\n"); + + numlevelflats = 0; + + // For each counted sector, copy the sector raw data from our cache pointer ms, to the global table pointer ss. + ms = (mapsector_t *)data; + ss = sectors; + for (i = 0; i < numsectors; i++, ss++, ms++) + { + ss->floorheight = SHORT(ms->floorheight)<ceilingheight = SHORT(ms->ceilingheight)<floorpic = P_AddLevelFlat(ms->floorpic, foundflats); + ss->ceilingpic = P_AddLevelFlat(ms->ceilingpic, foundflats); + + ss->lightlevel = SHORT(ms->lightlevel); + ss->special = SHORT(ms->special); + ss->tag = SHORT(ms->tag); + ss->nexttag = ss->firsttag = -1; + ss->spawn_nexttag = ss->spawn_firsttag = -1; + + memset(&ss->soundorg, 0, sizeof(ss->soundorg)); + ss->validcount = 0; + + ss->thinglist = NULL; + ss->touching_thinglist = NULL; + ss->preciplist = NULL; + ss->touching_preciplist = NULL; + + ss->floordata = NULL; + ss->ceilingdata = NULL; + ss->lightingdata = NULL; + + ss->linecount = 0; + ss->lines = NULL; + + ss->heightsec = -1; + ss->camsec = -1; + ss->floorlightsec = -1; + ss->ceilinglightsec = -1; + ss->crumblestate = 0; + ss->ffloors = NULL; + ss->lightlist = NULL; + ss->numlights = 0; + ss->attached = NULL; + ss->attachedsolid = NULL; + ss->numattached = 0; + ss->maxattached = 1; + ss->moved = true; + + ss->extra_colormap = NULL; + + ss->floor_xoffs = ss->ceiling_xoffs = ss->floor_yoffs = ss->ceiling_yoffs = 0; + ss->spawn_flr_xoffs = ss->spawn_ceil_xoffs = ss->spawn_flr_yoffs = ss->spawn_ceil_yoffs = 0; + ss->floorpic_angle = ss->ceilingpic_angle = 0; + ss->spawn_flrpic_angle = ss->spawn_ceilpic_angle = 0; + ss->bottommap = ss->midmap = ss->topmap = -1; + ss->gravity = NULL; + ss->cullheight = NULL; + ss->verticalflip = false; + ss->flags = 0; + ss->flags |= SF_FLIPSPECIAL_FLOOR; + + ss->floorspeed = 0; + ss->ceilspeed = 0; + +#ifdef HWRENDER // ----- for special tricks with HW renderer ----- + ss->pseudoSector = false; + ss->virtualFloor = false; + ss->virtualCeiling = false; + ss->sectorLines = NULL; + ss->stackList = NULL; + ss->lineoutLength = -1.0l; +#endif // ----- end special tricks ----- + } + + // set the sky flat num + skyflatnum = P_AddLevelFlat(SKYFLATNAME, foundflats); + + // copy table for global usage + levelflats = M_Memcpy(Z_Calloc(numlevelflats * sizeof (*levelflats), PU_LEVEL, NULL), foundflats, numlevelflats * sizeof (levelflat_t)); + free(foundflats); + + // search for animated flats and set up + P_SetupLevelFlatAnims(); +} + // // P_LoadNodes // @@ -817,6 +1019,36 @@ static void P_LoadNodes(lumpnum_t lumpnum) Z_Free(data); } +static void P_LoadRawNodes(UINT8 *data, size_t i) +{ + UINT8 j, k; + mapnode_t *mn; + node_t *no; + + numnodes = i / sizeof (mapnode_t); + if (numnodes <= 0) + I_Error("Level has no nodes"); + nodes = Z_Calloc(numnodes * sizeof (*nodes), PU_LEVEL, NULL); + + mn = (mapnode_t *)data; + no = nodes; + + for (i = 0; i < numnodes; i++, no++, mn++) + { + no->x = SHORT(mn->x)<y = SHORT(mn->y)<dx = SHORT(mn->dx)<dy = SHORT(mn->dy)<children[j] = SHORT(mn->children[j]); + for (k = 0; k < 4; k++) + no->bbox[j][k] = SHORT(mn->bbox[j][k])<x = READINT16(data); + mt->y = READINT16(data); + mt->angle = READINT16(data); + mt->type = READUINT16(data); + mt->options = READUINT16(data); + mt->extrainfo = (UINT8)(mt->type >> 12); + + mt->type &= 4095; + + switch (mt->type) + { + case 1700: // MT_AXIS + case 1701: // MT_AXISTRANSFER + case 1702: // MT_AXISTRANSFERLINE + mt->mobj = NULL; + P_SpawnMapThing(mt); + break; + default: + break; + } + } +} + static void P_LoadThings(void) { size_t i; @@ -1287,6 +1556,113 @@ static void P_LoadLineDefs(lumpnum_t lumpnum) Z_Free(data); } +static void P_LoadRawLineDefs(UINT8 *data, size_t i) +{ + maplinedef_t *mld; + line_t *ld; + vertex_t *v1, *v2; + + numlines = i / sizeof (maplinedef_t); + if (numlines <= 0) + I_Error("Level has no linedefs"); + lines = Z_Calloc(numlines * sizeof (*lines), PU_LEVEL, NULL); + + mld = (maplinedef_t *)data; + ld = lines; + for (i = 0; i < numlines; i++, mld++, ld++) + { + ld->flags = SHORT(mld->flags); + ld->special = SHORT(mld->special); + ld->tag = SHORT(mld->tag); + v1 = ld->v1 = &vertexes[SHORT(mld->v1)]; + v2 = ld->v2 = &vertexes[SHORT(mld->v2)]; + ld->dx = v2->x - v1->x; + ld->dy = v2->y - v1->y; + +#ifdef WALLSPLATS + ld->splats = NULL; +#endif + + if (!ld->dx) + ld->slopetype = ST_VERTICAL; + else if (!ld->dy) + ld->slopetype = ST_HORIZONTAL; + else if (FixedDiv(ld->dy, ld->dx) > 0) + ld->slopetype = ST_POSITIVE; + else + ld->slopetype = ST_NEGATIVE; + + if (v1->x < v2->x) + { + ld->bbox[BOXLEFT] = v1->x; + ld->bbox[BOXRIGHT] = v2->x; + } + else + { + ld->bbox[BOXLEFT] = v2->x; + ld->bbox[BOXRIGHT] = v1->x; + } + + if (v1->y < v2->y) + { + ld->bbox[BOXBOTTOM] = v1->y; + ld->bbox[BOXTOP] = v2->y; + } + else + { + ld->bbox[BOXBOTTOM] = v2->y; + ld->bbox[BOXTOP] = v1->y; + } + + ld->sidenum[0] = SHORT(mld->sidenum[0]); + ld->sidenum[1] = SHORT(mld->sidenum[1]); + + { + // cph 2006/09/30 - fix sidedef errors right away. + // cph 2002/07/20 - these errors are fatal if not fixed, so apply them + UINT8 j; + + for (j=0; j < 2; j++) + { + if (ld->sidenum[j] != 0xffff && ld->sidenum[j] >= (UINT16)numsides) + { + ld->sidenum[j] = 0xffff; + CONS_Debug(DBG_SETUP, "P_LoadLineDefs: linedef %s has out-of-range sidedef number\n", sizeu1(numlines-i-1)); + } + } + } + + ld->frontsector = ld->backsector = NULL; + ld->validcount = 0; + ld->firsttag = ld->nexttag = -1; + ld->callcount = 0; + // killough 11/98: fix common wad errors (missing sidedefs): + + if (ld->sidenum[0] == 0xffff) + { + ld->sidenum[0] = 0; // Substitute dummy sidedef for missing right side + // cph - print a warning about the bug + CONS_Debug(DBG_SETUP, "P_LoadLineDefs: linedef %s missing first sidedef\n", sizeu1(numlines-i-1)); + } + + if ((ld->sidenum[1] == 0xffff) && (ld->flags & ML_TWOSIDED)) + { + ld->flags &= ~ML_TWOSIDED; // Clear 2s flag for missing left side + // cph - print a warning about the bug + CONS_Debug(DBG_SETUP, "P_LoadLineDefs: linedef %s has two-sided flag set, but no second sidedef\n", sizeu1(numlines-i-1)); + } + + if (ld->sidenum[0] != 0xffff && ld->special) + sides[ld->sidenum[0]].special = ld->special; + if (ld->sidenum[1] != 0xffff && ld->special) + sides[ld->sidenum[1]].special = ld->special; + +#ifdef POLYOBJECTS + ld->polyobj = NULL; +#endif + } +} + static void P_LoadLineDefs2(void) { size_t i = numlines; @@ -1396,6 +1772,14 @@ static inline void P_LoadSideDefs(lumpnum_t lumpnum) sides = Z_Calloc(numsides * sizeof (*sides), PU_LEVEL, NULL); } +static inline void P_LoadRawSideDefs(size_t i) +{ + numsides = i / sizeof (mapsidedef_t); + if (numsides <= 0) + I_Error("Level has no sidedefs"); + sides = Z_Calloc(numsides * sizeof (*sides), PU_LEVEL, NULL); +} + // Delay loading texture names until after loaded linedefs. static void P_LoadSideDefs2(lumpnum_t lumpnum) @@ -1636,6 +2020,244 @@ static void P_LoadSideDefs2(lumpnum_t lumpnum) R_ClearTextureNumCache(true); } +// I'm sorry about all this duplicity with little change :( -Nev3r +static void P_LoadRawSideDefs2(void *data) +{ + UINT16 i; + INT32 num; + + for (i = 0; i < numsides; i++) + { + register mapsidedef_t *msd = (mapsidedef_t *)data + i; + register side_t *sd = sides + i; + register sector_t *sec; + + sd->textureoffset = SHORT(msd->textureoffset)<rowoffset = SHORT(msd->rowoffset)<sector); + + if (sector_num >= numsectors) + { + CONS_Debug(DBG_SETUP, "P_LoadSideDefs2: sidedef %u has out-of-range sector num %u\n", i, sector_num); + sector_num = 0; + } + sd->sector = sec = §ors[sector_num]; + } + + // refined to allow colormaps to work as wall textures if invalid as colormaps + // but valid as textures. + + sd->sector = sec = §ors[SHORT(msd->sector)]; + + // Colormaps! + switch (sd->special) + { + case 63: // variable colormap via 242 linedef + case 606: //SoM: 4/4/2000: Just colormap transfer + // SoM: R_CreateColormap will only create a colormap in software mode... + // Perhaps we should just call it instead of doing the calculations here. + if (rendermode == render_soft || rendermode == render_none) + { + if (msd->toptexture[0] == '#' || msd->bottomtexture[0] == '#') + { + sec->midmap = R_CreateColormap(msd->toptexture, msd->midtexture, + msd->bottomtexture); + sd->toptexture = sd->bottomtexture = 0; + } + else + { + if ((num = R_CheckTextureNumForName(msd->toptexture)) == -1) + sd->toptexture = 0; + else + sd->toptexture = num; + if ((num = R_CheckTextureNumForName(msd->midtexture)) == -1) + sd->midtexture = 0; + else + sd->midtexture = num; + if ((num = R_CheckTextureNumForName(msd->bottomtexture)) == -1) + sd->bottomtexture = 0; + else + sd->bottomtexture = num; + } + break; + } +#ifdef HWRENDER + else + { + // for now, full support of toptexture only + if ((msd->toptexture[0] == '#' && msd->toptexture[1] && msd->toptexture[2] && msd->toptexture[3] && msd->toptexture[4] && msd->toptexture[5] && msd->toptexture[6]) + || (msd->bottomtexture[0] == '#' && msd->bottomtexture[1] && msd->bottomtexture[2] && msd->bottomtexture[3] && msd->bottomtexture[4] && msd->bottomtexture[5] && msd->bottomtexture[6])) + { + char *col; + + sec->midmap = R_CreateColormap(msd->toptexture, msd->midtexture, + msd->bottomtexture); + sd->toptexture = sd->bottomtexture = 0; +#define HEX2INT(x) (x >= '0' && x <= '9' ? x - '0' : x >= 'a' && x <= 'f' ? x - 'a' + 10 : x >= 'A' && x <= 'F' ? x - 'A' + 10 : 0) +#define ALPHA2INT(x) (x >= 'a' && x <= 'z' ? x - 'a' : x >= 'A' && x <= 'Z' ? x - 'A' : x >= '0' && x <= '9' ? 25 : 0) + sec->extra_colormap = &extra_colormaps[sec->midmap]; + + if (msd->toptexture[0] == '#' && msd->toptexture[1] && msd->toptexture[2] && msd->toptexture[3] && msd->toptexture[4] && msd->toptexture[5] && msd->toptexture[6]) + { + col = msd->toptexture; + + sec->extra_colormap->rgba = + (HEX2INT(col[1]) << 4) + (HEX2INT(col[2]) << 0) + + (HEX2INT(col[3]) << 12) + (HEX2INT(col[4]) << 8) + + (HEX2INT(col[5]) << 20) + (HEX2INT(col[6]) << 16); + + // alpha + if (msd->toptexture[7]) + sec->extra_colormap->rgba += (ALPHA2INT(col[7]) << 24); + else + sec->extra_colormap->rgba += (25 << 24); + } + else + sec->extra_colormap->rgba = 0; + + if (msd->bottomtexture[0] == '#' && msd->bottomtexture[1] && msd->bottomtexture[2] && msd->bottomtexture[3] && msd->bottomtexture[4] && msd->bottomtexture[5] && msd->bottomtexture[6]) + { + col = msd->bottomtexture; + + sec->extra_colormap->fadergba = + (HEX2INT(col[1]) << 4) + (HEX2INT(col[2]) << 0) + + (HEX2INT(col[3]) << 12) + (HEX2INT(col[4]) << 8) + + (HEX2INT(col[5]) << 20) + (HEX2INT(col[6]) << 16); + + // alpha + if (msd->bottomtexture[7]) + sec->extra_colormap->fadergba += (ALPHA2INT(col[7]) << 24); + else + sec->extra_colormap->fadergba += (25 << 24); + } + else + sec->extra_colormap->fadergba = 0x19000000; // default alpha, (25 << 24) +#undef ALPHA2INT +#undef HEX2INT + } + else + { + if ((num = R_CheckTextureNumForName(msd->toptexture)) == -1) + sd->toptexture = 0; + else + sd->toptexture = num; + + if ((num = R_CheckTextureNumForName(msd->midtexture)) == -1) + sd->midtexture = 0; + else + sd->midtexture = num; + + if ((num = R_CheckTextureNumForName(msd->bottomtexture)) == -1) + sd->bottomtexture = 0; + else + sd->bottomtexture = num; + } + break; + } +#endif + + case 413: // Change music + { + char process[8+1]; + + sd->toptexture = sd->midtexture = sd->bottomtexture = 0; + if (msd->bottomtexture[0] != '-' || msd->bottomtexture[1] != '\0') + { + M_Memcpy(process,msd->bottomtexture,8); + process[8] = '\0'; + sd->bottomtexture = get_number(process)-1; + } + M_Memcpy(process,msd->toptexture,8); + process[8] = '\0'; + sd->text = Z_Malloc(7, PU_LEVEL, NULL); + + // If they type in O_ or D_ and their music name, just shrug, + // then copy the rest instead. + if ((process[0] == 'O' || process[0] == 'D') && process[7]) + M_Memcpy(sd->text, process+2, 6); + else // Assume it's a proper music name. + M_Memcpy(sd->text, process, 6); + sd->text[6] = 0; + break; + } + + case 4: // Speed pad parameters + case 414: // Play SFX + { + sd->toptexture = sd->midtexture = sd->bottomtexture = 0; + if (msd->toptexture[0] != '-' || msd->toptexture[1] != '\0') + { + char process[8+1]; + M_Memcpy(process,msd->toptexture,8); + process[8] = '\0'; + sd->toptexture = get_number(process); + } + break; + } + + case 14: // Bustable block parameters + case 15: // Fan particle spawner parameters + case 425: // Calls P_SetMobjState on calling mobj + case 434: // Custom Power + case 442: // Calls P_SetMobjState on mobjs of a given type in the tagged sectors + { + char process[8*3+1]; + memset(process,0,8*3+1); + sd->toptexture = sd->midtexture = sd->bottomtexture = 0; + if (msd->toptexture[0] == '-' && msd->toptexture[1] == '\0') + break; + else + M_Memcpy(process,msd->toptexture,8); + if (msd->midtexture[0] != '-' || msd->midtexture[1] != '\0') + M_Memcpy(process+strlen(process), msd->midtexture, 8); + if (msd->bottomtexture[0] != '-' || msd->bottomtexture[1] != '\0') + M_Memcpy(process+strlen(process), msd->bottomtexture, 8); + sd->toptexture = get_number(process); + break; + } + + case 443: // Calls a named Lua function + { + char process[8*3+1]; + memset(process,0,8*3+1); + sd->toptexture = sd->midtexture = sd->bottomtexture = 0; + if (msd->toptexture[0] == '-' && msd->toptexture[1] == '\0') + break; + else + M_Memcpy(process,msd->toptexture,8); + if (msd->midtexture[0] != '-' || msd->midtexture[1] != '\0') + M_Memcpy(process+strlen(process), msd->midtexture, 8); + if (msd->bottomtexture[0] != '-' || msd->bottomtexture[1] != '\0') + M_Memcpy(process+strlen(process), msd->bottomtexture, 8); + sd->text = Z_Malloc(strlen(process)+1, PU_LEVEL, NULL); + M_Memcpy(sd->text, process, strlen(process)+1); + break; + } + + default: // normal cases + if (msd->toptexture[0] == '#') + { + char *col = msd->toptexture; + sd->toptexture = sd->bottomtexture = + ((col[1]-'0')*100 + (col[2]-'0')*10 + col[3]-'0') + 1; + sd->midtexture = R_TextureNumForName(msd->midtexture); + } + else + { + sd->midtexture = R_TextureNumForName(msd->midtexture); + sd->toptexture = R_TextureNumForName(msd->toptexture); + sd->bottomtexture = R_TextureNumForName(msd->bottomtexture); + } + break; + } + } + + R_ClearTextureNumCache(true); +} + + static boolean LineInBlock(fixed_t cx1, fixed_t cy1, fixed_t cx2, fixed_t cy2, fixed_t bx1, fixed_t by1) { fixed_t bbox[4]; @@ -2524,6 +3146,7 @@ boolean P_SetupLevel(boolean skipprecip) // use gamemap to get map number. // 99% of the things already did, so. // Map header should always be in place at this point + boolean isLumpWad = false; // Is the lump a marker or actually a WAD file of its own? (For PK3s) INT32 i, loadprecip = 1, ranspecialwipe = 0; INT32 loademblems = 1; INT32 fromnetsave = 0; @@ -2685,7 +3308,54 @@ boolean P_SetupLevel(boolean skipprecip) } // internal game map - lastloadedmaplumpnum = W_GetNumForName(maplumpname = G_BuildMapName(gamemap)); + maplumpname = G_BuildMapName(gamemap); + lastloadedmaplumpnum = LUMPERROR; + + // Look for valid map data through all added files in descendant order. + // Get a map marker for WADs, and a standalone WAD file lump inside PK3s. + // TODO: Make it search through cache first, maybe...? + // TODO: Also move it to w_wad.c as a function...? + for (i = numwadfiles - 1; i >= 0; i--) + { + if (wadfiles[i]->type == RET_WAD) + { + UINT16 lumpNum; + for (lumpNum = 0; lumpNum < wadfiles[i]->numlumps; lumpNum++) + { + if (!strncmp(maplumpname, (wadfiles[i]->lumpinfo + lumpNum)->name, 8)) + { + lastloadedmaplumpnum = (i<<16) + lumpNum; + CONS_Printf("WAD %s has a map marker named %s.\n", wadfiles[i]->filename, maplumpname); + break; + } + } + } + else if (wadfiles[i]->type == RET_PK3) + { + // Look for the maps folder. + UINT16 lumpNum, end; + lumpNum = W_CheckNumForFullNamePK3("maps/", i, 0); + if (lumpNum != INT16_MAX) + end = W_CheckNumForFolderEndPK3("maps/", i, lumpNum); + else + continue; + + // Now look for the specified map. + for (++lumpNum; lumpNum < end; lumpNum++) + if (!strnicmp(maplumpname, (wadfiles[i]->lumpinfo + lumpNum)->name, 5)) + { + isLumpWad = true; + lastloadedmaplumpnum = (i<<16) + lumpNum; + CONS_Printf("PK3 %s has a map WAD named %s.\n", wadfiles[i]->filename, maplumpname); + break; + } + } + if (!(lastloadedmaplumpnum == LUMPERROR)) // Stop looking if we found a valid lump. + break; + } + + if (lastloadedmaplumpnum == INT16_MAX) + I_Error("Map %s not found.\n", maplumpname); R_ReInitColormaps(mapheaderinfo[gamemap-1]->palette); CON_SetupBackColormap(); @@ -2695,39 +3365,93 @@ boolean P_SetupLevel(boolean skipprecip) P_MakeMapMD5(lastloadedmaplumpnum, &mapmd5); - // note: most of this ordering is important - loadedbm = P_LoadBlockMap(lastloadedmaplumpnum + ML_BLOCKMAP); - P_LoadVertexes(lastloadedmaplumpnum + ML_VERTEXES); - P_LoadSectors(lastloadedmaplumpnum + ML_SECTORS); + // HACK ALERT: Cache the WAD, get the map data into the table, free memory. + // As it is implemented right now, we're assuming an uncompressed WAD. + // (As in, a normal PWAD, not ZWAD or anything. The lump itself can be compressed.) + // Basically this is a nerfed&modified version of W_InitFile from w_wad. + if (isLumpWad) + { + UINT16 i; + wadinfo_t *header; + filelump_t *fileinfo; + UINT8 *wadData = W_CacheLumpNum(lastloadedmaplumpnum, PU_STATIC); + header = (wadinfo_t *)wadData; + CONS_Printf("This map WAD contains %lu lumps.\n", header->numlumps); - P_LoadSideDefs(lastloadedmaplumpnum + ML_SIDEDEFS); + fileinfo = wadData + header->infotableofs; + for(i = 0; i < header->numlumps; i++, fileinfo++) + { + char name[9]; + memcpy(name, fileinfo->name, 8); + name[8] = '\0'; + CONS_Printf("%s, size %lu\n", name, fileinfo->size); + } + fileinfo = wadData + header->infotableofs; - P_LoadLineDefs(lastloadedmaplumpnum + ML_LINEDEFS); - if (!loadedbm) - P_CreateBlockMap(); // Graue 02-29-2004 - P_LoadSideDefs2(lastloadedmaplumpnum + ML_SIDEDEFS); + P_LoadRawVertexes(wadData + (fileinfo + ML_VERTEXES)->filepos, (fileinfo + ML_VERTEXES)->size); + P_LoadRawSectors(wadData + (fileinfo + ML_SECTORS)->filepos, (fileinfo + ML_SECTORS)->size); + P_LoadRawSideDefs((fileinfo + ML_SIDEDEFS)->size); + P_LoadRawLineDefs(wadData + (fileinfo + ML_LINEDEFS)->filepos, (fileinfo + ML_LINEDEFS)->size); + P_LoadRawSideDefs2(wadData + (fileinfo + ML_SIDEDEFS)->filepos); + P_LoadRawSubsectors(wadData + (fileinfo + ML_SSECTORS)->filepos, (fileinfo + ML_SSECTORS)->size); + P_LoadRawNodes(wadData + (fileinfo + ML_NODES)->filepos, (fileinfo + ML_NODES)->size); + P_LoadRawSegs(wadData + (fileinfo + ML_SEGS)->filepos, (fileinfo + ML_SEGS)->size); +// P_LoadReject(lastloadedmaplumpnum + ML_REJECT); - R_MakeColormaps(); - P_LoadLineDefs2(); - P_LoadSubsectors(lastloadedmaplumpnum + ML_SSECTORS); - P_LoadNodes(lastloadedmaplumpnum + ML_NODES); - P_LoadSegs(lastloadedmaplumpnum + ML_SEGS); - P_LoadReject(lastloadedmaplumpnum + ML_REJECT); - P_GroupLines(); + // Important: take care of the ordering of the next functions. + if (!loadedbm) + P_CreateBlockMap(); // Graue 02-29-2004 + R_MakeColormaps(); + P_LoadLineDefs2(); + P_GroupLines(); + numdmstarts = numredctfstarts = numbluectfstarts = 0; - numdmstarts = numredctfstarts = numbluectfstarts = 0; + // reset the player starts + for (i = 0; i < MAXPLAYERS; i++) + playerstarts[i] = NULL; - // reset the player starts - for (i = 0; i < MAXPLAYERS; i++) - playerstarts[i] = NULL; + for (i = 0; i < 2; i++) + skyboxmo[i] = NULL; - for (i = 0; i < 2; i++) - skyboxmo[i] = NULL; + P_MapStart(); - P_MapStart(); + P_PrepareRawThings(wadData + (fileinfo + ML_THINGS)->filepos, (fileinfo + ML_THINGS)->size); + Z_Free(wadData); + } + else + { + // Important: take care of the ordering of the next functions. + loadedbm = P_LoadBlockMap(lastloadedmaplumpnum + ML_BLOCKMAP); + P_LoadVertexes(lastloadedmaplumpnum + ML_VERTEXES); + P_LoadSectors(lastloadedmaplumpnum + ML_SECTORS); + P_LoadSideDefs(lastloadedmaplumpnum + ML_SIDEDEFS); + P_LoadLineDefs(lastloadedmaplumpnum + ML_LINEDEFS); + P_LoadSideDefs2(lastloadedmaplumpnum + ML_SIDEDEFS); + P_LoadSubsectors(lastloadedmaplumpnum + ML_SSECTORS); + P_LoadNodes(lastloadedmaplumpnum + ML_NODES); + P_LoadSegs(lastloadedmaplumpnum + ML_SEGS); + P_LoadReject(lastloadedmaplumpnum + ML_REJECT); - P_PrepareThings(lastloadedmaplumpnum + ML_THINGS); + // Important: take care of the ordering of the next functions. + if (!loadedbm) + P_CreateBlockMap(); // Graue 02-29-2004 + R_MakeColormaps(); + P_LoadLineDefs2(); + P_GroupLines(); + numdmstarts = numredctfstarts = numbluectfstarts = 0; + + // reset the player starts + for (i = 0; i < MAXPLAYERS; i++) + playerstarts[i] = NULL; + + for (i = 0; i < 2; i++) + skyboxmo[i] = NULL; + + P_MapStart(); + + P_PrepareThings(lastloadedmaplumpnum + ML_THINGS); + } #ifdef ESLOPE P_ResetDynamicSlopes(); @@ -3079,6 +3803,32 @@ void P_LoadMusicsRange(UINT16 wadnum, UINT16 first, UINT16 num) return; } +// Auxiliary function for PK3 loading - adds extra lumps +// NOTE: does nothing but print debug messages. +/*void P_LoadWadMapRange(UINT16 wadnum, UINT16 first, UINT16 num) +{ + lumpinfo_t *lumpinfo = wadfiles[wadnum]->lumpinfo + first; + CONS_Printf("First %s\n", lumpinfo->name2); + for (; num > 0; num--, first++, lumpinfo++) + { + wadinfo_t header; + void* wadCache = Z_Malloc(W_LumpLengthPwad(wadnum, first), PU_STATIC, NULL); + W_ReadLumpHeaderPwad(wadnum, first, wadCache, 0, 0); + // We put the header info into our header var. + memcpy(header, wadCache, sizeof header); + + header.numlumps = LONG(header.numlumps); + header.infotableofs = LONG(header.infotableofs); + lumpinfo = (lumpinfo_t*) Z_Realloc(lumpinfo, (numlumps + 1)*sizeof(*lumpinfo), PU_STATIC, NULL); + + + Z_Free(wadCache); + CONS_Printf("Decached map WAD stuff.\n"); + } + return; +}*/ + + // // Add a wadfile to the active wad files, // replace sounds, musics, patches, textures, sprites and maps @@ -3095,16 +3845,17 @@ boolean P_AddWadFile(const char *wadfilename, char **firstmapname) // Vars to help us with the position start and amount of each resource type. // Useful for PK3s since they use folders. // WADs use markers for some resources, but others such as sounds are checked lump-by-lump anyway. - UINT16 luaPos, luaNum = 0; - UINT16 socPos, socNum = 0; +// UINT16 luaPos, luaNum = 0; +// UINT16 socPos, socNum = 0; UINT16 sfxPos, sfxNum = 0; UINT16 musPos, musNum = 0; UINT16 sprPos, sprNum = 0; UINT16 texPos, texNum = 0; // UINT16 patPos, patNum = 0; // UINT16 flaPos, flaNum = 0; -// UINT16 mapPos, mapNum = 0; + UINT16 mapPos, mapNum = 0; + // Init file. if ((numlumps = W_InitFile(wadfilename)) == INT16_MAX) { CONS_Printf(M_GetText("Errors occured while loading %s; not added.\n"), wadfilename); @@ -3133,7 +3884,6 @@ boolean P_AddWadFile(const char *wadfilename, char **firstmapname) } lumpinfo--; *end = i-- - *start; - CONS_Printf("Folder %s, first lump %lu, total: %lu.\n", folName, *start, *end); return; } return; @@ -3143,35 +3893,35 @@ boolean P_AddWadFile(const char *wadfilename, char **firstmapname) lumpinfo = wadfiles[wadnum]->lumpinfo; for (i = 0; i < numlumps; i++, lumpinfo++) { - FindFolder("Lua/", &luaPos, &luaNum); - FindFolder("Soc/", &socPos, &socNum); +// FindFolder("Lua/", &luaPos, &luaNum); +// FindFolder("SOCs/", &socPos, &socNum); FindFolder("Sounds/", &sfxPos, &sfxNum); FindFolder("Music/", &musPos, &musNum); FindFolder("Sprites/", &sprPos, &sprNum); FindFolder("Textures/", &texPos, &texNum); // FindFolder("Patches/", &patPos, &patNum); // FindFolder("Flats/", &flaPos, &flaNum); -// FindFolder("Maps/", &mapPos, &mapNum); + FindFolder("Maps/", &mapPos, &mapNum); } // Update the detected resources. // Note: ALWAYS load Lua scripts first, SOCs right after, and the remaining resources afterwards. #ifdef HAVE_BLUA - if (luaNum) // Lua scripts. - P_LoadLuaScrRange(wadnum, luaPos, luaNum); +// if (luaNum) // Lua scripts. +// P_LoadLuaScrRange(wadnum, luaPos, luaNum); #endif - if (socNum) // SOCs. - P_LoadDehackRange(wadnum, socPos, socNum); +// if (socNum) // SOCs. +// P_LoadDehackRange(wadnum, socPos, socNum); if (sfxNum) // Sounds. TODO: Function currently only updates already existing sounds, the rest is handled somewhere else. P_LoadSoundsRange(wadnum, sfxPos, sfxNum); if (musNum) // Music. TODO: Useless function right now. P_LoadMusicsRange(wadnum, musPos, musNum); if (sprNum) // Sprites. R_LoadSpritsRange(wadnum, sprPos, sprNum); - if (texNum) // Textures. TODO: R_LoadTextures() does the folder positioning once again. New function maybe? - R_LoadTextures(); +// if (texNum) // Textures. TODO: R_LoadTextures() does the folder positioning once again. New function maybe? +// R_LoadTextures(); // if (mapNum) // Maps. TODO: Actually implement the map WAD loading code, lulz. -// P_LoadWadMapRange(); +// P_LoadWadMapRange(wadnum, mapPos, mapNum); } break; default: diff --git a/src/p_spec.c b/src/p_spec.c index db7b852f5..7d27070da 100644 --- a/src/p_spec.c +++ b/src/p_spec.c @@ -284,7 +284,10 @@ void P_InitPicAnims(void) } // Now find ANIMDEFS - animdefsLumpNum = W_CheckNumForNamePwad("ANIMDEFS", w, 0); + if (wadfiles[w]->type == RET_WAD) + animdefsLumpNum = W_CheckNumForNamePwad("ANIMDEFS", w, 0); + else if (wadfiles[w]->type == RET_PK3) + animdefsLumpNum = W_CheckNumForFullNamePK3("ANIMDEFS", w, 0); if (animdefsLumpNum != INT16_MAX) P_ParseANIMDEFSLump(w, animdefsLumpNum); } diff --git a/src/r_data.c b/src/r_data.c index d7ac38974..4f1be210f 100644 --- a/src/r_data.c +++ b/src/r_data.c @@ -528,8 +528,8 @@ void R_FlushTextureCache(void) } // Need these prototypes for later; defining them here instead of r_data.h so they're "private" -int R_CountTexturesInTEXTURESLump(UINT16 wadNum); -void R_ParseTEXTURESLump(UINT16 wadNum, INT32 *index); +int R_CountTexturesInTEXTURESLump(UINT16 wadNum, UINT16 lumpNum); +void R_ParseTEXTURESLump(UINT16 wadNum, UINT16 lumpNum, INT32 *index); // // R_LoadTextures @@ -582,7 +582,7 @@ void R_LoadTextures(void) if (texturesLumpPos != INT16_MAX) { - numtextures += R_CountTexturesInTEXTURESLump((UINT16)w); + numtextures += R_CountTexturesInTEXTURESLump((UINT16)w, (UINT16)texturesLumpPos); } // Add all the textures between TX_START and TX_END @@ -623,16 +623,17 @@ void R_LoadTextures(void) { texstart = W_CheckNumForFullNamePK3("textures/", (UINT16)w, 0) + 1; texend = W_CheckNumForFolderEndPK3("textures/", (UINT16)w, texstart); + texturesLumpPos = W_CheckNumForFullNamePK3("textures", (UINT16)w, 0); } else { texstart = W_CheckNumForNamePwad(TX_START, (UINT16)w, 0) + 1; texend = W_CheckNumForNamePwad(TX_END, (UINT16)w, 0); + texturesLumpPos = W_CheckNumForNamePwad("TEXTURES", (UINT16)w, 0); } - texturesLumpPos = W_CheckNumForNamePwad("TEXTURES", (UINT16)w, 0); if (texturesLumpPos != INT16_MAX) - R_ParseTEXTURESLump(w,&i); + R_ParseTEXTURESLump(w, texturesLumpPos, &i); if (texstart == INT16_MAX || texend == INT16_MAX) continue; @@ -1041,7 +1042,7 @@ static texture_t *R_ParseTexture(boolean actuallyLoadTexture) } // Parses the TEXTURES lump... but just to count the number of textures. -int R_CountTexturesInTEXTURESLump(UINT16 wadNum) +int R_CountTexturesInTEXTURESLump(UINT16 wadNum, UINT16 lumpNum) { char *texturesLump; size_t texturesLumpLength; @@ -1052,11 +1053,11 @@ int R_CountTexturesInTEXTURESLump(UINT16 wadNum) // Since lumps AREN'T \0-terminated like I'd assumed they should be, I'll // need to make a space of memory where I can ensure that it will terminate // correctly. Start by loading the relevant data from the WAD. - texturesLump = (char *)W_CacheLumpNumPwad(wadNum,W_CheckNumForNamePwad("TEXTURES", wadNum, 0),PU_STATIC); + texturesLump = (char *)W_CacheLumpNumPwad(wadNum, lumpNum, PU_STATIC); // If that didn't exist, we have nothing to do here. if (texturesLump == NULL) return 0; // If we're still here, then it DOES exist; figure out how long it is, and allot memory accordingly. - texturesLumpLength = W_LumpLengthPwad(wadNum,W_CheckNumForNamePwad("TEXTURES",wadNum,0)); + texturesLumpLength = W_LumpLengthPwad(wadNum, lumpNum); texturesText = (char *)Z_Malloc((texturesLumpLength+1)*sizeof(char),PU_STATIC,NULL); // Now move the contents of the lump into this new location. memmove(texturesText,texturesLump,texturesLumpLength); @@ -1088,7 +1089,7 @@ int R_CountTexturesInTEXTURESLump(UINT16 wadNum) } // Parses the TEXTURES lump... for real, this time. -void R_ParseTEXTURESLump(UINT16 wadNum, INT32 *texindex) +void R_ParseTEXTURESLump(UINT16 wadNum, UINT16 lumpNum, INT32 *texindex) { char *texturesLump; size_t texturesLumpLength; @@ -1101,11 +1102,11 @@ void R_ParseTEXTURESLump(UINT16 wadNum, INT32 *texindex) // Since lumps AREN'T \0-terminated like I'd assumed they should be, I'll // need to make a space of memory where I can ensure that it will terminate // correctly. Start by loading the relevant data from the WAD. - texturesLump = (char *)W_CacheLumpNumPwad(wadNum,W_CheckNumForNamePwad("TEXTURES", wadNum, 0),PU_STATIC); + texturesLump = (char *)W_CacheLumpNumPwad(wadNum, lumpNum, PU_STATIC); // If that didn't exist, we have nothing to do here. if (texturesLump == NULL) return; // If we're still here, then it DOES exist; figure out how long it is, and allot memory accordingly. - texturesLumpLength = W_LumpLengthPwad(wadNum,W_CheckNumForNamePwad("TEXTURES",wadNum,0)); + texturesLumpLength = W_LumpLengthPwad(wadNum, lumpNum); texturesText = (char *)Z_Malloc((texturesLumpLength+1)*sizeof(char),PU_STATIC,NULL); // Now move the contents of the lump into this new location. memmove(texturesText,texturesLump,texturesLumpLength); @@ -1211,16 +1212,12 @@ lumpnum_t R_GetFlatNumForName(const char *name) { start = W_CheckNumForNamePwad("FF_START", (UINT16)i, 0); if (start == INT16_MAX) - { continue; - } else { end = W_CheckNumForNamePwad("FF_END", (UINT16)i, start); if (end == INT16_MAX) - { continue; - } } } else @@ -1297,7 +1294,7 @@ void R_ReInitColormaps(UINT16 num) { char colormap[9] = "COLORMAP"; lumpnum_t lump; - + CONS_Printf("Reinitting colormaps...\n"); if (num > 0 && num <= 10000) snprintf(colormap, 8, "CLM%04u", num-1); diff --git a/src/r_things.c b/src/r_things.c index e1b4d66b0..54a0d2b26 100644 --- a/src/r_things.c +++ b/src/r_things.c @@ -409,31 +409,42 @@ void R_AddSpriteDefs(UINT16 wadnum) UINT16 start, end; char wadname[MAX_WADPATH]; - // find the sprites section in this pwad - // we need at least the S_END - // (not really, but for speedup) + // Find the sprites section in this resource file. + if (wadfiles[wadnum]->type == RET_WAD) + { + start = W_CheckNumForNamePwad("S_START", wadnum, 0); + if (start == UINT16_MAX) + start = W_CheckNumForNamePwad("SS_START", wadnum, 0); //deutex compatib. + } + else if (wadfiles[wadnum]->type == RET_PK3) + start = W_CheckNumForFullNamePK3("Sprites/", wadnum, 0); - start = W_CheckNumForNamePwad("S_START", wadnum, 0); - if (start == INT16_MAX) - start = W_CheckNumForNamePwad("SS_START", wadnum, 0); //deutex compatib. - if (start == INT16_MAX) + if (start == UINT16_MAX) start = 0; //let say S_START is lump 0 else start++; // just after S_START + // ignore skin wads (we don't want skin sprites interfering with vanilla sprites) - if (start == 0 && W_CheckNumForNamePwad("S_SKIN", wadnum, 0) != INT16_MAX) + if (start == 0 && W_CheckNumForNamePwad("S_SKIN", wadnum, 0) != UINT16_MAX) return; - end = W_CheckNumForNamePwad("S_END",wadnum,start); - if (end == INT16_MAX) - end = W_CheckNumForNamePwad("SS_END",wadnum,start); //deutex compatib. - if (end == INT16_MAX) + if (wadfiles[wadnum]->type == RET_WAD) + { + end = W_CheckNumForNamePwad("S_END",wadnum,start); + if (end == UINT16_MAX) + end = W_CheckNumForNamePwad("SS_END",wadnum,start); //deutex compatib. + } + else if (wadfiles[wadnum]->type == RET_PK3) + end = W_CheckNumForFolderEndPK3("Sprites/", wadnum, start); + + if (end == UINT16_MAX) { CONS_Debug(DBG_SETUP, "no sprites in pwad %d\n", wadnum); return; } + // // scan through lumps, for each sprite, find all the sprite frames // diff --git a/src/r_things.h b/src/r_things.h index b3f1f4b4c..441d32087 100644 --- a/src/r_things.h +++ b/src/r_things.h @@ -50,7 +50,7 @@ void R_SortVisSprites(void); //faB: find sprites in wadfile, replace existing, add new ones // (only sprites from namelist are added or replaced) void R_AddSpriteDefs(UINT16 wadnum); -void R_AddSpriteDefsRange(UINT16 wadnum, UINT16 start, UINT16 end); +void R_LoadSpritsRange(UINT16 wadnum, UINT16 first, UINT16 num); #ifdef DELFILE diff --git a/src/w_wad.c b/src/w_wad.c index 65f0ee214..b86d8bd28 100644 --- a/src/w_wad.c +++ b/src/w_wad.c @@ -70,14 +70,6 @@ int snprintf(char *str, size_t n, const char *fmt, ...); #pragma pack(1) #endif -// a raw entry of the wad directory -typedef struct -{ - UINT32 filepos; // file offset of the resource - UINT32 size; // size of the resource - char name[8]; // name of the resource -} ATTRPACK filelump_t; - #if defined(_MSC_VER) #pragma pack() #endif @@ -179,6 +171,26 @@ FILE *W_OpenWadFile(const char **filename, boolean useerrors) return handle; } +// Look for all DEHACKED and Lua scripts inside a PK3 archive. +static inline void W_LoadDehackedLumpsPK3(UINT16 wadnum) +{ + UINT16 posStart, posEnd; + posStart = W_CheckNumForFullNamePK3("Lua/", wadnum, 0); + if (posStart != INT16_MAX) + { + posEnd = W_CheckNumForFolderEndPK3("Lua/", wadnum, posStart); + for (++posStart; posStart < posEnd; posStart++) + LUA_LoadLump(wadnum, posStart); + } + posStart = W_CheckNumForFullNamePK3("SOCs/", wadnum, 0); + if (posStart != INT16_MAX) + { + posEnd = W_CheckNumForFolderEndPK3("SOCs/", wadnum, posStart); + for(++posStart; posStart < posEnd; posStart++) + DEH_LoadDehackedLumpPwad(wadnum, posStart); + } +} + // search for all DEHACKED lump in all wads and load it static inline void W_LoadDehackedLumps(UINT16 wadnum) { @@ -539,6 +551,7 @@ UINT16 W_InitFile(const char *filename) lumpinfo[numlumps].compression = CM_UNSUPPORTED; break; } + CONS_Printf("File %s, Shortname %s, data begins at: %ld\n", eName, lumpinfo[numlumps].name, lumpinfo[numlumps].position); CONS_Debug(DBG_SETUP, "File %s, data begins at: %ld\n", eName, lumpinfo[numlumps].position); fseek(handle, eXFieldLen + eCommentLen, SEEK_CUR); // We skip to where we expect the next central directory entry or end marker to be. numlumps++; @@ -696,9 +709,12 @@ UINT16 W_InitFile(const char *filename) wadfiles[numwadfiles] = wadfile; numwadfiles++; // must come BEFORE W_LoadDehackedLumps, so any addfile called by COM_BufInsertText called by Lua doesn't overwrite what we just loaded - // TODO: HACK ALERT - Load Lua & SOC stuff right here for WADs. Avoids crash on startup since WADs are loaded using W_InitMultipleFiles. + // TODO: HACK ALERT - Load Lua & SOC stuff right here. I feel like this should be out of this place, but... Let's stick with this for now. if (wadfile->type == RET_WAD) W_LoadDehackedLumps(numwadfiles - 1); + else if (wadfile->type == RET_PK3) + W_LoadDehackedLumpsPK3(numwadfiles - 1); + W_InvalidateLumpnumCache(); @@ -827,10 +843,8 @@ UINT16 W_CheckNumForNamePwad(const char *name, UINT16 wad, UINT16 startlump) { lumpinfo_t *lump_p = wadfiles[wad]->lumpinfo + startlump; for (i = startlump; i < wadfiles[wad]->numlumps; i++, lump_p++) - { if (memcmp(lump_p->name,uname,8) == 0) return i; - } } // not found. @@ -992,25 +1006,25 @@ size_t W_LumpLength(lumpnum_t lumpnum) /* report a zlib or i/o error */ void zerr(int ret) { - CONS_Printf("zpipe: ", stderr); + CONS_Printf("zpipe: "); switch (ret) { case Z_ERRNO: if (ferror(stdin)) - CONS_Printf("error reading stdin\n", stderr); + CONS_Printf("error reading stdin\n"); if (ferror(stdout)) - CONS_Printf("error writing stdout\n", stderr); + CONS_Printf("error writing stdout\n"); break; case Z_STREAM_ERROR: - CONS_Printf("invalid compression level\n", stderr); + CONS_Printf("invalid compression level\n"); break; case Z_DATA_ERROR: - CONS_Printf("invalid or incomplete deflate data\n", stderr); + CONS_Printf("invalid or incomplete deflate data\n"); break; case Z_MEM_ERROR: - CONS_Printf("out of memory\n", stderr); + CONS_Printf("out of memory\n"); break; case Z_VERSION_ERROR: - CONS_Printf("zlib version mismatch!\n", stderr); + CONS_Printf("zlib version mismatch!\n"); } } @@ -1095,8 +1109,8 @@ size_t W_ReadLumpHeaderPwad(UINT16 wad, UINT16 lump, void *dest, size_t size, si } case CM_DEFLATE: // Is it compressed via DEFLATE? Very common in ZIPs/PK3s, also what most doom-related editors support. { - char *rawData; // The lump's raw data. - char *decData; // Lump's decompressed real data. + z_const Bytef *rawData; // The lump's raw data. + Bytef *decData; // Lump's decompressed real data. int zErr; // Helper var. z_stream strm; diff --git a/src/w_wad.h b/src/w_wad.h index 5f1af6aad..d5e6e9017 100644 --- a/src/w_wad.h +++ b/src/w_wad.h @@ -34,6 +34,14 @@ typedef struct UINT32 infotableofs; // the 'directory' of resources } wadinfo_t; +// a raw entry of the wad directory +typedef struct +{ + UINT32 filepos; // file offset of the resource + UINT32 size; // size of the resource + char name[8]; // name of the resource +} ATTRPACK filelump_t; + // Available compression methods for lumps. enum compmethod{CM_NONE, CM_DEFLATE, CM_LZF, CM_UNSUPPORTED}; @@ -99,8 +107,6 @@ UINT16 W_InitFile(const char *filename); void W_UnloadWadFile(UINT16 num); #endif -static inline void W_LoadDehackedLumps(UINT16 wadnum); - // W_InitMultipleFiles returns 1 if all is okay, 0 otherwise, // so that it stops with a message if a file was not found, but not if all is okay. INT32 W_InitMultipleFiles(char **filenames); From fd1efff338b716132a14535bf8c97708a2b2bb32 Mon Sep 17 00:00:00 2001 From: Monster Iestyn Date: Wed, 17 May 2017 20:36:40 +0100 Subject: [PATCH 016/111] Added the META_ACTION userdata type to Lua, created getActionName() to return string name SRB2's built-in action types will now all be pushed as META_ACTION, state_t.action can be assigned META_ACTION and return it getUserdataType returns "action" for META_ACTION variables --- src/dehacked.c | 35 +++++++++++++++++++++++++++-------- src/lua_baselib.c | 2 ++ src/lua_infolib.c | 27 ++++++++++++++++++++++++--- src/lua_libs.h | 2 ++ 4 files changed, 55 insertions(+), 11 deletions(-) diff --git a/src/dehacked.c b/src/dehacked.c index aa6f4f7f9..071f1bcfe 100644 --- a/src/dehacked.c +++ b/src/dehacked.c @@ -8263,11 +8263,11 @@ static inline int lib_freeslot(lua_State *L) } // Wrapper for ALL A_Action functions. -// Upvalue: actionf_t to represent // Arguments: mobj_t actor, int var1, int var2 -static inline int lib_action(lua_State *L) +static int action_call(lua_State *L) { - actionf_t *action = lua_touserdata(L,lua_upvalueindex(1)); + //actionf_t *action = lua_touserdata(L,lua_upvalueindex(1)); + actionf_t *action = *((actionf_t **)luaL_checkudata(L, 1, META_ACTION)); mobj_t *actor = *((mobj_t **)luaL_checkudata(L,1,META_MOBJ)); var1 = (INT32)luaL_optinteger(L,2,0); var2 = (INT32)luaL_optinteger(L,3,0); @@ -8547,9 +8547,8 @@ static inline int lib_getenum(lua_State *L) // Retrieving them from this metatable allows them to be case-insensitive! for (i = 0; actionpointers[i].name; i++) if (fasticmp(word, actionpointers[i].name)) { - // push lib_action as a C closure with the actionf_t* as an upvalue. - lua_pushlightuserdata(L, &actionpointers[i].action); - lua_pushcclosure(L, lib_action, 1); + // We push the actionf_t* itself as userdata! + LUA_PushUserdata(L, &actionpointers[i].action, META_ACTION); return 1; } return 0; @@ -8563,8 +8562,7 @@ static inline int lib_getenum(lua_State *L) } for (i = 0; actionpointers[i].name; i++) if (fasticmp(superactions[superstack-1], actionpointers[i].name)) { - lua_pushlightuserdata(L, &actionpointers[i].action); - lua_pushcclosure(L, lib_action, 1); + LUA_PushUserdata(L, &actionpointers[i].action, META_ACTION); return 1; } return 0; @@ -8688,9 +8686,30 @@ int LUA_EnumLib(lua_State *L) return 0; } +// getActionName(action) -> return action's string name +static int lib_getActionName(lua_State *L) +{ + actionf_t *action = *((actionf_t **)luaL_checkudata(L, 1, META_ACTION)); + const char *name = NULL; + if (!action) + return 0; // insert error here (or not?) + name = LUA_GetActionName(action); + if (!name) // that can't be right? + return 0; + lua_pushstring(L, name); + return 1; +} + int LUA_SOCLib(lua_State *L) { lua_register(L,"freeslot",lib_freeslot); + lua_register(L,"getActionName",lib_getActionName); + + luaL_newmetatable(L, META_ACTION); + lua_pushcfunction(L, action_call); + lua_setfield(L, -2, "__call"); + lua_pop(L, 1); + return 0; } diff --git a/src/lua_baselib.c b/src/lua_baselib.c index 93f2979fa..2a129c88a 100644 --- a/src/lua_baselib.c +++ b/src/lua_baselib.c @@ -131,6 +131,8 @@ static const struct { {META_PATCH, "patch_t"}, {META_COLORMAP, "colormap"}, {META_CAMERA, "camera_t"}, + + {META_ACTION, "action"}, {NULL, NULL} }; diff --git a/src/lua_infolib.c b/src/lua_infolib.c index 9361abe94..3edd6cc2f 100644 --- a/src/lua_infolib.c +++ b/src/lua_infolib.c @@ -244,6 +244,17 @@ static int lib_setState(lua_State *L) case LUA_TSTRING: // It's a string, expect the name of a built-in action LUA_SetActionByName(state, lua_tostring(L, 3)); break; + case LUA_TUSERDATA: // It's a userdata, expect META_ACTION of a built-in action + { + actionf_t *action = *((actionf_t **)luaL_checkudata(L, 3, META_ACTION)); + + if (!action) + return 0; //insert error here + + state->action = *action; + state->action.acv = action->acv; + state->action.acp1 = action->acp1; + } case LUA_TFUNCTION: // It's a function (a Lua function or a C function? either way!) lua_getfield(L, LUA_REGISTRYINDEX, LREG_STATEACTION); I_Assert(lua_istable(L, -1)); @@ -393,9 +404,8 @@ static int state_get(lua_State *L) return 0; // Just what is this?? // get the function from the global // because the metatable will trigger. - lua_getglobal(L, name); // actually gets from LREG_ACTIONS if applicable, and pushes a new C closure if not. - lua_pushstring(L, name); // push the name we found. - return 2; // return both the function and its name, in case somebody wanted to do a comparison by name or something? + lua_getglobal(L, name); // actually gets from LREG_ACTIONS if applicable, and pushes a META_ACTION userdata if not. + return 1; // return just the function } else if (fastcmp(field,"var1")) number = st->var1; else if (fastcmp(field,"var2")) @@ -439,6 +449,17 @@ static int state_set(lua_State *L) case LUA_TSTRING: // It's a string, expect the name of a built-in action LUA_SetActionByName(st, lua_tostring(L, 3)); break; + case LUA_TUSERDATA: // It's a userdata, expect META_ACTION of a built-in action + { + actionf_t *action = *((actionf_t **)luaL_checkudata(L, 3, META_ACTION)); + + if (!action) + return 0; //insert error here + + st->action = *action; + st->action.acv = action->acv; + st->action.acp1 = action->acp1; + } case LUA_TFUNCTION: // It's a function (a Lua function or a C function? either way!) lua_getfield(L, LUA_REGISTRYINDEX, LREG_STATEACTION); I_Assert(lua_istable(L, -1)); diff --git a/src/lua_libs.h b/src/lua_libs.h index fd4937b63..b63a3ceed 100644 --- a/src/lua_libs.h +++ b/src/lua_libs.h @@ -60,6 +60,8 @@ extern lua_State *gL; #define META_COLORMAP "COLORMAP" #define META_CAMERA "CAMERA_T*" +#define META_ACTION "ACTIONF_T*" + boolean luaL_checkboolean(lua_State *L, int narg); int LUA_EnumLib(lua_State *L); From 19c46f3732e3d745e9c96848f1ffaf227d09b996 Mon Sep 17 00:00:00 2001 From: Nevur Date: Thu, 18 May 2017 21:13:18 +0200 Subject: [PATCH 017/111] More PK3 work. -Removed code duplicity on map resource reading. -Fixed all known PK3-related bugs so far except for the ones mentioned below. Issues: -Blockmap and reject matrix still aren't loaded yet when using a map WAD. -Palettes and colormaps aren't loaded (by extension, TRANS tables might not work either). --- src/d_main.c | 2 + src/d_netcmd.c | 6 - src/p_setup.c | 787 ++++--------------------------------------------- src/w_wad.c | 40 ++- src/w_wad.h | 1 + 5 files changed, 106 insertions(+), 730 deletions(-) diff --git a/src/d_main.c b/src/d_main.c index 0bba9dc06..be06acb2e 100644 --- a/src/d_main.c +++ b/src/d_main.c @@ -1385,7 +1385,9 @@ void D_SRB2Main(void) else if (!dedicated && M_MapLocked(pstartmap)) I_Error("You need to unlock this level before you can warp to it!\n"); else + { D_MapChange(pstartmap, gametype, ultimatemode, true, 0, false, false); + } } } else if (M_CheckParm("-skipintro")) diff --git a/src/d_netcmd.c b/src/d_netcmd.c index 12aeac6ae..1c1ac2aa8 100644 --- a/src/d_netcmd.c +++ b/src/d_netcmd.c @@ -1545,16 +1545,12 @@ void D_MapChange(INT32 mapnum, INT32 newgametype, boolean pultmode, boolean rese { static char buf[2+MAX_WADPATH+1+4]; static char *buf_p = buf; - // The supplied data are assumed to be good. I_Assert(delay >= 0 && delay <= 2); - if (mapnum != -1) CV_SetValue(&cv_nextmap, mapnum); - CONS_Debug(DBG_GAMELOGIC, "Map change: mapnum=%d gametype=%d ultmode=%d resetplayers=%d delay=%d skipprecutscene=%d\n", mapnum, newgametype, pultmode, resetplayers, delay, skipprecutscene); - if ((netgame || multiplayer) && !((gametype == newgametype) && (newgametype == GT_COOP))) FLS = false; @@ -1562,9 +1558,7 @@ void D_MapChange(INT32 mapnum, INT32 newgametype, boolean pultmode, boolean rese { UINT8 flags = 0; const char *mapname = G_BuildMapName(mapnum); - I_Assert(W_CheckNumForName(mapname) != LUMPERROR); - buf_p = buf; if (pultmode) flags |= 1; diff --git a/src/p_setup.c b/src/p_setup.c index 3aea666da..2cc70e6a0 100644 --- a/src/p_setup.c +++ b/src/p_setup.c @@ -482,58 +482,6 @@ static inline float P_SegLengthf(seg_t *seg) * \param lump Lump number of the SEGS resource. * \sa ::ML_SEGS */ -static void P_LoadSegs(lumpnum_t lumpnum) -{ - UINT8 *data; - size_t i; - INT32 linedef, side; - mapseg_t *ml; - seg_t *li; - line_t *ldef; - - numsegs = W_LumpLength(lumpnum) / sizeof (mapseg_t); - if (numsegs <= 0) - I_Error("Level has no segs"); // instead of crashing - segs = Z_Calloc(numsegs * sizeof (*segs), PU_LEVEL, NULL); - data = W_CacheLumpNum(lumpnum, PU_STATIC); - - ml = (mapseg_t *)data; - li = segs; - for (i = 0; i < numsegs; i++, li++, ml++) - { - li->v1 = &vertexes[SHORT(ml->v1)]; - li->v2 = &vertexes[SHORT(ml->v2)]; - -#ifdef HWRENDER // not win32 only 19990829 by Kin - // used for the hardware render - if (rendermode != render_soft && rendermode != render_none) - { - li->flength = P_SegLengthf(li); - //Hurdler: 04/12/2000: for now, only used in hardware mode - li->lightmaps = NULL; // list of static lightmap for this seg - } -#endif - - li->angle = (SHORT(ml->angle))<offset = (SHORT(ml->offset))<linedef); - ldef = &lines[linedef]; - li->linedef = ldef; - li->side = side = SHORT(ml->side); - li->sidedef = &sides[ldef->sidenum[side]]; - li->frontsector = sides[ldef->sidenum[side]].sector; - if (ldef-> flags & ML_TWOSIDED) - li->backsector = sides[ldef->sidenum[side^1]].sector; - else - li->backsector = 0; - - li->numlights = 0; - li->rlights = NULL; - } - - Z_Free(data); -} - static void P_LoadRawSegs(UINT8 *data, size_t i) { INT32 linedef, side; @@ -581,41 +529,19 @@ static void P_LoadRawSegs(UINT8 *data, size_t i) } } +static void P_LoadSegs(lumpnum_t lumpnum) +{ + UINT8 *data = W_CacheLumpNum(lumpnum, PU_STATIC); + P_LoadRawSegs(data, W_LumpLength(lumpnum)); + Z_Free(data); +} + /** Loads the SSECTORS resource from a level. * * \param lump Lump number of the SSECTORS resource. * \sa ::ML_SSECTORS */ -static inline void P_LoadSubsectors(lumpnum_t lumpnum) -{ - void *data; - size_t i; - mapsubsector_t *ms; - subsector_t *ss; - - numsubsectors = W_LumpLength(lumpnum) / sizeof (mapsubsector_t); - if (numsubsectors <= 0) - I_Error("Level has no subsectors (did you forget to run it through a nodesbuilder?)"); - ss = subsectors = Z_Calloc(numsubsectors * sizeof (*subsectors), PU_LEVEL, NULL); - data = W_CacheLumpNum(lumpnum,PU_STATIC); - - ms = (mapsubsector_t *)data; - - for (i = 0; i < numsubsectors; i++, ss++, ms++) - { - ss->sector = NULL; - ss->numlines = SHORT(ms->numsegs); - ss->firstline = SHORT(ms->firstseg); -#ifdef FLOORSPLATS - ss->splats = NULL; -#endif - ss->validcount = 0; - } - - Z_Free(data); -} - static inline void P_LoadRawSubsectors(void *data, size_t i) { mapsubsector_t *ms; @@ -640,6 +566,13 @@ static inline void P_LoadRawSubsectors(void *data, size_t i) } } +static void P_LoadSubsectors(lumpnum_t lumpnum) +{ + UINT8 *data = W_CacheLumpNum(lumpnum, PU_STATIC); + P_LoadRawSubsectors(data, W_LumpLength(lumpnum)); + Z_Free(data); +} + // // levelflats // @@ -765,118 +698,6 @@ INT32 P_CheckLevelFlat(const char *flatname) // Sets up the ingame sectors structures. // Lumpnum is the lumpnum of a SECTORS lump. -static void P_LoadSectors(lumpnum_t lumpnum) -{ - UINT8 *data; - size_t i; - mapsector_t *ms; - sector_t *ss; - levelflat_t *foundflats; - - // We count how many sectors we got. - numsectors = W_LumpLength(lumpnum) / sizeof (mapsector_t); - if (numsectors <= 0) - I_Error("Level has no sectors"); - - // Allocate as much memory as we need into the global sectors table. - sectors = Z_Calloc(numsectors*sizeof (*sectors), PU_LEVEL, NULL); - - // Cache the data from the lump. - data = W_CacheLumpNum(lumpnum, PU_STATIC); - - // Allocate a big chunk of memory as big as our MAXLEVELFLATS limit. - //Fab : FIXME: allocate for whatever number of flats - 512 different flats per level should be plenty - foundflats = calloc(MAXLEVELFLATS, sizeof (*foundflats)); - if (foundflats == NULL) - I_Error("Ran out of memory while loading sectors\n"); - - numlevelflats = 0; - - // For each counted sector, copy the sector raw data from our cache pointer ms, to the global table pointer ss. - ms = (mapsector_t *)data; - ss = sectors; - for (i = 0; i < numsectors; i++, ss++, ms++) - { - ss->floorheight = SHORT(ms->floorheight)<ceilingheight = SHORT(ms->ceilingheight)<floorpic = P_AddLevelFlat(ms->floorpic, foundflats); - ss->ceilingpic = P_AddLevelFlat(ms->ceilingpic, foundflats); - - ss->lightlevel = SHORT(ms->lightlevel); - ss->special = SHORT(ms->special); - ss->tag = SHORT(ms->tag); - ss->nexttag = ss->firsttag = -1; - ss->spawn_nexttag = ss->spawn_firsttag = -1; - - memset(&ss->soundorg, 0, sizeof(ss->soundorg)); - ss->validcount = 0; - - ss->thinglist = NULL; - ss->touching_thinglist = NULL; - ss->preciplist = NULL; - ss->touching_preciplist = NULL; - - ss->floordata = NULL; - ss->ceilingdata = NULL; - ss->lightingdata = NULL; - - ss->linecount = 0; - ss->lines = NULL; - - ss->heightsec = -1; - ss->camsec = -1; - ss->floorlightsec = -1; - ss->ceilinglightsec = -1; - ss->crumblestate = 0; - ss->ffloors = NULL; - ss->lightlist = NULL; - ss->numlights = 0; - ss->attached = NULL; - ss->attachedsolid = NULL; - ss->numattached = 0; - ss->maxattached = 1; - ss->moved = true; - - ss->extra_colormap = NULL; - - ss->floor_xoffs = ss->ceiling_xoffs = ss->floor_yoffs = ss->ceiling_yoffs = 0; - ss->spawn_flr_xoffs = ss->spawn_ceil_xoffs = ss->spawn_flr_yoffs = ss->spawn_ceil_yoffs = 0; - ss->floorpic_angle = ss->ceilingpic_angle = 0; - ss->spawn_flrpic_angle = ss->spawn_ceilpic_angle = 0; - ss->bottommap = ss->midmap = ss->topmap = -1; - ss->gravity = NULL; - ss->cullheight = NULL; - ss->verticalflip = false; - ss->flags = 0; - ss->flags |= SF_FLIPSPECIAL_FLOOR; - - ss->floorspeed = 0; - ss->ceilspeed = 0; - -#ifdef HWRENDER // ----- for special tricks with HW renderer ----- - ss->pseudoSector = false; - ss->virtualFloor = false; - ss->virtualCeiling = false; - ss->sectorLines = NULL; - ss->stackList = NULL; - ss->lineoutLength = -1.0l; -#endif // ----- end special tricks ----- - } - - Z_Free(data); - - // set the sky flat num - skyflatnum = P_AddLevelFlat(SKYFLATNAME, foundflats); - - // copy table for global usage - levelflats = M_Memcpy(Z_Calloc(numlevelflats * sizeof (*levelflats), PU_LEVEL, NULL), foundflats, numlevelflats * sizeof (levelflat_t)); - free(foundflats); - - // search for animated flats and set up - P_SetupLevelFlatAnims(); -} - static void P_LoadRawSectors(UINT8 *data, size_t i) { mapsector_t *ms; @@ -982,43 +803,16 @@ static void P_LoadRawSectors(UINT8 *data, size_t i) P_SetupLevelFlatAnims(); } -// -// P_LoadNodes -// -static void P_LoadNodes(lumpnum_t lumpnum) +static void P_LoadSectors(lumpnum_t lumpnum) { - UINT8 *data; - size_t i; - UINT8 j, k; - mapnode_t *mn; - node_t *no; - - numnodes = W_LumpLength(lumpnum) / sizeof (mapnode_t); - if (numnodes <= 0) - I_Error("Level has no nodes"); - nodes = Z_Calloc(numnodes * sizeof (*nodes), PU_LEVEL, NULL); - data = W_CacheLumpNum(lumpnum, PU_STATIC); - - mn = (mapnode_t *)data; - no = nodes; - - for (i = 0; i < numnodes; i++, no++, mn++) - { - no->x = SHORT(mn->x)<y = SHORT(mn->y)<dx = SHORT(mn->dx)<dy = SHORT(mn->dy)<children[j] = SHORT(mn->children[j]); - for (k = 0; k < 4; k++) - no->bbox[j][k] = SHORT(mn->bbox[j][k])<x = READINT16(data); - mt->y = READINT16(data); - mt->angle = READINT16(data); - mt->type = READUINT16(data); - mt->options = READUINT16(data); - mt->extrainfo = (UINT8)(mt->type >> 12); - - mt->type &= 4095; - - switch (mt->type) - { - case 1700: // MT_AXIS - case 1701: // MT_AXISTRANSFER - case 1702: // MT_AXISTRANSFERLINE - mt->mobj = NULL; - P_SpawnMapThing(mt); - break; - default: - break; - } - } - Z_Free(datastart); - -} static void P_PrepareRawThings(UINT8 *data, size_t i) { mapthing_t *mt; - UINT8 *datastart; nummapthings = i / (5 * sizeof (INT16)); mapthings = Z_Calloc(nummapthings * sizeof (*mapthings), PU_LEVEL, NULL); // Spawn axis points first so they are // at the front of the list for fast searching. - datastart = data; mt = mapthings; for (i = 0; i < nummapthings; i++, mt++) { @@ -1257,6 +1016,13 @@ static void P_PrepareRawThings(UINT8 *data, size_t i) } } +static void P_PrepareThings(lumpnum_t lumpnum) +{ + UINT8 *data = W_CacheLumpNum(lumpnum, PU_STATIC); + P_PrepareRawThings(data, W_LumpLength(lumpnum)); + Z_Free(data); +} + static void P_LoadThings(void) { size_t i; @@ -1441,121 +1207,6 @@ void P_WriteThings(lumpnum_t lumpnum) CONS_Printf(M_GetText("newthings%d.lmp saved.\n"), gamemap); } -// -// P_LoadLineDefs -// -static void P_LoadLineDefs(lumpnum_t lumpnum) -{ - UINT8 *data; - size_t i; - maplinedef_t *mld; - line_t *ld; - vertex_t *v1, *v2; - - numlines = W_LumpLength(lumpnum) / sizeof (maplinedef_t); - if (numlines <= 0) - I_Error("Level has no linedefs"); - lines = Z_Calloc(numlines * sizeof (*lines), PU_LEVEL, NULL); - data = W_CacheLumpNum(lumpnum, PU_STATIC); - - mld = (maplinedef_t *)data; - ld = lines; - for (i = 0; i < numlines; i++, mld++, ld++) - { - ld->flags = SHORT(mld->flags); - ld->special = SHORT(mld->special); - ld->tag = SHORT(mld->tag); - v1 = ld->v1 = &vertexes[SHORT(mld->v1)]; - v2 = ld->v2 = &vertexes[SHORT(mld->v2)]; - ld->dx = v2->x - v1->x; - ld->dy = v2->y - v1->y; - -#ifdef WALLSPLATS - ld->splats = NULL; -#endif - - if (!ld->dx) - ld->slopetype = ST_VERTICAL; - else if (!ld->dy) - ld->slopetype = ST_HORIZONTAL; - else if (FixedDiv(ld->dy, ld->dx) > 0) - ld->slopetype = ST_POSITIVE; - else - ld->slopetype = ST_NEGATIVE; - - if (v1->x < v2->x) - { - ld->bbox[BOXLEFT] = v1->x; - ld->bbox[BOXRIGHT] = v2->x; - } - else - { - ld->bbox[BOXLEFT] = v2->x; - ld->bbox[BOXRIGHT] = v1->x; - } - - if (v1->y < v2->y) - { - ld->bbox[BOXBOTTOM] = v1->y; - ld->bbox[BOXTOP] = v2->y; - } - else - { - ld->bbox[BOXBOTTOM] = v2->y; - ld->bbox[BOXTOP] = v1->y; - } - - ld->sidenum[0] = SHORT(mld->sidenum[0]); - ld->sidenum[1] = SHORT(mld->sidenum[1]); - - { - // cph 2006/09/30 - fix sidedef errors right away. - // cph 2002/07/20 - these errors are fatal if not fixed, so apply them - UINT8 j; - - for (j=0; j < 2; j++) - { - if (ld->sidenum[j] != 0xffff && ld->sidenum[j] >= (UINT16)numsides) - { - ld->sidenum[j] = 0xffff; - CONS_Debug(DBG_SETUP, "P_LoadLineDefs: linedef %s has out-of-range sidedef number\n", sizeu1(numlines-i-1)); - } - } - } - - ld->frontsector = ld->backsector = NULL; - ld->validcount = 0; - ld->firsttag = ld->nexttag = -1; - ld->callcount = 0; - // killough 11/98: fix common wad errors (missing sidedefs): - - if (ld->sidenum[0] == 0xffff) - { - ld->sidenum[0] = 0; // Substitute dummy sidedef for missing right side - // cph - print a warning about the bug - CONS_Debug(DBG_SETUP, "P_LoadLineDefs: linedef %s missing first sidedef\n", sizeu1(numlines-i-1)); - } - - if ((ld->sidenum[1] == 0xffff) && (ld->flags & ML_TWOSIDED)) - { - ld->flags &= ~ML_TWOSIDED; // Clear 2s flag for missing left side - // cph - print a warning about the bug - CONS_Debug(DBG_SETUP, "P_LoadLineDefs: linedef %s has two-sided flag set, but no second sidedef\n", sizeu1(numlines-i-1)); - } - - if (ld->sidenum[0] != 0xffff && ld->special) - sides[ld->sidenum[0]].special = ld->special; - if (ld->sidenum[1] != 0xffff && ld->special) - sides[ld->sidenum[1]].special = ld->special; - -#ifdef POLYOBJECTS - ld->polyobj = NULL; -#endif - } - - Z_Free(data); -} - static void P_LoadRawLineDefs(UINT8 *data, size_t i) { maplinedef_t *mld; @@ -1663,6 +1314,13 @@ static void P_LoadRawLineDefs(UINT8 *data, size_t i) } } +static void P_LoadLineDefs(lumpnum_t lumpnum) +{ + UINT8 *data = W_CacheLumpNum(lumpnum, PU_STATIC); + P_LoadRawLineDefs(data, W_LumpLength(lumpnum)); + Z_Free(data); +} + static void P_LoadLineDefs2(void) { size_t i = numlines; @@ -1761,16 +1419,7 @@ static void P_LoadLineDefs2(void) } } -// -// P_LoadSideDefs -// -static inline void P_LoadSideDefs(lumpnum_t lumpnum) -{ - numsides = W_LumpLength(lumpnum) / sizeof (mapsidedef_t); - if (numsides <= 0) - I_Error("Level has no sidedefs"); - sides = Z_Calloc(numsides * sizeof (*sides), PU_LEVEL, NULL); -} + static inline void P_LoadRawSideDefs(size_t i) { @@ -1780,247 +1429,12 @@ static inline void P_LoadRawSideDefs(size_t i) sides = Z_Calloc(numsides * sizeof (*sides), PU_LEVEL, NULL); } -// Delay loading texture names until after loaded linedefs. - -static void P_LoadSideDefs2(lumpnum_t lumpnum) +static inline void P_LoadSideDefs(lumpnum_t lumpnum) { - UINT8 *data = W_CacheLumpNum(lumpnum, PU_STATIC); - UINT16 i; - INT32 num; - - for (i = 0; i < numsides; i++) - { - register mapsidedef_t *msd = (mapsidedef_t *)data + i; - register side_t *sd = sides + i; - register sector_t *sec; - - sd->textureoffset = SHORT(msd->textureoffset)<rowoffset = SHORT(msd->rowoffset)<sector); - - if (sector_num >= numsectors) - { - CONS_Debug(DBG_SETUP, "P_LoadSideDefs2: sidedef %u has out-of-range sector num %u\n", i, sector_num); - sector_num = 0; - } - sd->sector = sec = §ors[sector_num]; - } - - // refined to allow colormaps to work as wall textures if invalid as colormaps - // but valid as textures. - - sd->sector = sec = §ors[SHORT(msd->sector)]; - - // Colormaps! - switch (sd->special) - { - case 63: // variable colormap via 242 linedef - case 606: //SoM: 4/4/2000: Just colormap transfer - // SoM: R_CreateColormap will only create a colormap in software mode... - // Perhaps we should just call it instead of doing the calculations here. - if (rendermode == render_soft || rendermode == render_none) - { - if (msd->toptexture[0] == '#' || msd->bottomtexture[0] == '#') - { - sec->midmap = R_CreateColormap(msd->toptexture, msd->midtexture, - msd->bottomtexture); - sd->toptexture = sd->bottomtexture = 0; - } - else - { - if ((num = R_CheckTextureNumForName(msd->toptexture)) == -1) - sd->toptexture = 0; - else - sd->toptexture = num; - if ((num = R_CheckTextureNumForName(msd->midtexture)) == -1) - sd->midtexture = 0; - else - sd->midtexture = num; - if ((num = R_CheckTextureNumForName(msd->bottomtexture)) == -1) - sd->bottomtexture = 0; - else - sd->bottomtexture = num; - } - break; - } -#ifdef HWRENDER - else - { - // for now, full support of toptexture only - if ((msd->toptexture[0] == '#' && msd->toptexture[1] && msd->toptexture[2] && msd->toptexture[3] && msd->toptexture[4] && msd->toptexture[5] && msd->toptexture[6]) - || (msd->bottomtexture[0] == '#' && msd->bottomtexture[1] && msd->bottomtexture[2] && msd->bottomtexture[3] && msd->bottomtexture[4] && msd->bottomtexture[5] && msd->bottomtexture[6])) - { - char *col; - - sec->midmap = R_CreateColormap(msd->toptexture, msd->midtexture, - msd->bottomtexture); - sd->toptexture = sd->bottomtexture = 0; -#define HEX2INT(x) (x >= '0' && x <= '9' ? x - '0' : x >= 'a' && x <= 'f' ? x - 'a' + 10 : x >= 'A' && x <= 'F' ? x - 'A' + 10 : 0) -#define ALPHA2INT(x) (x >= 'a' && x <= 'z' ? x - 'a' : x >= 'A' && x <= 'Z' ? x - 'A' : x >= '0' && x <= '9' ? 25 : 0) - sec->extra_colormap = &extra_colormaps[sec->midmap]; - - if (msd->toptexture[0] == '#' && msd->toptexture[1] && msd->toptexture[2] && msd->toptexture[3] && msd->toptexture[4] && msd->toptexture[5] && msd->toptexture[6]) - { - col = msd->toptexture; - - sec->extra_colormap->rgba = - (HEX2INT(col[1]) << 4) + (HEX2INT(col[2]) << 0) + - (HEX2INT(col[3]) << 12) + (HEX2INT(col[4]) << 8) + - (HEX2INT(col[5]) << 20) + (HEX2INT(col[6]) << 16); - - // alpha - if (msd->toptexture[7]) - sec->extra_colormap->rgba += (ALPHA2INT(col[7]) << 24); - else - sec->extra_colormap->rgba += (25 << 24); - } - else - sec->extra_colormap->rgba = 0; - - if (msd->bottomtexture[0] == '#' && msd->bottomtexture[1] && msd->bottomtexture[2] && msd->bottomtexture[3] && msd->bottomtexture[4] && msd->bottomtexture[5] && msd->bottomtexture[6]) - { - col = msd->bottomtexture; - - sec->extra_colormap->fadergba = - (HEX2INT(col[1]) << 4) + (HEX2INT(col[2]) << 0) + - (HEX2INT(col[3]) << 12) + (HEX2INT(col[4]) << 8) + - (HEX2INT(col[5]) << 20) + (HEX2INT(col[6]) << 16); - - // alpha - if (msd->bottomtexture[7]) - sec->extra_colormap->fadergba += (ALPHA2INT(col[7]) << 24); - else - sec->extra_colormap->fadergba += (25 << 24); - } - else - sec->extra_colormap->fadergba = 0x19000000; // default alpha, (25 << 24) -#undef ALPHA2INT -#undef HEX2INT - } - else - { - if ((num = R_CheckTextureNumForName(msd->toptexture)) == -1) - sd->toptexture = 0; - else - sd->toptexture = num; - - if ((num = R_CheckTextureNumForName(msd->midtexture)) == -1) - sd->midtexture = 0; - else - sd->midtexture = num; - - if ((num = R_CheckTextureNumForName(msd->bottomtexture)) == -1) - sd->bottomtexture = 0; - else - sd->bottomtexture = num; - } - break; - } -#endif - - case 413: // Change music - { - char process[8+1]; - - sd->toptexture = sd->midtexture = sd->bottomtexture = 0; - if (msd->bottomtexture[0] != '-' || msd->bottomtexture[1] != '\0') - { - M_Memcpy(process,msd->bottomtexture,8); - process[8] = '\0'; - sd->bottomtexture = get_number(process)-1; - } - M_Memcpy(process,msd->toptexture,8); - process[8] = '\0'; - sd->text = Z_Malloc(7, PU_LEVEL, NULL); - - // If they type in O_ or D_ and their music name, just shrug, - // then copy the rest instead. - if ((process[0] == 'O' || process[0] == 'D') && process[7]) - M_Memcpy(sd->text, process+2, 6); - else // Assume it's a proper music name. - M_Memcpy(sd->text, process, 6); - sd->text[6] = 0; - break; - } - - case 4: // Speed pad parameters - case 414: // Play SFX - { - sd->toptexture = sd->midtexture = sd->bottomtexture = 0; - if (msd->toptexture[0] != '-' || msd->toptexture[1] != '\0') - { - char process[8+1]; - M_Memcpy(process,msd->toptexture,8); - process[8] = '\0'; - sd->toptexture = get_number(process); - } - break; - } - - case 14: // Bustable block parameters - case 15: // Fan particle spawner parameters - case 425: // Calls P_SetMobjState on calling mobj - case 434: // Custom Power - case 442: // Calls P_SetMobjState on mobjs of a given type in the tagged sectors - { - char process[8*3+1]; - memset(process,0,8*3+1); - sd->toptexture = sd->midtexture = sd->bottomtexture = 0; - if (msd->toptexture[0] == '-' && msd->toptexture[1] == '\0') - break; - else - M_Memcpy(process,msd->toptexture,8); - if (msd->midtexture[0] != '-' || msd->midtexture[1] != '\0') - M_Memcpy(process+strlen(process), msd->midtexture, 8); - if (msd->bottomtexture[0] != '-' || msd->bottomtexture[1] != '\0') - M_Memcpy(process+strlen(process), msd->bottomtexture, 8); - sd->toptexture = get_number(process); - break; - } - - case 443: // Calls a named Lua function - { - char process[8*3+1]; - memset(process,0,8*3+1); - sd->toptexture = sd->midtexture = sd->bottomtexture = 0; - if (msd->toptexture[0] == '-' && msd->toptexture[1] == '\0') - break; - else - M_Memcpy(process,msd->toptexture,8); - if (msd->midtexture[0] != '-' || msd->midtexture[1] != '\0') - M_Memcpy(process+strlen(process), msd->midtexture, 8); - if (msd->bottomtexture[0] != '-' || msd->bottomtexture[1] != '\0') - M_Memcpy(process+strlen(process), msd->bottomtexture, 8); - sd->text = Z_Malloc(strlen(process)+1, PU_LEVEL, NULL); - M_Memcpy(sd->text, process, strlen(process)+1); - break; - } - - default: // normal cases - if (msd->toptexture[0] == '#') - { - char *col = msd->toptexture; - sd->toptexture = sd->bottomtexture = - ((col[1]-'0')*100 + (col[2]-'0')*10 + col[3]-'0') + 1; - sd->midtexture = R_TextureNumForName(msd->midtexture); - } - else - { - sd->midtexture = R_TextureNumForName(msd->midtexture); - sd->toptexture = R_TextureNumForName(msd->toptexture); - sd->bottomtexture = R_TextureNumForName(msd->bottomtexture); - } - break; - } - } - - Z_Free(data); - R_ClearTextureNumCache(true); + P_LoadRawSideDefs(W_LumpLength(lumpnum)); } -// I'm sorry about all this duplicity with little change :( -Nev3r + static void P_LoadRawSideDefs2(void *data) { UINT16 i; @@ -2253,7 +1667,15 @@ static void P_LoadRawSideDefs2(void *data) break; } } + R_ClearTextureNumCache(true); +} +// Delay loading texture names until after loaded linedefs. +static void P_LoadSideDefs2(lumpnum_t lumpnum) +{ + UINT8 *data = W_CacheLumpNum(lumpnum, PU_STATIC); + P_LoadRawSideDefs2(data); + Z_Free(data); R_ClearTextureNumCache(true); } @@ -3146,7 +2568,7 @@ boolean P_SetupLevel(boolean skipprecip) // use gamemap to get map number. // 99% of the things already did, so. // Map header should always be in place at this point - boolean isLumpWad = false; // Is the lump a marker or actually a WAD file of its own? (For PK3s) + char *lumpfullName; INT32 i, loadprecip = 1, ranspecialwipe = 0; INT32 loademblems = 1; INT32 fromnetsave = 0; @@ -3309,50 +2731,8 @@ boolean P_SetupLevel(boolean skipprecip) // internal game map maplumpname = G_BuildMapName(gamemap); - lastloadedmaplumpnum = LUMPERROR; - - // Look for valid map data through all added files in descendant order. - // Get a map marker for WADs, and a standalone WAD file lump inside PK3s. - // TODO: Make it search through cache first, maybe...? - // TODO: Also move it to w_wad.c as a function...? - for (i = numwadfiles - 1; i >= 0; i--) - { - if (wadfiles[i]->type == RET_WAD) - { - UINT16 lumpNum; - for (lumpNum = 0; lumpNum < wadfiles[i]->numlumps; lumpNum++) - { - if (!strncmp(maplumpname, (wadfiles[i]->lumpinfo + lumpNum)->name, 8)) - { - lastloadedmaplumpnum = (i<<16) + lumpNum; - CONS_Printf("WAD %s has a map marker named %s.\n", wadfiles[i]->filename, maplumpname); - break; - } - } - } - else if (wadfiles[i]->type == RET_PK3) - { - // Look for the maps folder. - UINT16 lumpNum, end; - lumpNum = W_CheckNumForFullNamePK3("maps/", i, 0); - if (lumpNum != INT16_MAX) - end = W_CheckNumForFolderEndPK3("maps/", i, lumpNum); - else - continue; - - // Now look for the specified map. - for (++lumpNum; lumpNum < end; lumpNum++) - if (!strnicmp(maplumpname, (wadfiles[i]->lumpinfo + lumpNum)->name, 5)) - { - isLumpWad = true; - lastloadedmaplumpnum = (i<<16) + lumpNum; - CONS_Printf("PK3 %s has a map WAD named %s.\n", wadfiles[i]->filename, maplumpname); - break; - } - } - if (!(lastloadedmaplumpnum == LUMPERROR)) // Stop looking if we found a valid lump. - break; - } + //lastloadedmaplumpnum = LUMPERROR; + lastloadedmaplumpnum = W_CheckNumForName(maplumpname); if (lastloadedmaplumpnum == INT16_MAX) I_Error("Map %s not found.\n", maplumpname); @@ -3370,24 +2750,12 @@ boolean P_SetupLevel(boolean skipprecip) // As it is implemented right now, we're assuming an uncompressed WAD. // (As in, a normal PWAD, not ZWAD or anything. The lump itself can be compressed.) // Basically this is a nerfed&modified version of W_InitFile from w_wad. - if (isLumpWad) + lumpfullName = (wadfiles[WADFILENUM(lastloadedmaplumpnum)]->lumpinfo + LUMPNUM(lastloadedmaplumpnum))->name2; + if (!strnicmp(lumpfullName + strlen(lumpfullName) - 4, ".wad", 4)) { - UINT16 i; - wadinfo_t *header; - filelump_t *fileinfo; + // Remember that we're assuming that the WAD will have a specific set of lumps in a specific order. UINT8 *wadData = W_CacheLumpNum(lastloadedmaplumpnum, PU_STATIC); - header = (wadinfo_t *)wadData; - CONS_Printf("This map WAD contains %lu lumps.\n", header->numlumps); - - fileinfo = wadData + header->infotableofs; - for(i = 0; i < header->numlumps; i++, fileinfo++) - { - char name[9]; - memcpy(name, fileinfo->name, 8); - name[8] = '\0'; - CONS_Printf("%s, size %lu\n", name, fileinfo->size); - } - fileinfo = wadData + header->infotableofs; + filelump_t *fileinfo = wadData + ((wadinfo_t *)wadData)->infotableofs; P_LoadRawVertexes(wadData + (fileinfo + ML_VERTEXES)->filepos, (fileinfo + ML_VERTEXES)->size); P_LoadRawSectors(wadData + (fileinfo + ML_SECTORS)->filepos, (fileinfo + ML_SECTORS)->size); @@ -3803,32 +3171,6 @@ void P_LoadMusicsRange(UINT16 wadnum, UINT16 first, UINT16 num) return; } -// Auxiliary function for PK3 loading - adds extra lumps -// NOTE: does nothing but print debug messages. -/*void P_LoadWadMapRange(UINT16 wadnum, UINT16 first, UINT16 num) -{ - lumpinfo_t *lumpinfo = wadfiles[wadnum]->lumpinfo + first; - CONS_Printf("First %s\n", lumpinfo->name2); - for (; num > 0; num--, first++, lumpinfo++) - { - wadinfo_t header; - void* wadCache = Z_Malloc(W_LumpLengthPwad(wadnum, first), PU_STATIC, NULL); - W_ReadLumpHeaderPwad(wadnum, first, wadCache, 0, 0); - // We put the header info into our header var. - memcpy(header, wadCache, sizeof header); - - header.numlumps = LONG(header.numlumps); - header.infotableofs = LONG(header.infotableofs); - lumpinfo = (lumpinfo_t*) Z_Realloc(lumpinfo, (numlumps + 1)*sizeof(*lumpinfo), PU_STATIC, NULL); - - - Z_Free(wadCache); - CONS_Printf("Decached map WAD stuff.\n"); - } - return; -}*/ - - // // Add a wadfile to the active wad files, // replace sounds, musics, patches, textures, sprites and maps @@ -3962,12 +3304,6 @@ boolean P_AddWadFile(const char *wadfilename, char **firstmapname) // R_AddSpriteDefs(wadnum); - // Reload it all anyway, just in case they - // added some textures but didn't insert a - // TEXTURE1/PNAMES/etc. list. - R_LoadTextures(); // numtexture changes - - break; } if (!devparm && sreplaces) @@ -3977,6 +3313,11 @@ boolean P_AddWadFile(const char *wadfilename, char **firstmapname) if (!devparm && digmreplaces) CONS_Printf(M_GetText("%s digital musics replaced\n"), sizeu1(digmreplaces)); + // Reload it all anyway, just in case they + // added some textures but didn't insert a + // TEXTURE1/PNAMES/etc. list. + R_LoadTextures(); // numtexture changes + // Reload ANIMATED / ANIMDEFS P_InitPicAnims(); diff --git a/src/w_wad.c b/src/w_wad.c index b86d8bd28..3fe580d71 100644 --- a/src/w_wad.c +++ b/src/w_wad.c @@ -474,6 +474,7 @@ UINT16 W_InitFile(const char *filename) // (Declaring all those vars might not be the optimal way to do this, sorry.) char *eName; int namePos; + int nameEnd; unsigned short int eNameLen = 8; unsigned short int eXFieldLen = 0; unsigned short int lNameLen = 0; @@ -527,8 +528,14 @@ UINT16 W_InitFile(const char *filename) break; } } + // We will remove the file extension too. + nameEnd = 0; + while(nameEnd++ < 8) + if(eName[namePos + nameEnd] == '.') + break; + memset(lumpinfo[numlumps].name, '\0', 9); - strncpy(lumpinfo[numlumps].name, eName + namePos, 8); + strncpy(lumpinfo[numlumps].name, eName + namePos, nameEnd); lumpinfo[numlumps].name2 = Z_Malloc((eNameLen+1)*sizeof(char), PU_STATIC, NULL); strncpy(lumpinfo[numlumps].name2, eName, eNameLen); @@ -923,6 +930,37 @@ lumpnum_t W_CheckNumForName(const char *name) } } +// Look for valid map data through all added files in descendant order. +// Get a map marker for WADs, and a standalone WAD file lump inside PK3s. +// TODO: Make it search through cache first, maybe...? +lumpnum_t W_CheckNumForMap(const char *name) +{ + UINT16 lumpNum, end; + UINT32 i; + for (i = numwadfiles - 1; i >= 0; i--) + { + if (wadfiles[i]->type == RET_WAD) + { + for (lumpNum = 0; lumpNum < wadfiles[i]->numlumps; lumpNum++) + if (!strncmp(name, (wadfiles[i]->lumpinfo + lumpNum)->name, 8)) + return (i<<16) + lumpNum; + } + else if (wadfiles[i]->type == RET_PK3) + { + lumpNum = W_CheckNumForFullNamePK3("maps/", i, 0); + if (lumpNum != INT16_MAX) + end = W_CheckNumForFolderEndPK3("maps/", i, lumpNum); + else + continue; + // Now look for the specified map. + for (++lumpNum; lumpNum < end; lumpNum++) + if (!strnicmp(name, (wadfiles[i]->lumpinfo + lumpNum)->name, 8)) + return (i<<16) + lumpNum; + } + } + return LUMPERROR; +} + // // W_GetNumForName // diff --git a/src/w_wad.h b/src/w_wad.h index d5e6e9017..b0b0ca951 100644 --- a/src/w_wad.h +++ b/src/w_wad.h @@ -119,6 +119,7 @@ UINT16 W_CheckNumForNamePwad(const char *name, UINT16 wad, UINT16 startlump); // UINT16 W_CheckNumForFullNamePK3(const char *name, UINT16 wad, UINT16 startlump); UINT16 W_CheckNumForFolderEndPK3(const char *name, UINT16 wad, UINT16 startlump); +lumpnum_t W_CheckNumForMap(const char *name); lumpnum_t W_CheckNumForName(const char *name); lumpnum_t W_GetNumForName(const char *name); // like W_CheckNumForName but I_Error on LUMPERROR lumpnum_t W_CheckNumForNameInBlock(const char *name, const char *blockstart, const char *blockend); From 16336dbe22689d584b19ff9395da2dfe357778e4 Mon Sep 17 00:00:00 2001 From: Nevur Date: Sun, 28 May 2017 21:47:15 +0200 Subject: [PATCH 018/111] I'm pushing this because I'm having issues. Changes so far: -Folders aren't loaded as lumps anymore -Can now load an arbitrary number of TEXTURES lumps in PK3s. Name them textures.gfz, textures.thz, ..., for example. --- src/r_data.c | 34 ++++++++++++++++++++-------------- src/r_things.c | 12 +++++------- src/w_wad.c | 35 ++++++++++++++++++++++++++--------- src/w_wad.h | 1 + 4 files changed, 52 insertions(+), 30 deletions(-) diff --git a/src/r_data.c b/src/r_data.c index 4f1be210f..65ec67bc1 100644 --- a/src/r_data.c +++ b/src/r_data.c @@ -569,20 +569,23 @@ void R_LoadTextures(void) { if (wadfiles[w]->type == RET_PK3) { - texstart = W_CheckNumForFullNamePK3("textures/", (UINT16)w, 0) + 1; + texstart = W_CheckNumForFolderStartPK3("textures/", (UINT16)w, 0); texend = W_CheckNumForFolderEndPK3("textures/", (UINT16)w, texstart); - texturesLumpPos = W_CheckNumForFullNamePK3("textures", (UINT16)w, 0); + texturesLumpPos = W_CheckNumForFullNamePK3("TEXTURES", (UINT16)w, 0); + while (texturesLumpPos != INT16_MAX) + { + CONS_Printf("AAA\n"); + numtextures += R_CountTexturesInTEXTURESLump((UINT16)w, (UINT16)texturesLumpPos); + texturesLumpPos = W_CheckNumForFullNamePK3("TEXTURES", (UINT16)w, texturesLumpPos + 1); + } } else { texstart = W_CheckNumForNamePwad(TX_START, (UINT16)w, 0) + 1; texend = W_CheckNumForNamePwad(TX_END, (UINT16)w, 0); texturesLumpPos = W_CheckNumForNamePwad("TEXTURES", (UINT16)w, 0); - } - - if (texturesLumpPos != INT16_MAX) - { - numtextures += R_CountTexturesInTEXTURESLump((UINT16)w, (UINT16)texturesLumpPos); + if (texturesLumpPos != INT16_MAX) + numtextures += R_CountTexturesInTEXTURESLump((UINT16)w, (UINT16)texturesLumpPos); } // Add all the textures between TX_START and TX_END @@ -597,7 +600,6 @@ void R_LoadTextures(void) I_Error("No textures detected in any WADs!\n"); } } - CONS_Printf("We got a number of %d textures.\n", numtextures); // Allocate memory and initialize to 0 for all the textures we are initialising. // There are actually 5 buffers allocated in one for convenience. textures = Z_Calloc((numtextures * sizeof(void *)) * 5, PU_STATIC, NULL); @@ -621,20 +623,24 @@ void R_LoadTextures(void) // Get the lump numbers for the markers in the WAD, if they exist. if (wadfiles[w]->type == RET_PK3) { - texstart = W_CheckNumForFullNamePK3("textures/", (UINT16)w, 0) + 1; + texstart = W_CheckNumForFolderStartPK3("textures/", (UINT16)w, 0); texend = W_CheckNumForFolderEndPK3("textures/", (UINT16)w, texstart); - texturesLumpPos = W_CheckNumForFullNamePK3("textures", (UINT16)w, 0); + texturesLumpPos = W_CheckNumForFullNamePK3("TEXTURES", (UINT16)w, 0); + while (texturesLumpPos != INT16_MAX) + { + R_ParseTEXTURESLump(w, texturesLumpPos, &i); + texturesLumpPos = W_CheckNumForFullNamePK3("TEXTURES", (UINT16)w, texturesLumpPos + 1); + } } else { texstart = W_CheckNumForNamePwad(TX_START, (UINT16)w, 0) + 1; texend = W_CheckNumForNamePwad(TX_END, (UINT16)w, 0); texturesLumpPos = W_CheckNumForNamePwad("TEXTURES", (UINT16)w, 0); + if (texturesLumpPos != INT16_MAX) + R_ParseTEXTURESLump(w, texturesLumpPos, &i); } - if (texturesLumpPos != INT16_MAX) - R_ParseTEXTURESLump(w, texturesLumpPos, &i); - if (texstart == INT16_MAX || texend == INT16_MAX) continue; @@ -1229,7 +1235,7 @@ lumpnum_t R_GetFlatNumForName(const char *name) } else if (wadfiles[i]->type == RET_PK3) { - start = W_CheckNumForFullNamePK3("Flats/", i, 0); + start = W_CheckNumForFolderStartPK3("Flats/", i, 0); if (start == INT16_MAX) continue; end = W_CheckNumForFolderEndPK3("Flats/", i, start); diff --git a/src/r_things.c b/src/r_things.c index 54a0d2b26..44b5ce536 100644 --- a/src/r_things.c +++ b/src/r_things.c @@ -415,15 +415,13 @@ void R_AddSpriteDefs(UINT16 wadnum) start = W_CheckNumForNamePwad("S_START", wadnum, 0); if (start == UINT16_MAX) start = W_CheckNumForNamePwad("SS_START", wadnum, 0); //deutex compatib. + if (start == UINT16_MAX) + start = 0; //let say S_START is lump 0 + else + start++; // just after S_START } else if (wadfiles[wadnum]->type == RET_PK3) - start = W_CheckNumForFullNamePK3("Sprites/", wadnum, 0); - - if (start == UINT16_MAX) - start = 0; //let say S_START is lump 0 - else - start++; // just after S_START - + start = W_CheckNumForFolderStartPK3("Sprites/", wadnum, 0); // ignore skin wads (we don't want skin sprites interfering with vanilla sprites) if (start == 0 && W_CheckNumForNamePwad("S_SKIN", wadnum, 0) != UINT16_MAX) diff --git a/src/w_wad.c b/src/w_wad.c index 3fe580d71..209578f62 100644 --- a/src/w_wad.c +++ b/src/w_wad.c @@ -175,18 +175,18 @@ FILE *W_OpenWadFile(const char **filename, boolean useerrors) static inline void W_LoadDehackedLumpsPK3(UINT16 wadnum) { UINT16 posStart, posEnd; - posStart = W_CheckNumForFullNamePK3("Lua/", wadnum, 0); + posStart = W_CheckNumForFolderStartPK3("Lua/", wadnum, 0); if (posStart != INT16_MAX) { posEnd = W_CheckNumForFolderEndPK3("Lua/", wadnum, posStart); - for (++posStart; posStart < posEnd; posStart++) + for (posStart; posStart < posEnd; posStart++) LUA_LoadLump(wadnum, posStart); } - posStart = W_CheckNumForFullNamePK3("SOCs/", wadnum, 0); + posStart = W_CheckNumForFolderStartPK3("SOCs/", wadnum, 0); if (posStart != INT16_MAX) { posEnd = W_CheckNumForFolderEndPK3("SOCs/", wadnum, posStart); - for(++posStart; posStart < posEnd; posStart++) + for(posStart; posStart < posEnd; posStart++) DEH_LoadDehackedLumpPwad(wadnum, posStart); } } @@ -430,7 +430,7 @@ UINT16 W_InitFile(const char *filename) size = ftell(handle); CONS_Debug(DBG_SETUP, "PK3 size is: %ld\n", size); - // We must look for the central directory through the file. + // We must look for the central directory through the file. (Thanks to JTE for this algorithm.) // All of the central directory entry headers have a signature of 0x50 0x4b 0x01 0x02. // The first entry found means the beginning of the central directory. rewind(handle); @@ -502,6 +502,11 @@ UINT16 W_InitFile(const char *filename) eName = malloc(sizeof(char)*(eNameLen + 1)); fgets(eName, eNameLen + 1, handle); + + // Don't load lump if folder. + if (*(eName + eNameLen - 1) == '/') + continue; + if (numlumps == 0) // First lump? Let's allocate the first lumpinfo block. lumpinfo = Z_Malloc(sizeof(*lumpinfo), PU_STATIC, NULL); else // Otherwise, reallocate and increase by 1. Might not be optimal, though... @@ -558,7 +563,6 @@ UINT16 W_InitFile(const char *filename) lumpinfo[numlumps].compression = CM_UNSUPPORTED; break; } - CONS_Printf("File %s, Shortname %s, data begins at: %ld\n", eName, lumpinfo[numlumps].name, lumpinfo[numlumps].position); CONS_Debug(DBG_SETUP, "File %s, data begins at: %ld\n", eName, lumpinfo[numlumps].position); fseek(handle, eXFieldLen + eCommentLen, SEEK_CUR); // We skip to where we expect the next central directory entry or end marker to be. numlumps++; @@ -569,7 +573,7 @@ UINT16 W_InitFile(const char *filename) { CONS_Debug(DBG_SETUP, "Central directory end signature found at: %ld\n", ftell(handle)); - // We will create a "virtual" marker lump at the very end of lumpinfo for convenience. + /*// We will create a "virtual" marker lump at the very end of lumpinfo for convenience. // This marker will be used by the different lump-seeking (eg. textures, sprites, etc.) in PK3-specific cases in an auxiliary way. lumpinfo = (lumpinfo_t*) Z_Realloc(lumpinfo, (numlumps + 1)*sizeof(*lumpinfo), PU_STATIC, NULL); strcpy(lumpinfo[numlumps].name, "PK3_ENDM\0"); @@ -579,7 +583,7 @@ UINT16 W_InitFile(const char *filename) lumpinfo[numlumps].size = 0; lumpinfo[numlumps].disksize = 0; lumpinfo[numlumps].compression = CM_NONE; - numlumps++; + numlumps++;*/ break; } // ... None of them? We're only expecting either a central directory signature entry or the central directory end signature. @@ -858,6 +862,19 @@ UINT16 W_CheckNumForNamePwad(const char *name, UINT16 wad, UINT16 startlump) return INT16_MAX; } +// Look for the first lump from a folder. +UINT16 W_CheckNumForFolderStartPK3(const char *name, UINT16 wad, UINT16 startlump) +{ + INT32 i; + lumpinfo_t *lump_p = wadfiles[wad]->lumpinfo + startlump; + for (i = startlump; i < wadfiles[wad]->numlumps; i++, lump_p++) + { + if (strnicmp(name, lump_p->name2, strlen(name)) == 0) + break; + } + return i; +} + // In a PK3 type of resource file, it looks for the next lumpinfo entry that doesn't share the specified pathfile. // Useful for finding folder ends. // Returns the position of the lumpinfo entry. @@ -947,7 +964,7 @@ lumpnum_t W_CheckNumForMap(const char *name) } else if (wadfiles[i]->type == RET_PK3) { - lumpNum = W_CheckNumForFullNamePK3("maps/", i, 0); + lumpNum = W_CheckNumForFolderStartPK3("maps/", i, 0); if (lumpNum != INT16_MAX) end = W_CheckNumForFolderEndPK3("maps/", i, lumpNum); else diff --git a/src/w_wad.h b/src/w_wad.h index b0b0ca951..2c50da5cc 100644 --- a/src/w_wad.h +++ b/src/w_wad.h @@ -117,6 +117,7 @@ const char *W_CheckNameForNum(lumpnum_t lumpnum); UINT16 W_CheckNumForNamePwad(const char *name, UINT16 wad, UINT16 startlump); // checks only in one pwad UINT16 W_CheckNumForFullNamePK3(const char *name, UINT16 wad, UINT16 startlump); +UINT16 W_CheckNumForFolderStartPK3(const char *name, UINT16 wad, UINT16 startlump); UINT16 W_CheckNumForFolderEndPK3(const char *name, UINT16 wad, UINT16 startlump); lumpnum_t W_CheckNumForMap(const char *name); From 35189dc21902e73ebe041ebff2ddb9ae07493d1f Mon Sep 17 00:00:00 2001 From: Nevur Date: Sun, 25 Jun 2017 14:02:39 +0200 Subject: [PATCH 019/111] Fixed PK3s. -Colormaps, palettes and other stuff are properly loaded now. It was a bug related to the generation of the lump name with files in the root of the PK3. Known issues: -Map WADs' REJECT and BLOCKMAP are still not loaded. --- src/p_setup.c | 38 ++++++-------------------------------- src/r_data.c | 10 ++++------ src/w_wad.c | 8 ++------ 3 files changed, 12 insertions(+), 44 deletions(-) diff --git a/src/p_setup.c b/src/p_setup.c index 2cc70e6a0..896f38ba9 100644 --- a/src/p_setup.c +++ b/src/p_setup.c @@ -2746,10 +2746,10 @@ boolean P_SetupLevel(boolean skipprecip) P_MakeMapMD5(lastloadedmaplumpnum, &mapmd5); - // HACK ALERT: Cache the WAD, get the map data into the table, free memory. + // HACK ALERT: Cache the WAD, get the map data into the tables, free memory. // As it is implemented right now, we're assuming an uncompressed WAD. // (As in, a normal PWAD, not ZWAD or anything. The lump itself can be compressed.) - // Basically this is a nerfed&modified version of W_InitFile from w_wad. + // We're not accounting for extra lumps and scrambled lump positions. Any additional data will cause an error. lumpfullName = (wadfiles[WADFILENUM(lastloadedmaplumpnum)]->lumpinfo + LUMPNUM(lastloadedmaplumpnum))->name2; if (!strnicmp(lumpfullName + strlen(lumpfullName) - 4, ".wad", 4)) { @@ -2765,7 +2765,6 @@ boolean P_SetupLevel(boolean skipprecip) P_LoadRawSubsectors(wadData + (fileinfo + ML_SSECTORS)->filepos, (fileinfo + ML_SSECTORS)->size); P_LoadRawNodes(wadData + (fileinfo + ML_NODES)->filepos, (fileinfo + ML_NODES)->size); P_LoadRawSegs(wadData + (fileinfo + ML_SEGS)->filepos, (fileinfo + ML_SEGS)->size); -// P_LoadReject(lastloadedmaplumpnum + ML_REJECT); // Important: take care of the ordering of the next functions. if (!loadedbm) @@ -3106,27 +3105,6 @@ boolean P_RunSOC(const char *socfilename) return true; } -#ifdef HAVE_BLUA -// Auxiliary function for PK3 loading - runs Lua scripts from range. -void P_LoadLuaScrRange(UINT16 wadnum, UINT16 first, UINT16 num) -{ - for (; num > 0; num--, first++) - { - LUA_LoadLump(wadnum, first); - } -} -#endif - -// Auxiliary function for PK3 loading - runs SOCs from range. -void P_LoadDehackRange(UINT16 wadnum, UINT16 first, UINT16 num) -{ - for (; num > 0; num--, first++) - { - CONS_Printf(M_GetText("Loading SOC from %s\n"), wadfiles[wadnum]->filename); - DEH_LoadDehackedLumpPwad(wadnum, first); - } -} - // Auxiliary function for PK3 loading - looks for sound replacements. // NOTE: it does not really add any new sound entry or anything. void P_LoadSoundsRange(UINT16 wadnum, UINT16 first, UINT16 num) @@ -3150,8 +3128,8 @@ void P_LoadSoundsRange(UINT16 wadnum, UINT16 first, UINT16 num) } } -// Auxiliary function for PK3 loading - looks for sound replacements. -// NOTE: does nothing but print debug messages. +// Auxiliary function for PK3 loading - looks for music and music replacements. +// NOTE: does nothing but print debug messages. The code is handled somewhere else. void P_LoadMusicsRange(UINT16 wadnum, UINT16 first, UINT16 num) { lumpinfo_t *lumpinfo = wadfiles[wadnum]->lumpinfo + first; @@ -3195,7 +3173,7 @@ boolean P_AddWadFile(const char *wadfilename, char **firstmapname) UINT16 texPos, texNum = 0; // UINT16 patPos, patNum = 0; // UINT16 flaPos, flaNum = 0; - UINT16 mapPos, mapNum = 0; +// UINT16 mapPos, mapNum = 0; // Init file. if ((numlumps = W_InitFile(wadfilename)) == INT16_MAX) @@ -3218,12 +3196,8 @@ boolean P_AddWadFile(const char *wadfilename, char **firstmapname) lumpinfo++; *start = ++i; for (; i < numlumps; i++, lumpinfo++) - { if (strnicmp(lumpinfo->name2, folName, strlen(folName))) - { break; - } - } lumpinfo--; *end = i-- - *start; return; @@ -3243,7 +3217,7 @@ boolean P_AddWadFile(const char *wadfilename, char **firstmapname) FindFolder("Textures/", &texPos, &texNum); // FindFolder("Patches/", &patPos, &patNum); // FindFolder("Flats/", &flaPos, &flaNum); - FindFolder("Maps/", &mapPos, &mapNum); +// FindFolder("Maps/", &mapPos, &mapNum); } // Update the detected resources. diff --git a/src/r_data.c b/src/r_data.c index 65ec67bc1..dcfdb27a5 100644 --- a/src/r_data.c +++ b/src/r_data.c @@ -571,12 +571,11 @@ void R_LoadTextures(void) { texstart = W_CheckNumForFolderStartPK3("textures/", (UINT16)w, 0); texend = W_CheckNumForFolderEndPK3("textures/", (UINT16)w, texstart); - texturesLumpPos = W_CheckNumForFullNamePK3("TEXTURES", (UINT16)w, 0); + texturesLumpPos = W_CheckNumForNamePwad("TEXTURES", (UINT16)w, 0); while (texturesLumpPos != INT16_MAX) { - CONS_Printf("AAA\n"); numtextures += R_CountTexturesInTEXTURESLump((UINT16)w, (UINT16)texturesLumpPos); - texturesLumpPos = W_CheckNumForFullNamePK3("TEXTURES", (UINT16)w, texturesLumpPos + 1); + texturesLumpPos = W_CheckNumForNamePwad("TEXTURES", (UINT16)w, texturesLumpPos + 1); } } else @@ -625,11 +624,11 @@ void R_LoadTextures(void) { texstart = W_CheckNumForFolderStartPK3("textures/", (UINT16)w, 0); texend = W_CheckNumForFolderEndPK3("textures/", (UINT16)w, texstart); - texturesLumpPos = W_CheckNumForFullNamePK3("TEXTURES", (UINT16)w, 0); + texturesLumpPos = W_CheckNumForNamePwad("TEXTURES", (UINT16)w, 0); while (texturesLumpPos != INT16_MAX) { R_ParseTEXTURESLump(w, texturesLumpPos, &i); - texturesLumpPos = W_CheckNumForFullNamePK3("TEXTURES", (UINT16)w, texturesLumpPos + 1); + texturesLumpPos = W_CheckNumForNamePwad("TEXTURES", (UINT16)w, texturesLumpPos + 1); } } else @@ -1300,7 +1299,6 @@ void R_ReInitColormaps(UINT16 num) { char colormap[9] = "COLORMAP"; lumpnum_t lump; - CONS_Printf("Reinitting colormaps...\n"); if (num > 0 && num <= 10000) snprintf(colormap, 8, "CLM%04u", num-1); diff --git a/src/w_wad.c b/src/w_wad.c index 209578f62..4b0665679 100644 --- a/src/w_wad.c +++ b/src/w_wad.c @@ -523,22 +523,18 @@ UINT16 W_InitFile(const char *filename) fseek(handle, rememberPos, SEEK_SET); // Let's go back to the central dir. lumpinfo[numlumps].disksize = eCompSize; lumpinfo[numlumps].size = eSize; + // We will trim the file's full name so that only the filename is left. namePos = eNameLen - 1; while(namePos--) - { if(eName[namePos] == '/') - { - namePos++; break; - } - } + namePos++; // We will remove the file extension too. nameEnd = 0; while(nameEnd++ < 8) if(eName[namePos + nameEnd] == '.') break; - memset(lumpinfo[numlumps].name, '\0', 9); strncpy(lumpinfo[numlumps].name, eName + namePos, nameEnd); From d3a652aa152f6b519f7ad6a27e9f0564d2c89bde Mon Sep 17 00:00:00 2001 From: Nevur Date: Sun, 25 Jun 2017 15:39:45 +0200 Subject: [PATCH 020/111] Fix merge issue. --- src/p_setup.c | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/src/p_setup.c b/src/p_setup.c index 896f38ba9..457732e50 100644 --- a/src/p_setup.c +++ b/src/p_setup.c @@ -2781,6 +2781,9 @@ boolean P_SetupLevel(boolean skipprecip) for (i = 0; i < 2; i++) skyboxmo[i] = NULL; + for (i = 0; i < 16; i++) + skyboxviewpnts[i] = skyboxcenterpnts[i] = NULL; + P_MapStart(); P_PrepareRawThings(wadData + (fileinfo + ML_THINGS)->filepos, (fileinfo + ML_THINGS)->size); @@ -2815,16 +2818,25 @@ boolean P_SetupLevel(boolean skipprecip) for (i = 0; i < 2; i++) skyboxmo[i] = NULL; + for (i = 0; i < 16; i++) + skyboxviewpnts[i] = skyboxcenterpnts[i] = NULL; + P_MapStart(); P_PrepareThings(lastloadedmaplumpnum + ML_THINGS); } + // init gravity, tag lists, + // anything that P_ResetDynamicSlopes/P_LoadThings needs to know + P_InitSpecials(); + #ifdef ESLOPE P_ResetDynamicSlopes(); #endif P_LoadThings(); + skyboxmo[0] = skyboxviewpnts[0]; + skyboxmo[1] = skyboxcenterpnts[0]; P_SpawnSecretItems(loademblems); From a4cd7b7f38b5334840bbb1a194cc79ed0f08c404 Mon Sep 17 00:00:00 2001 From: Monster Iestyn Date: Sun, 25 Jun 2017 17:28:07 +0100 Subject: [PATCH 021/111] Added the Gametype_Names array and G_GetGametypeByName for ease in converting gametype nums to strings and vice versa gametype_cons_t is now initialised using the Gametype_Names array, like how Color_cons_t is initialised using Color_Names --- src/d_clisrv.c | 12 ++------ src/d_main.c | 10 ++----- src/d_netcmd.c | 76 +++++++++++++++++++++----------------------------- src/doomstat.h | 5 +++- src/g_game.c | 32 +++++++++++++++++++++ src/g_game.h | 1 + src/hu_stuff.c | 22 +++++++-------- src/m_menu.c | 25 +++-------------- 8 files changed, 89 insertions(+), 94 deletions(-) diff --git a/src/d_clisrv.c b/src/d_clisrv.c index 8af95531c..28acdcfed 100644 --- a/src/d_clisrv.c +++ b/src/d_clisrv.c @@ -2031,17 +2031,11 @@ static void CL_ConnectToServer(boolean viams) if (i != -1) { - INT32 j; + UINT8 num = serverlist[i].info.gametype; const char *gametypestr = NULL; CONS_Printf(M_GetText("Connecting to: %s\n"), serverlist[i].info.servername); - for (j = 0; gametype_cons_t[j].strvalue; j++) - { - if (gametype_cons_t[j].value == serverlist[i].info.gametype) - { - gametypestr = gametype_cons_t[j].strvalue; - break; - } - } + if (num < NUMGAMETYPES) + gametypestr = Gametype_Names[num]; if (gametypestr) CONS_Printf(M_GetText("Gametype: %s\n"), gametypestr); CONS_Printf(M_GetText("Version: %d.%d.%u\n"), serverlist[i].info.version/100, diff --git a/src/d_main.c b/src/d_main.c index 0bba9dc06..0d39abf99 100644 --- a/src/d_main.c +++ b/src/d_main.c @@ -1351,13 +1351,9 @@ void D_SRB2Main(void) INT16 newgametype = -1; const char *sgametype = M_GetNextParm(); - for (j = 0; gametype_cons_t[j].strvalue; j++) - if (!strcasecmp(gametype_cons_t[j].strvalue, sgametype)) - { - newgametype = (INT16)gametype_cons_t[j].value; - break; - } - if (!gametype_cons_t[j].strvalue) // reached end of the list with no match + newgametype = G_GetGametypeByName(sgametype); + + if (newgametype == -1) // reached end of the list with no match { j = atoi(sgametype); // assume they gave us a gametype number, which is okay too if (j >= 0 && j < NUMGAMETYPES) diff --git a/src/d_netcmd.c b/src/d_netcmd.c index 0e96b0912..b8f73085f 100644 --- a/src/d_netcmd.c +++ b/src/d_netcmd.c @@ -406,6 +406,16 @@ const char *netxcmdnames[MAXNETXCMD - 1] = */ void D_RegisterServerCommands(void) { + INT32 i; + + for (i = 0; i < NUMGAMETYPES; i++) + { + gametype_cons_t[i].value = i; + gametype_cons_t[i].strvalue = Gametype_Names[i]; + } + gametype_cons_t[NUMGAMETYPES].value = 0; + gametype_cons_t[NUMGAMETYPES].strvalue = NULL; + RegisterNetXCmd(XD_NAMEANDCOLOR, Got_NameAndColor); RegisterNetXCmd(XD_WEAPONPREF, Got_WeaponPref); RegisterNetXCmd(XD_MAP, Got_Mapcmd); @@ -1654,7 +1664,7 @@ static void Command_Map_f(void) { const char *mapname; size_t i; - INT32 j, newmapnum; + INT32 newmapnum; boolean newresetplayers; INT32 newgametype = gametype; @@ -1722,27 +1732,13 @@ static void Command_Map_f(void) return; } - for (j = 0; gametype_cons_t[j].strvalue; j++) - if (!strcasecmp(gametype_cons_t[j].strvalue, COM_Argv(i+1))) - { - // Don't do any variable setting here. Wait until you get your - // map packet first to avoid sending the same info twice! - newgametype = gametype_cons_t[j].value; + newgametype = G_GetGametypeByName(COM_Argv(i+1)); - break; - } - - if (!gametype_cons_t[j].strvalue) // reached end of the list with no match + if (newgametype == -1) // reached end of the list with no match { - // assume they gave us a gametype number, which is okay too - for (j = 0; gametype_cons_t[j].strvalue != NULL; j++) - { - if (atoi(COM_Argv(i+1)) == gametype_cons_t[j].value) - { - newgametype = gametype_cons_t[j].value; - break; - } - } + INT32 j = atoi(COM_Argv(i+1)); // assume they gave us a gametype number, which is okay too + if (j >= 0 && j < NUMGAMETYPES) + newgametype = (INT16)j; } } @@ -1767,12 +1763,11 @@ static void Command_Map_f(void) char gametypestring[32] = "Single Player"; if (multiplayer) - for (i = 0; gametype_cons_t[i].strvalue != NULL; i++) - if (gametype_cons_t[i].value == newgametype) - { - strcpy(gametypestring, gametype_cons_t[i].strvalue); - break; - } + { + if (newgametype >= 0 && newgametype < NUMGAMETYPES + && Gametype_Names[newgametype]) + strcpy(gametypestring, Gametype_Names[newgametype]); + } CONS_Alert(CONS_WARNING, M_GetText("%s doesn't support %s mode!\n(Use -force to override)\n"), mapname, gametypestring); return; @@ -3313,7 +3308,6 @@ static void Command_ModDetails_f(void) // static void Command_ShowGametype_f(void) { - INT32 j; const char *gametypestr = NULL; if (!(netgame || multiplayer)) // print "Single player" instead of "Co-op" @@ -3321,15 +3315,11 @@ static void Command_ShowGametype_f(void) CONS_Printf(M_GetText("Current gametype is %s\n"), M_GetText("Single player")); return; } - // find name string for current gametype - for (j = 0; gametype_cons_t[j].strvalue; j++) - { - if (gametype_cons_t[j].value == gametype) - { - gametypestr = gametype_cons_t[j].strvalue; - break; - } - } + + // get name string for current gametype + if (gametype >= 0 && gametype < NUMGAMETYPES) + gametypestr = Gametype_Names[gametype]; + if (gametypestr) CONS_Printf(M_GetText("Current gametype is %s\n"), gametypestr); else // string for current gametype was not found above (should never happen) @@ -3468,15 +3458,13 @@ void D_GameTypeChanged(INT32 lastgametype) { if (netgame) { - INT32 j; const char *oldgt = NULL, *newgt = NULL; - for (j = 0; gametype_cons_t[j].strvalue; j++) - { - if (gametype_cons_t[j].value == lastgametype) - oldgt = gametype_cons_t[j].strvalue; - if (gametype_cons_t[j].value == gametype) - newgt = gametype_cons_t[j].strvalue; - } + + if (lastgametype >= 0 && lastgametype < NUMGAMETYPES) + oldgt = Gametype_Names[lastgametype]; + if (gametype >= 0 && lastgametype < NUMGAMETYPES) + newgt = Gametype_Names[gametype]; + if (oldgt && newgt) CONS_Printf(M_GetText("Gametype was changed from %s to %s\n"), oldgt, newgt); } diff --git a/src/doomstat.h b/src/doomstat.h index a3b07c9cb..662bfa7c4 100644 --- a/src/doomstat.h +++ b/src/doomstat.h @@ -314,7 +314,10 @@ enum GameType NUMGAMETYPES }; -// If you alter this list, update dehacked.c, and gametype_cons_t and MISC_ChangeGameTypeMenu in m_menu.c +// If you alter this list, update dehacked.c, MISC_ChangeGameTypeMenu in m_menu.c, and Gametype_Names in g_game.c + +// String names for gametypes +extern const char *Gametype_Names[NUMGAMETYPES]; extern tic_t totalplaytime; diff --git a/src/g_game.c b/src/g_game.c index 7769555ba..7b4b10490 100644 --- a/src/g_game.c +++ b/src/g_game.c @@ -2640,6 +2640,38 @@ void G_ExitLevel(void) } } +// See also the enum GameType in doomstat.h +const char *Gametype_Names[NUMGAMETYPES] = +{ + "Co-op", // GT_COOP + "Competition", // GT_COMPETITION + "Race", // GT_RACE + + "Match", // GT_MATCH + "Team Match", // GT_TEAMMATCH + + "Tag", // GT_TAG + "Hide & Seek", // GT_HIDEANDSEEK + + "CTF" // GT_CTF +}; + +// +// G_GetGametypeByName +// +// Returns the number for the given gametype name string, or -1 if not valid. +// +INT32 G_GetGametypeByName(const char *gametypestr) +{ + INT32 i; + + for (i = 0; i < NUMGAMETYPES; i++) + if (!stricmp(gametypestr, Gametype_Names[i])) + return i; + + return -1; // unknown gametype +} + // // G_IsSpecialStage // diff --git a/src/g_game.h b/src/g_game.h index 72a6f3d6e..3313f0bb8 100644 --- a/src/g_game.h +++ b/src/g_game.h @@ -162,6 +162,7 @@ ATTRNORETURN void FUNCNORETURN G_StopMetalRecording(void); void G_StopDemo(void); boolean G_CheckDemoStatus(void); +INT32 G_GetGametypeByName(const char *gametypestr); boolean G_IsSpecialStage(INT32 mapnum); boolean G_GametypeUsesLives(void); boolean G_GametypeHasTeams(void); diff --git a/src/hu_stuff.c b/src/hu_stuff.c index 365ea093b..d8b1f652e 100644 --- a/src/hu_stuff.c +++ b/src/hu_stuff.c @@ -989,19 +989,17 @@ static void HU_DrawCEcho(void) static void HU_drawGametype(void) { - INT32 i = 0; + const char *strvalue = NULL; + + if (gametype < 0 || gametype >= NUMGAMETYPES) + return; // not a valid gametype??? - for (i = 0; gametype_cons_t[i].strvalue; i++) - { - if (gametype_cons_t[i].value == gametype) - { - if (splitscreen) - V_DrawString(4, 184, 0, gametype_cons_t[i].strvalue); - else - V_DrawString(4, 192, 0, gametype_cons_t[i].strvalue); - return; - } - } + strvalue = Gametype_Names[gametype]; + + if (splitscreen) + V_DrawString(4, 184, 0, strvalue); + else + V_DrawString(4, 192, 0, strvalue); } // diff --git a/src/m_menu.c b/src/m_menu.c index b7f9e8802..8546624f5 100644 --- a/src/m_menu.c +++ b/src/m_menu.c @@ -414,22 +414,8 @@ consvar_t cv_chooseskin = {"chooseskin", DEFAULTSKIN, CV_HIDEN|CV_CALL, skins_co // This gametype list is integral for many different reasons. // When you add gametypes here, don't forget to update them in dehacked.c and doomstat.h! -CV_PossibleValue_t gametype_cons_t[] = -{ - {GT_COOP, "Co-op"}, +CV_PossibleValue_t gametype_cons_t[NUMGAMETYPES+1]; - {GT_COMPETITION, "Competition"}, - {GT_RACE, "Race"}, - - {GT_MATCH, "Match"}, - {GT_TEAMMATCH, "Team Match"}, - - {GT_TAG, "Tag"}, - {GT_HIDEANDSEEK, "Hide & Seek"}, - - {GT_CTF, "CTF"}, - {0, NULL} -}; consvar_t cv_newgametype = {"newgametype", "Co-op", CV_HIDEN|CV_CALL, gametype_cons_t, Newgametype_OnChange, 0, NULL, NULL, 0, 0, NULL}; static CV_PossibleValue_t serversort_cons_t[] = { @@ -7093,7 +7079,7 @@ static void M_DrawRoomMenu(void) static void M_DrawConnectMenu(void) { - UINT16 i, j; + UINT16 i; const char *gt = "Unknown"; INT32 numPages = (serverlistcount+(SERVERS_PER_PAGE-1))/SERVERS_PER_PAGE; @@ -7139,11 +7125,8 @@ static void M_DrawConnectMenu(void) va("Ping: %u", (UINT32)LONG(serverlist[slindex].info.time))); gt = "Unknown"; - for (j = 0; gametype_cons_t[j].strvalue; j++) - { - if (gametype_cons_t[j].value == serverlist[slindex].info.gametype) - gt = gametype_cons_t[j].strvalue; - } + if (serverlist[slindex].info.gametype < NUMGAMETYPES) + gt = Gametype_Names[serverlist[slindex].info.gametype]; V_DrawSmallString(currentMenu->x+46,S_LINEY(i)+8, globalflags, va("Players: %02d/%02d", serverlist[slindex].info.numberofplayer, serverlist[slindex].info.maxplayer)); From f6bd414f355daeb06ef2aaa190a6747895ebf708 Mon Sep 17 00:00:00 2001 From: Nevur Date: Sun, 25 Jun 2017 18:30:53 +0200 Subject: [PATCH 022/111] Fixed stuff which I removed accidentally when manually tweaking p_setup.c on the merge. --- src/p_setup.c | 21 +++++++++++++++++---- 1 file changed, 17 insertions(+), 4 deletions(-) diff --git a/src/p_setup.c b/src/p_setup.c index 457732e50..216188827 100644 --- a/src/p_setup.c +++ b/src/p_setup.c @@ -2317,6 +2317,18 @@ void P_LoadThingsOnly(void) // Search through all the thinkers. mobj_t *mo; thinker_t *think; + INT32 i, viewid = -1, centerid = -1; // for skyboxes + + // check if these are any of the normal viewpoint/centerpoint mobjs in the level or not + if (skyboxmo[0] || skyboxmo[1]) + for (i = 0; i < 16; i++) + { + if (skyboxmo[0] && skyboxmo[0] == skyboxviewpnts[i]) + viewid = i; // save id just in case + if (skyboxmo[1] && skyboxmo[1] == skyboxcenterpnts[i]) + centerid = i; // save id just in case + } + for (think = thinkercap.next; think != &thinkercap; think = think->next) { @@ -2334,6 +2346,10 @@ void P_LoadThingsOnly(void) P_PrepareThings(lastloadedmaplumpnum + ML_THINGS); P_LoadThings(); + + // restore skybox viewpoint/centerpoint if necessary, set them to defaults if we can't do that + skyboxmo[0] = skyboxviewpnts[(viewid >= 0) ? viewid : 0]; + skyboxmo[1] = skyboxcenterpnts[(centerid >= 0) ? centerid : 0]; P_SpawnSecretItems(true); } @@ -2616,8 +2632,7 @@ boolean P_SetupLevel(boolean skipprecip) postimgtype = postimgtype2 = postimg_none; - if (mapheaderinfo[gamemap-1]->forcecharacter[0] != '\0' - && atoi(mapheaderinfo[gamemap-1]->forcecharacter) != 255) + if (mapheaderinfo[gamemap-1]->forcecharacter[0] != '\0') P_ForceCharacter(mapheaderinfo[gamemap-1]->forcecharacter); // chasecam on in chaos, race, coop @@ -2850,8 +2865,6 @@ boolean P_SetupLevel(boolean skipprecip) if (loadprecip) // ugly hack for P_NetUnArchiveMisc (and P_LoadNetGame) P_SpawnPrecipitation(); - globalweather = mapheaderinfo[gamemap-1]->weather; - #ifdef HWRENDER // not win32 only 19990829 by Kin if (rendermode != render_soft && rendermode != render_none) { From 677c1045a15eb7570ec6d1724f180353300e1ba3 Mon Sep 17 00:00:00 2001 From: Nevur Date: Sun, 25 Jun 2017 23:04:51 +0200 Subject: [PATCH 023/111] The sprites stuff is changed now. -PK3 loadtime drastically reduced, even for very big files. -Looks for srb2.pk3 now instead. -"flipped the switch" for sprites. --- src/d_main.c | 2 +- src/r_things.h | 4 ++-- src/w_wad.c | 61 +++++++++++++++++++++++++------------------------- 3 files changed, 34 insertions(+), 33 deletions(-) diff --git a/src/d_main.c b/src/d_main.c index be06acb2e..98411f28f 100644 --- a/src/d_main.c +++ b/src/d_main.c @@ -819,7 +819,7 @@ static void IdentifyVersion(void) if (srb2wad1 == NULL && srb2wad2 == NULL) I_Error("No more free memory to look in %s", srb2waddir); if (srb2wad1 != NULL) - sprintf(srb2wad1, pandf, srb2waddir, "srb2.srb"); + sprintf(srb2wad1, pandf, srb2waddir, "srb2.pk3"); if (srb2wad2 != NULL) sprintf(srb2wad2, pandf, srb2waddir, "srb2.wad"); diff --git a/src/r_things.h b/src/r_things.h index 441d32087..eb4f9bbf5 100644 --- a/src/r_things.h +++ b/src/r_things.h @@ -227,7 +227,7 @@ char *GetPlayerFacePic(INT32 skinnum); // Future: [[ ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyz!@ ]] FUNCMATH FUNCINLINE static ATTRINLINE char R_Frame2Char(UINT8 frame) { -#if 1 // 2.1 compat +#if 0 // 2.1 compat return 'A' + frame; #else if (frame < 26) return 'A' + frame; @@ -241,7 +241,7 @@ FUNCMATH FUNCINLINE static ATTRINLINE char R_Frame2Char(UINT8 frame) FUNCMATH FUNCINLINE static ATTRINLINE UINT8 R_Char2Frame(char cn) { -#if 1 // 2.1 compat +#if 0 // 2.1 compat return cn - 'A'; #else if (cn >= 'A' && cn <= 'Z') return cn - 'A'; diff --git a/src/w_wad.c b/src/w_wad.c index 4b0665679..91eaba81b 100644 --- a/src/w_wad.c +++ b/src/w_wad.c @@ -309,7 +309,7 @@ UINT16 W_InitFile(const char *filename) lumpinfo_t *lumpinfo; wadfile_t *wadfile; enum restype type; - UINT32 numlumps; + UINT16 numlumps; size_t i; INT32 compressed = 0; size_t packetsize = 0; @@ -417,11 +417,12 @@ UINT16 W_InitFile(const char *filename) char curHeader[4]; unsigned long size; char seekPat[] = {0x50, 0x4b, 0x01, 0x02, 0x00}; - char endPat[] = {0x50, 0x4b, 0x05, 0x06, 0xff}; + char endPat[] = {0x50, 0x4b, 0x05, 0x06, 0x00}; char *s; int c; + UINT32 position; boolean matched = FALSE; - numlumps = 0; + lumpinfo_t *lump_p; type = RET_PK3; @@ -433,19 +434,18 @@ UINT16 W_InitFile(const char *filename) // We must look for the central directory through the file. (Thanks to JTE for this algorithm.) // All of the central directory entry headers have a signature of 0x50 0x4b 0x01 0x02. // The first entry found means the beginning of the central directory. - rewind(handle); - s = seekPat; + fseek(handle, -min(size, (22 + 65536)), SEEK_CUR); + s = endPat; while((c = fgetc(handle)) != EOF) { - if (*s != c && s > seekPat) // No match? - s = seekPat; // We "reset" the counter by sending the s pointer back to the start of the array. + if (*s != c && s > endPat) // No match? + s = endPat; // We "reset" the counter by sending the s pointer back to the start of the array. if (*s == c) { s++; if (*s == 0x00) // The array pointer has reached the key char which marks the end. It means we have matched the signature. { matched = TRUE; - fseek(handle, -4, SEEK_CUR); CONS_Debug(DBG_SETUP, "Found PK3 central directory at position %ld.\n", ftell(handle)); break; } @@ -459,11 +459,18 @@ UINT16 W_InitFile(const char *filename) return INT16_MAX; } + fseek(handle, 4, SEEK_CUR); + fread(&numlumps, 1, 2, handle); + fseek(handle, 6, SEEK_CUR); + fread(&position, 1, 4, handle); + lump_p = lumpinfo = Z_Malloc(numlumps * sizeof (*lumpinfo), PU_STATIC, NULL); + fseek(handle, position, SEEK_SET); + // Since we found the central directory, now we can map our lumpinfo table. // We will look for file headers inside it, until we reach the central directory end signature. // We exactly know what data to expect this time, so now we don't need to do a byte-by-byte search. CONS_Debug(DBG_SETUP, "Now finding central directory file headers...\n"); - while(ftell(handle) < size - 4) // Make sure we don't go past the file size! + for (i = 0; i < numlumps; i++, lump_p++) { fread(curHeader, 1, 4, handle); @@ -504,13 +511,8 @@ UINT16 W_InitFile(const char *filename) fgets(eName, eNameLen + 1, handle); // Don't load lump if folder. - if (*(eName + eNameLen - 1) == '/') - continue; - - if (numlumps == 0) // First lump? Let's allocate the first lumpinfo block. - lumpinfo = Z_Malloc(sizeof(*lumpinfo), PU_STATIC, NULL); - else // Otherwise, reallocate and increase by 1. Might not be optimal, though... - lumpinfo = (lumpinfo_t*) Z_Realloc(lumpinfo, (numlumps + 1)*sizeof(*lumpinfo), PU_STATIC, NULL); +// if (*(eName + eNameLen - 1) == '/') +// continue; // We must calculate the position for the actual data. // Why not eLocalHeaderOffset + 30 + eNameLen + eXFieldLen? That's because the extra field and name lengths MAY be different in the local headers. @@ -518,11 +520,11 @@ UINT16 W_InitFile(const char *filename) fseek(handle, eLocalHeaderOffset + 26, SEEK_SET); fread(&lNameLen, 1, 2, handle); fread(&lXFieldLen, 1, 2, handle); - lumpinfo[numlumps].position = ftell(handle) + lNameLen + lXFieldLen; + lump_p->position = ftell(handle) + lNameLen + lXFieldLen; fseek(handle, rememberPos, SEEK_SET); // Let's go back to the central dir. - lumpinfo[numlumps].disksize = eCompSize; - lumpinfo[numlumps].size = eSize; + lump_p->disksize = eCompSize; + lump_p->size = eSize; // We will trim the file's full name so that only the filename is left. namePos = eNameLen - 1; @@ -535,33 +537,32 @@ UINT16 W_InitFile(const char *filename) while(nameEnd++ < 8) if(eName[namePos + nameEnd] == '.') break; - memset(lumpinfo[numlumps].name, '\0', 9); - strncpy(lumpinfo[numlumps].name, eName + namePos, nameEnd); + memset(lump_p->name, '\0', 9); + strncpy(lump_p->name, eName + namePos, nameEnd); - lumpinfo[numlumps].name2 = Z_Malloc((eNameLen+1)*sizeof(char), PU_STATIC, NULL); - strncpy(lumpinfo[numlumps].name2, eName, eNameLen); - lumpinfo[numlumps].name2[eNameLen] = '\0'; + lump_p->name2 = Z_Malloc((eNameLen+1)*sizeof(char), PU_STATIC, NULL); + strncpy(lump_p->name2, eName, eNameLen); + lump_p->name2[eNameLen] = '\0'; // We set the compression type from what we're supporting so far. switch(eCompression) { case 0: - lumpinfo[numlumps].compression = CM_NONE; + lump_p->compression = CM_NONE; break; case 8: - lumpinfo[numlumps].compression = CM_DEFLATE; + lump_p->compression = CM_DEFLATE; break; case 14: - lumpinfo[numlumps].compression = CM_LZF; + lump_p->compression = CM_LZF; break; default: CONS_Alert(CONS_WARNING, "Lump has an unsupported compression type!\n"); - lumpinfo[numlumps].compression = CM_UNSUPPORTED; + lump_p->compression = CM_UNSUPPORTED; break; } - CONS_Debug(DBG_SETUP, "File %s, data begins at: %ld\n", eName, lumpinfo[numlumps].position); + CONS_Debug(DBG_SETUP, "File %s, data begins at: %ld\n", eName, lump_p->position); fseek(handle, eXFieldLen + eCommentLen, SEEK_CUR); // We skip to where we expect the next central directory entry or end marker to be. - numlumps++; free(eName); } // We found the central directory end signature? From bb3365a904e8f6051d62ea479a2a31b152dea00e Mon Sep 17 00:00:00 2001 From: Nevur Date: Tue, 8 Aug 2017 10:39:25 +0200 Subject: [PATCH 024/111] We use srb2.pk3 instead. --- src/d_main.c | 4 ---- src/d_netfil.c | 3 +-- src/sdl/i_system.c | 2 +- 3 files changed, 2 insertions(+), 7 deletions(-) diff --git a/src/d_main.c b/src/d_main.c index 98411f28f..26abcbde3 100644 --- a/src/d_main.c +++ b/src/d_main.c @@ -849,9 +849,6 @@ static void IdentifyVersion(void) // Add the players D_AddFile(va(pandf,srb2waddir, "player.dta")); - // Add the weapons - D_AddFile(va(pandf,srb2waddir,"rings.dta")); - #ifdef USE_PATCH_DTA // Add our crappy patches to fix our bugs D_AddFile(va(pandf,srb2waddir,"patch.dta")); @@ -1158,7 +1155,6 @@ void D_SRB2Main(void) //W_VerifyFileMD5(0, ASSET_HASH_SRB2_SRB); // srb2.srb/srb2.wad //W_VerifyFileMD5(1, ASSET_HASH_ZONES_DTA); // zones.dta //W_VerifyFileMD5(2, ASSET_HASH_PLAYER_DTA); // player.dta - //W_VerifyFileMD5(3, ASSET_HASH_RINGS_DTA); // rings.dta #ifdef USE_PATCH_DTA W_VerifyFileMD5(4, ASSET_HASH_PATCH_DTA); // patch.dta #endif diff --git a/src/d_netfil.c b/src/d_netfil.c index 172624ad2..db0bf8055 100644 --- a/src/d_netfil.c +++ b/src/d_netfil.c @@ -793,11 +793,10 @@ void Got_Filetxpak(void) char *filename = file->filename; static INT32 filetime = 0; - if (!(strcmp(filename, "srb2.srb") + if (!(strcmp(filename, "srb2.pk3") && strcmp(filename, "srb2.wad") && strcmp(filename, "zones.dta") && strcmp(filename, "player.dta") - && strcmp(filename, "rings.dta") && strcmp(filename, "patch.dta") && strcmp(filename, "music.dta") )) diff --git a/src/sdl/i_system.c b/src/sdl/i_system.c index f72a9857d..fdf96bae7 100644 --- a/src/sdl/i_system.c +++ b/src/sdl/i_system.c @@ -224,7 +224,7 @@ void __set_fpscr(long); // in libgcc / kernel's startup.s? /** \brief WAD file to look for */ -#define WADKEYWORD1 "srb2.srb" +#define WADKEYWORD1 "srb2.pk3" #define WADKEYWORD2 "srb2.wad" /** \brief holds wad path */ From 4f8d53b329cd115562621756be826e3dd2d454a5 Mon Sep 17 00:00:00 2001 From: Nevur Date: Fri, 11 Aug 2017 15:46:46 +0200 Subject: [PATCH 025/111] Got rid of functions I added once but turned out to be unnecessary. --- src/p_setup.c | 17 +++++++---------- src/r_things.c | 32 -------------------------------- src/r_things.h | 1 - 3 files changed, 7 insertions(+), 43 deletions(-) diff --git a/src/p_setup.c b/src/p_setup.c index 2feba84d5..b6c8f75ca 100644 --- a/src/p_setup.c +++ b/src/p_setup.c @@ -2599,7 +2599,7 @@ static boolean CanSaveLevel(INT32 mapnum) if (G_IsSpecialStage(mapnum) // don't save in special stages || mapnum == lastmaploaded) // don't save if the last map loaded was this one return false; - + // Any levels that have the savegame flag can save normally. // If the game is complete for this save slot, then any level can save! // On the other side of the spectrum, if lastmaploaded is 0, then the save file has only just been created and needs to save ASAP! @@ -3271,7 +3271,7 @@ boolean P_AddWadFile(const char *wadfilename, char **firstmapname) // FindFolder("SOCs/", &socPos, &socNum); FindFolder("Sounds/", &sfxPos, &sfxNum); FindFolder("Music/", &musPos, &musNum); - FindFolder("Sprites/", &sprPos, &sprNum); +// FindFolder("Sprites/", &sprPos, &sprNum); FindFolder("Textures/", &texPos, &texNum); // FindFolder("Patches/", &patPos, &patNum); // FindFolder("Flats/", &flaPos, &flaNum); @@ -3290,8 +3290,8 @@ boolean P_AddWadFile(const char *wadfilename, char **firstmapname) P_LoadSoundsRange(wadnum, sfxPos, sfxNum); if (musNum) // Music. TODO: Useless function right now. P_LoadMusicsRange(wadnum, musPos, musNum); - if (sprNum) // Sprites. - R_LoadSpritsRange(wadnum, sprPos, sprNum); +// if (sprNum) // Sprites. +// R_LoadSpritsRange(wadnum, sprPos, sprNum); // if (texNum) // Textures. TODO: R_LoadTextures() does the folder positioning once again. New function maybe? // R_LoadTextures(); // if (mapNum) // Maps. TODO: Actually implement the map WAD loading code, lulz. @@ -3330,12 +3330,6 @@ boolean P_AddWadFile(const char *wadfilename, char **firstmapname) digmreplaces++; } } - - // - // search for sprite replacements - // - R_AddSpriteDefs(wadnum); - break; } if (!devparm && sreplaces) @@ -3359,6 +3353,9 @@ boolean P_AddWadFile(const char *wadfilename, char **firstmapname) ST_LoadGraphics(); ST_ReloadSkinFaceGraphics(); + // Search for sprite replacements. + R_AddSpriteDefs(wadnum); + // // look for skins // diff --git a/src/r_things.c b/src/r_things.c index 5b5d7527f..299c2dac7 100644 --- a/src/r_things.c +++ b/src/r_things.c @@ -368,38 +368,6 @@ static boolean R_AddSingleSpriteDef(const char *sprname, spritedef_t *spritedef, return true; } -// Auxiliary function for PK3 loading - Loads sprites from a specified range. -void R_LoadSpritsRange(UINT16 wadnum, UINT16 first, UINT16 num) -{ - size_t i, addsprites = 0; - char wadname[MAX_WADPATH]; - // - // scan through lumps, for each sprite, find all the sprite frames - // - for (i = 0; i < numsprites; i++) - { - spritename = sprnames[i]; - if (spritename[4] && wadnum >= (UINT16)spritename[4]) - continue; - - if (R_AddSingleSpriteDef(spritename, &sprites[i], wadnum, first, first + num + 1)) - { -#ifdef HWRENDER - if (rendermode == render_opengl) - HWR_AddSpriteMD2(i); -#endif - // if a new sprite was added (not just replaced) - addsprites++; -#ifndef ZDEBUG - CONS_Debug(DBG_SETUP, "sprite %s set in pwad %d\n", spritename, wadnum); -#endif - } - } - - nameonly(strcpy(wadname, wadfiles[wadnum]->filename)); - CONS_Printf(M_GetText("%s added %d frames in %s sprites\n"), wadname, num, sizeu1(addsprites)); -} - // // Search for sprites replacements in a wad whose names are in namelist // diff --git a/src/r_things.h b/src/r_things.h index f5b863022..3b7d6ba3f 100644 --- a/src/r_things.h +++ b/src/r_things.h @@ -50,7 +50,6 @@ void R_SortVisSprites(void); //faB: find sprites in wadfile, replace existing, add new ones // (only sprites from namelist are added or replaced) void R_AddSpriteDefs(UINT16 wadnum); -void R_LoadSpritsRange(UINT16 wadnum, UINT16 first, UINT16 num); #ifdef DELFILE From 8b53295a744cf72b8b13148593e9a5e2f98a24ec Mon Sep 17 00:00:00 2001 From: TehRealSalt Date: Sat, 9 Sep 2017 19:02:11 -0400 Subject: [PATCH 026/111] Remove instances of player state changes being done every tic Makes it easier to change player state with Lua. Wasn't sure how to tackle changing this for S_PLAY_CLIMB or S_PLAY_CLING, so I left them; it's a minor ability-specific case anyway --- src/p_user.c | 23 +++++++++++++---------- 1 file changed, 13 insertions(+), 10 deletions(-) diff --git a/src/p_user.c b/src/p_user.c index 09cafa0b3..b3cb15c9a 100644 --- a/src/p_user.c +++ b/src/p_user.c @@ -4049,14 +4049,14 @@ static void P_DoSpinAbility(player_t *player, ticcmd_t *cmd) if (onground && player->pflags & PF_STARTDASH) { - if (player->mo->state-states != S_PLAY_SPINDASH) - P_SetPlayerMobjState(player->mo, S_PLAY_SPINDASH); + //if (player->mo->state-states != S_PLAY_SPINDASH) + //P_SetPlayerMobjState(player->mo, S_PLAY_SPINDASH); // Spawn spin dash dust if (!(player->charflags & SF_NOSPINDASHDUST) && !(player->mo->eflags & MFE_GOOWATER)) P_DoSpinDashDust(player); } - else if (onground && player->pflags & PF_SPINNING && !(player->panim == PA_ROLL)) - P_SetPlayerMobjState(player->mo, S_PLAY_ROLL); + //else if (onground && player->pflags & PF_SPINNING && !(player->panim == PA_ROLL)) + //P_SetPlayerMobjState(player->mo, S_PLAY_ROLL); } // @@ -4115,6 +4115,8 @@ void P_DoBubbleBounce(player_t *player) P_DoJump(player, false); if (player->charflags & SF_NOJUMPSPIN) P_SetPlayerMobjState(player->mo, S_PLAY_FALL); + else + P_SetPlayerMobjState(player->mo, S_PLAY_ROLL); player->pflags |= PF_THOKKED; player->pflags &= ~PF_STARTJUMP; player->secondjump = UINT8_MAX; @@ -9333,20 +9335,20 @@ void P_PlayerThink(player_t *player) #endif if (!player->mo->health) ; - else if (player->pflags & PF_GLIDING) + /*else if (player->pflags & PF_GLIDING) { if (player->panim != PA_ABILITY) P_SetPlayerMobjState(player->mo, S_PLAY_GLIDE); - } + }*/ else if ((player->pflags & PF_JUMPED && !(player->pflags & PF_NOJUMPDAMAGE) && (player->mo->state-states != S_PLAY_FLOAT && player->mo->state-states != S_PLAY_FLOAT_RUN)) && ((((player->charflags & (SF_NOJUMPSPIN|SF_NOJUMPDAMAGE)) == (SF_NOJUMPSPIN|SF_NOJUMPDAMAGE)) && player->panim != PA_ROLL) || (!(player->charflags & SF_NOJUMPSPIN) && player->panim != PA_JUMP))) { - if (!(player->charflags & SF_NOJUMPSPIN)) + /*if (!(player->charflags & SF_NOJUMPSPIN)) P_SetPlayerMobjState(player->mo, S_PLAY_JUMP); else if (!(player->pflags & PF_NOJUMPDAMAGE)) - P_SetPlayerMobjState(player->mo, S_PLAY_ROLL); + P_SetPlayerMobjState(player->mo, S_PLAY_ROLL);*/ } if (player->flashcount) @@ -10011,12 +10013,13 @@ void P_PlayerAfterThink(player_t *player) if (P_IsLocalPlayer(player) && (player->pflags & PF_WPNDOWN) && player->currentweapon != oldweapon) S_StartSound(NULL, sfx_wepchg); - if (player->pflags & PF_GLIDING) + /*if (player->pflags & PF_GLIDING) { if (player->panim != PA_ABILITY) P_SetPlayerMobjState(player->mo, S_PLAY_GLIDE); } - else if (player->pflags & PF_SLIDING) + else if (player->pflags & PF_SLIDING)*/ + if (player->pflags & PF_SLIDING) P_SetPlayerMobjState(player->mo, player->mo->info->painstate); /* if (player->powers[pw_carry] == CR_NONE && player->mo->tracer && !player->homing) From b217e9eb929e56adfa61065716b15aab4b4a0ce7 Mon Sep 17 00:00:00 2001 From: toasterbabe Date: Fri, 15 Sep 2017 20:34:46 +0100 Subject: [PATCH 027/111] * Made levels with TOL_COOP inaccessible from the multiplayer map select unless you'd visited them in singleplayer (mapvisited, saves to gamedata) or visited a Co-op level number equal to/after it (multiplayer, doesn't save to gamedata) * Tweaked Pandora's box to add: - A mid-game link to the Addons menu. - A button to give everyone SF_SUPER (except Tails in non-devmode executables). --- src/doomstat.h | 1 + src/g_game.c | 1 + src/m_menu.c | 51 ++++++++++++++++++++++++++++++++++++++++---------- src/p_setup.c | 3 +++ 4 files changed, 46 insertions(+), 10 deletions(-) diff --git a/src/doomstat.h b/src/doomstat.h index a24bad79d..7370e8074 100644 --- a/src/doomstat.h +++ b/src/doomstat.h @@ -44,6 +44,7 @@ extern INT32 cursaveslot; //extern INT16 lastmapsaved; extern INT16 lastmaploaded; extern boolean gamecomplete; +extern INT16 lastcoop; #define PRECIP_NONE 0 #define PRECIP_STORM 1 diff --git a/src/g_game.c b/src/g_game.c index e996938ab..3bffd426e 100644 --- a/src/g_game.c +++ b/src/g_game.c @@ -80,6 +80,7 @@ INT32 cursaveslot = -1; // Auto-save 1p savegame slot //INT16 lastmapsaved = 0; // Last map we auto-saved at INT16 lastmaploaded = 0; // Last map the game loaded boolean gamecomplete = false; +INT16 lastcoop = 0; UINT16 mainwads = 0; boolean modifiedgame; // Set if homebrew PWAD stuff has been added. diff --git a/src/m_menu.c b/src/m_menu.c index 64255e71a..193d0dd4f 100644 --- a/src/m_menu.c +++ b/src/m_menu.c @@ -236,6 +236,7 @@ static void M_CustomLevelSelect(INT32 choice); static void M_CustomWarp(INT32 choice); FUNCNORETURN static ATTRNORETURN void M_UltimateCheat(INT32 choice); static void M_LoadGameLevelSelect(INT32 choice); +static void M_AllowSuper(INT32 choice); static void M_GetAllEmeralds(INT32 choice); static void M_DestroyRobots(INT32 choice); static void M_LevelSelectWarp(INT32 choice); @@ -677,17 +678,20 @@ static menuitem_t MISC_HelpMenu[] = // Pause Menu Pandora's Box Options static menuitem_t SR_PandorasBox[] = { - {IT_STRING | IT_CVAR, NULL, "Rings", &cv_dummyrings, 20}, - {IT_STRING | IT_CVAR, NULL, "Lives", &cv_dummylives, 30}, - {IT_STRING | IT_CVAR, NULL, "Continues", &cv_dummycontinues, 40}, + {IT_STRING | IT_CALL, NULL, "Mid-game add-ons...", M_Addons, 0}, - {IT_STRING | IT_CVAR, NULL, "Gravity", &cv_gravity, 60}, - {IT_STRING | IT_CVAR, NULL, "Throw Rings", &cv_ringslinger, 70}, + {IT_STRING | IT_CVAR, NULL, "Rings", &cv_dummyrings, 20}, + {IT_STRING | IT_CVAR, NULL, "Lives", &cv_dummylives, 30}, + {IT_STRING | IT_CVAR, NULL, "Continues", &cv_dummycontinues, 40}, - {IT_STRING | IT_CALL, NULL, "Get All Emeralds", M_GetAllEmeralds, 90}, - {IT_STRING | IT_CALL, NULL, "Destroy All Robots", M_DestroyRobots, 100}, + {IT_STRING | IT_CVAR, NULL, "Gravity", &cv_gravity, 60}, + {IT_STRING | IT_CVAR, NULL, "Throw Rings", &cv_ringslinger, 70}, - {IT_STRING | IT_CALL, NULL, "Ultimate Cheat", M_UltimateCheat, 130}, + {IT_STRING | IT_CALL, NULL, "Enable Super form", M_AllowSuper, 90}, + {IT_STRING | IT_CALL, NULL, "Get All Emeralds", M_GetAllEmeralds, 100}, + {IT_STRING | IT_CALL, NULL, "Destroy All Robots", M_DestroyRobots, 110}, + + {IT_STRING | IT_CALL, NULL, "Ultimate Cheat", M_UltimateCheat, 130}, }; // Sky Room Custom Unlocks @@ -1536,7 +1540,7 @@ menu_t SR_PandoraDef = &SPauseDef, SR_PandorasBox, M_DrawGenericMenu, - 60, 40, + 60, 30, 0, M_ExitPandorasBox }; @@ -3822,6 +3826,16 @@ static boolean M_LevelAvailableOnPlatter(INT32 mapnum) switch (levellistmode) { + case LLM_CREATESERVER: + if (mapheaderinfo[mapnum]->menuflags & LF2_NOVISITNEEDED) + return true; + + if (!mapvisited[mapnum] + && (mapheaderinfo[mapnum]->typeoflevel & TOL_COOP) + && (mapnum+1) > lastcoop) + return false; + + return true; case LLM_RECORDATTACK: case LLM_NIGHTSATTACK: if (mapheaderinfo[mapnum]->menuflags & LF2_NOVISITNEEDED) @@ -3831,7 +3845,6 @@ static boolean M_LevelAvailableOnPlatter(INT32 mapnum) return false; // intentional fallthrough - case LLM_CREATESERVER: case LLM_LEVELSELECT: default: return true; @@ -5211,6 +5224,12 @@ static void M_PandorasBox(INT32 choice) CV_StealthSetValue(&cv_dummyrings, max(players[consoleplayer].rings, 0)); CV_StealthSetValue(&cv_dummylives, players[consoleplayer].lives); CV_StealthSetValue(&cv_dummycontinues, players[consoleplayer].continues); + SR_PandorasBox[6].status = ((players[consoleplayer].charflags & SF_SUPER) +#ifndef DEVELOP + || cv_skin.value == 1 +#endif + ) ? (IT_GRAYEDOUT) : (IT_STRING | IT_CALL); + SR_PandorasBox[7].status = (emeralds == ((EMERALD7)*2)-1) ? (IT_GRAYEDOUT) : (IT_STRING | IT_CALL); M_SetupNextMenu(&SR_PandoraDef); } @@ -5347,12 +5366,24 @@ static void M_UltimateCheat(INT32 choice) I_Quit(); } +static void M_AllowSuper(INT32 choice) +{ + (void)choice; + + players[consoleplayer].charflags |= SF_SUPER; + M_StartMessage(M_GetText("You are now capable of turning super.\nRemember to get all the emeralds!\n"),NULL,MM_NOTHING); + SR_PandorasBox[6].status = IT_GRAYEDOUT; + + G_SetGameModified(multiplayer); +} + static void M_GetAllEmeralds(INT32 choice) { (void)choice; emeralds = ((EMERALD7)*2)-1; M_StartMessage(M_GetText("You now have all 7 emeralds.\nUse them wisely.\nWith great power comes great ring drain.\n"),NULL,MM_NOTHING); + SR_PandorasBox[7].status = IT_GRAYEDOUT; G_SetGameModified(multiplayer); } diff --git a/src/p_setup.c b/src/p_setup.c index 9c4bede74..b49018e20 100644 --- a/src/p_setup.c +++ b/src/p_setup.c @@ -3014,6 +3014,9 @@ boolean P_SetupLevel(boolean skipprecip) if (!(netgame || multiplayer) && (!modifiedgame || savemoddata)) mapvisited[gamemap-1] |= MV_VISITED; + if ((maptol & TOL_COOP) && lastcoop < gamemap) + lastcoop = gamemap; + levelloading = false; P_RunCachedActions(); From 970268ec38b794ed56e7d47c8c509fdf1ea4df96 Mon Sep 17 00:00:00 2001 From: toasterbabe Date: Fri, 15 Sep 2017 20:34:46 +0100 Subject: [PATCH 028/111] Redid that ridiculous lastcoop thing as an MV_MP thing, which also means it gets properly cleared when you load mods with new save data. --- src/doomstat.h | 2 +- src/g_game.c | 3 +-- src/m_menu.c | 32 +++++++++++++++----------------- src/p_setup.c | 5 ++--- 4 files changed, 19 insertions(+), 23 deletions(-) diff --git a/src/doomstat.h b/src/doomstat.h index 7370e8074..182f39ba4 100644 --- a/src/doomstat.h +++ b/src/doomstat.h @@ -44,7 +44,6 @@ extern INT32 cursaveslot; //extern INT16 lastmapsaved; extern INT16 lastmaploaded; extern boolean gamecomplete; -extern INT16 lastcoop; #define PRECIP_NONE 0 #define PRECIP_STORM 1 @@ -375,6 +374,7 @@ extern recorddata_t *mainrecords[NUMMAPS]; #define MV_ULTIMATE 8 #define MV_PERFECT 16 #define MV_MAX 31 // used in gamedata check +#define MV_MP 128 extern UINT8 mapvisited[NUMMAPS]; // Temporary holding place for nights data for the current map diff --git a/src/g_game.c b/src/g_game.c index 3bffd426e..cbf340a1d 100644 --- a/src/g_game.c +++ b/src/g_game.c @@ -80,7 +80,6 @@ INT32 cursaveslot = -1; // Auto-save 1p savegame slot //INT16 lastmapsaved = 0; // Last map we auto-saved at INT16 lastmaploaded = 0; // Last map the game loaded boolean gamecomplete = false; -INT16 lastcoop = 0; UINT16 mainwads = 0; boolean modifiedgame; // Set if homebrew PWAD stuff has been added. @@ -3385,7 +3384,7 @@ void G_SaveGameData(void) // TODO put another cipher on these things? meh, I don't care... for (i = 0; i < NUMMAPS; i++) - WRITEUINT8(save_p, mapvisited[i]); + WRITEUINT8(save_p, (mapvisited[i] & MV_MAX)); // To save space, use one bit per collected/achieved/unlocked flag for (i = 0; i < MAXEMBLEMS;) diff --git a/src/m_menu.c b/src/m_menu.c index 193d0dd4f..d196c739d 100644 --- a/src/m_menu.c +++ b/src/m_menu.c @@ -3827,24 +3827,22 @@ static boolean M_LevelAvailableOnPlatter(INT32 mapnum) switch (levellistmode) { case LLM_CREATESERVER: - if (mapheaderinfo[mapnum]->menuflags & LF2_NOVISITNEEDED) + if (!(mapheaderinfo[mapnum]->typeoflevel & TOL_COOP)) return true; - if (!mapvisited[mapnum] - && (mapheaderinfo[mapnum]->typeoflevel & TOL_COOP) - && (mapnum+1) > lastcoop) - return false; - - return true; - case LLM_RECORDATTACK: - case LLM_NIGHTSATTACK: - if (mapheaderinfo[mapnum]->menuflags & LF2_NOVISITNEEDED) + if (mapvisited[mapnum]) // MV_MP return true; - if (!mapvisited[mapnum]) - return false; - // intentional fallthrough + case LLM_RECORDATTACK: + case LLM_NIGHTSATTACK: + if (mapvisited[mapnum] & MV_MAX) + return true; + + if (mapheaderinfo[mapnum]->menuflags & LF2_NOVISITNEEDED) + return true; + + return false; case LLM_LEVELSELECT: default: return true; @@ -5598,7 +5596,7 @@ static void M_DrawChecklist(void) if (title) { - const char *level = ((M_MapLocked(cond[condnum].requirement) || !((mapheaderinfo[cond[condnum].requirement-1]->menuflags & LF2_NOVISITNEEDED) || mapvisited[cond[condnum].requirement-1])) ? M_CreateSecretMenuOption(title) : title); + const char *level = ((M_MapLocked(cond[condnum].requirement) || !((mapheaderinfo[cond[condnum].requirement-1]->menuflags & LF2_NOVISITNEEDED) || (mapvisited[cond[condnum].requirement-1] & MV_MAX))) ? M_CreateSecretMenuOption(title) : title); switch (cond[condnum].type) { @@ -5631,7 +5629,7 @@ static void M_DrawChecklist(void) if (title) { - const char *level = ((M_MapLocked(cond[condnum].extrainfo1) || !((mapheaderinfo[cond[condnum].extrainfo1-1]->menuflags & LF2_NOVISITNEEDED) || mapvisited[cond[condnum].extrainfo1-1])) ? M_CreateSecretMenuOption(title) : title); + const char *level = ((M_MapLocked(cond[condnum].extrainfo1) || !((mapheaderinfo[cond[condnum].extrainfo1-1]->menuflags & LF2_NOVISITNEEDED) || (mapvisited[cond[condnum].extrainfo1-1] & MV_MAX))) ? M_CreateSecretMenuOption(title) : title); switch (cond[condnum].type) { @@ -5700,7 +5698,7 @@ static void M_DrawChecklist(void) if (title) { - const char *level = ((M_MapLocked(cond[condnum].extrainfo1) || !((mapheaderinfo[cond[condnum].extrainfo1-1]->menuflags & LF2_NOVISITNEEDED) || mapvisited[cond[condnum].extrainfo1-1])) ? M_CreateSecretMenuOption(title) : title); + const char *level = ((M_MapLocked(cond[condnum].extrainfo1) || !((mapheaderinfo[cond[condnum].extrainfo1-1]->menuflags & LF2_NOVISITNEEDED) || (mapvisited[cond[condnum].extrainfo1-1] & MV_MAX))) ? M_CreateSecretMenuOption(title) : title); switch (cond[condnum].type) { @@ -6786,7 +6784,7 @@ static void M_Statistics(INT32 choice) if (!(mapheaderinfo[i]->typeoflevel & TOL_SP) || (mapheaderinfo[i]->menuflags & LF2_HIDEINSTATS)) continue; - if (!mapvisited[i]) + if (!(mapvisited[i] & MV_MAX)) continue; statsMapList[j++] = i; diff --git a/src/p_setup.c b/src/p_setup.c index b49018e20..a5666904e 100644 --- a/src/p_setup.c +++ b/src/p_setup.c @@ -3013,9 +3013,8 @@ boolean P_SetupLevel(boolean skipprecip) if (!(netgame || multiplayer) && (!modifiedgame || savemoddata)) mapvisited[gamemap-1] |= MV_VISITED; - - if ((maptol & TOL_COOP) && lastcoop < gamemap) - lastcoop = gamemap; + else + mapvisited[gamemap-1] |= MV_MP; // you want to record that you've been there this session, but not permanently levelloading = false; From 5cc8734da7466492ffd609934ce963145f362e75 Mon Sep 17 00:00:00 2001 From: TehRealSalt Date: Sun, 17 Sep 2017 21:37:36 -0400 Subject: [PATCH 029/111] Prevent bots from killing bubbles Self-explanatory. They can still breathe them in, they just no longer get popped --- src/p_inter.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/p_inter.c b/src/p_inter.c index d2101ca57..316d2f43a 100644 --- a/src/p_inter.c +++ b/src/p_inter.c @@ -1593,7 +1593,7 @@ void P_TouchSpecialThing(mobj_t *special, mobj_t *toucher, boolean heightcheck) return; // Only go in the mouth // Eaten by player! - if (player->powers[pw_underwater] && player->powers[pw_underwater] <= 12*TICRATE + 1) + if ((!player->bot) && (player->powers[pw_underwater] && player->powers[pw_underwater] <= 12*TICRATE + 1)) P_RestoreMusic(player); if (player->powers[pw_underwater] < underwatertics + 1) @@ -1606,7 +1606,11 @@ void P_TouchSpecialThing(mobj_t *special, mobj_t *toucher, boolean heightcheck) } toucher->momx = toucher->momy = toucher->momz = 0; - break; + + if (player->bot) + return; + else + break; case MT_WATERDROP: if (special->state == &states[special->info->spawnstate]) From ce0a49ede5f3bfb8e54262b3431bdd80b2f8796e Mon Sep 17 00:00:00 2001 From: TehRealSalt Date: Sun, 17 Sep 2017 22:30:48 -0400 Subject: [PATCH 030/111] Add jump & spin joystick axis Lets you set jump/spin to Xbox controller triggers, like you can with fire/nfire --- src/d_netcmd.c | 4 ++++ src/g_game.c | 33 +++++++++++++++++++++++++++++---- src/g_game.h | 4 ++-- src/m_menu.c | 14 +++++++++----- 4 files changed, 44 insertions(+), 11 deletions(-) diff --git a/src/d_netcmd.c b/src/d_netcmd.c index 7f408a2b5..c37d7be2b 100644 --- a/src/d_netcmd.c +++ b/src/d_netcmd.c @@ -724,6 +724,10 @@ void D_RegisterClientCommands(void) CV_RegisterVar(&cv_moveaxis2); CV_RegisterVar(&cv_lookaxis); CV_RegisterVar(&cv_lookaxis2); + CV_RegisterVar(&cv_jumpaxis); + CV_RegisterVar(&cv_jumpaxis2); + CV_RegisterVar(&cv_spinaxis); + CV_RegisterVar(&cv_spinaxis2); CV_RegisterVar(&cv_fireaxis); CV_RegisterVar(&cv_fireaxis2); CV_RegisterVar(&cv_firenaxis); diff --git a/src/g_game.c b/src/g_game.c index e996938ab..63055a8c4 100644 --- a/src/g_game.c +++ b/src/g_game.c @@ -376,6 +376,8 @@ typedef enum AXISLOOK, AXISSTRAFE, AXISDEAD, //Axises that don't want deadzones + AXISJUMP, + AXISSPIN, AXISFIRE, AXISFIRENORMAL, } axis_input_e; @@ -415,6 +417,10 @@ consvar_t cv_fireaxis = {"joyaxis_fire", "None", CV_SAVE, joyaxis_cons_t, NULL, consvar_t cv_firenaxis = {"joyaxis_firenormal", "None", CV_SAVE, joyaxis_cons_t, NULL, 0, NULL, NULL, 0, 0, NULL}; #endif +// Yeeeah I don't think I'm gonna sort out this giant if else end chain to add defaults to these :V +consvar_t cv_jumpaxis = {"joyaxis_jump", "None", CV_SAVE, joyaxis_cons_t, NULL, 0, NULL, NULL, 0, 0, NULL}; +consvar_t cv_spinaxis = {"joyaxis_spin", "None", CV_SAVE, joyaxis_cons_t, NULL, 0, NULL, NULL, 0, 0, NULL}; + #if defined (_WII) || defined (WMINPUT) consvar_t cv_turnaxis2 = {"joyaxis2_turn", "LStick.X", CV_SAVE, joyaxis_cons_t, NULL, 0, NULL, NULL, 0, 0, NULL}; consvar_t cv_moveaxis2 = {"joyaxis2_move", "LStick.Y", CV_SAVE, joyaxis_cons_t, NULL, 0, NULL, NULL, 0, 0, NULL}; @@ -442,6 +448,9 @@ consvar_t cv_fireaxis2 = {"joyaxis2_fire", "None", CV_SAVE, joyaxis_cons_t, NULL consvar_t cv_firenaxis2 = {"joyaxis2_firenormal", "None", CV_SAVE, joyaxis_cons_t, NULL, 0, NULL, NULL, 0, 0, NULL}; #endif +// :rolling_eyes: +consvar_t cv_jumpaxis2 = {"joyaxis2_jump", "None", CV_SAVE, joyaxis_cons_t, NULL, 0, NULL, NULL, 0, 0, NULL}; +consvar_t cv_spinaxis2 = {"joyaxis2_spin", "None", CV_SAVE, joyaxis_cons_t, NULL, 0, NULL, NULL, 0, 0, NULL}; #if MAXPLAYERS > 32 #error "please update player_name table using the new value for MAXPLAYERS" @@ -804,6 +813,12 @@ static INT32 JoyAxis(axis_input_e axissel) case AXISSTRAFE: axisval = cv_sideaxis.value; break; + case AXISJUMP: + axisval = cv_jumpaxis.value; + break; + case AXISSPIN: + axisval = cv_spinaxis.value; + break; case AXISFIRE: axisval = cv_fireaxis.value; break; @@ -881,6 +896,12 @@ static INT32 Joy2Axis(axis_input_e axissel) case AXISSTRAFE: axisval = cv_sideaxis2.value; break; + case AXISJUMP: + axisval = cv_jumpaxis2.value; + break; + case AXISSPIN: + axisval = cv_spinaxis2.value; + break; case AXISFIRE: axisval = cv_fireaxis2.value; break; @@ -1123,7 +1144,8 @@ void G_BuildTiccmd(ticcmd_t *cmd, INT32 realtics) cmd->buttons |= BT_CUSTOM3; // use with any button/key - if (PLAYER1INPUTDOWN(gc_use)) + axis = JoyAxis(AXISSPIN); + if (PLAYER1INPUTDOWN(gc_use) || (cv_usejoystick.value && axis > 0)) cmd->buttons |= BT_USE; if (PLAYER1INPUTDOWN(gc_camreset)) @@ -1136,7 +1158,8 @@ void G_BuildTiccmd(ticcmd_t *cmd, INT32 realtics) resetdown = false; // jump button - if (PLAYER1INPUTDOWN(gc_jump)) + axis = JoyAxis(AXISJUMP); + if (PLAYER1INPUTDOWN(gc_jump) || (cv_usejoystick.value && axis > 0)) cmd->buttons |= BT_JUMP; // player aiming shit, ahhhh... @@ -1418,7 +1441,8 @@ void G_BuildTiccmd2(ticcmd_t *cmd, INT32 realtics) cmd->buttons |= BT_CUSTOM3; // use with any button/key - if (PLAYER2INPUTDOWN(gc_use)) + axis = Joy2Axis(AXISSPIN); + if (PLAYER2INPUTDOWN(gc_use) || (cv_usejoystick2.value && axis > 0)) cmd->buttons |= BT_USE; if (PLAYER2INPUTDOWN(gc_camreset)) @@ -1431,7 +1455,8 @@ void G_BuildTiccmd2(ticcmd_t *cmd, INT32 realtics) resetdown = false; // jump button - if (PLAYER2INPUTDOWN(gc_jump)) + axis = Joy2Axis(AXISJUMP); + if (PLAYER2INPUTDOWN(gc_jump) || (cv_usejoystick2.value && axis > 0)) cmd->buttons |= BT_JUMP; // player aiming shit, ahhhh... diff --git a/src/g_game.h b/src/g_game.h index 72a6f3d6e..577ea0c7d 100644 --- a/src/g_game.h +++ b/src/g_game.h @@ -59,8 +59,8 @@ extern consvar_t cv_invertmouse, cv_alwaysfreelook, cv_mousemove; extern consvar_t cv_invertmouse2, cv_alwaysfreelook2, cv_mousemove2; extern consvar_t cv_useranalog, cv_useranalog2; extern consvar_t cv_analog, cv_analog2; -extern consvar_t cv_sideaxis,cv_turnaxis,cv_moveaxis,cv_lookaxis,cv_fireaxis,cv_firenaxis; -extern consvar_t cv_sideaxis2,cv_turnaxis2,cv_moveaxis2,cv_lookaxis2,cv_fireaxis2,cv_firenaxis2; +extern consvar_t cv_sideaxis,cv_turnaxis,cv_moveaxis,cv_lookaxis,cv_jumpaxis,cv_spinaxis,cv_fireaxis,cv_firenaxis; +extern consvar_t cv_sideaxis2,cv_turnaxis2,cv_moveaxis2,cv_lookaxis2,cv_jumpaxis2,cv_spinaxis2,cv_fireaxis2,cv_firenaxis2; extern consvar_t cv_ghost_bestscore, cv_ghost_besttime, cv_ghost_bestrings, cv_ghost_last, cv_ghost_guest; // mouseaiming (looking up/down with the mouse or keyboard) diff --git a/src/m_menu.c b/src/m_menu.c index 64255e71a..eca88ae42 100644 --- a/src/m_menu.c +++ b/src/m_menu.c @@ -1130,13 +1130,15 @@ static menuitem_t OP_ChangeControlsMenu[] = static menuitem_t OP_Joystick1Menu[] = { - {IT_STRING | IT_CALL, NULL, "Select Joystick...", M_Setup1PJoystickMenu, 10}, + {IT_STRING | IT_CALL, NULL, "Select Joystick...", M_Setup1PJoystickMenu, 10}, {IT_STRING | IT_CVAR, NULL, "Move \x17 Axis" , &cv_moveaxis , 30}, {IT_STRING | IT_CVAR, NULL, "Move \x18 Axis" , &cv_sideaxis , 40}, {IT_STRING | IT_CVAR, NULL, "Camera \x17 Axis" , &cv_lookaxis , 50}, {IT_STRING | IT_CVAR, NULL, "Camera \x18 Axis" , &cv_turnaxis , 60}, - {IT_STRING | IT_CVAR, NULL, "Fire Axis" , &cv_fireaxis , 70}, - {IT_STRING | IT_CVAR, NULL, "Fire Normal Axis" , &cv_firenaxis , 80}, + {IT_STRING | IT_CVAR, NULL, "Jump Axis" , &cv_jumpaxis , 70}, + {IT_STRING | IT_CVAR, NULL, "Spin Axis" , &cv_spinaxis , 80}, + {IT_STRING | IT_CVAR, NULL, "Fire Axis" , &cv_fireaxis , 90}, + {IT_STRING | IT_CVAR, NULL, "Fire Normal Axis" , &cv_firenaxis ,100}, }; static menuitem_t OP_Joystick2Menu[] = @@ -1146,8 +1148,10 @@ static menuitem_t OP_Joystick2Menu[] = {IT_STRING | IT_CVAR, NULL, "Move \x18 Axis" , &cv_sideaxis2 , 40}, {IT_STRING | IT_CVAR, NULL, "Camera \x17 Axis" , &cv_lookaxis2 , 50}, {IT_STRING | IT_CVAR, NULL, "Camera \x18 Axis" , &cv_turnaxis2 , 60}, - {IT_STRING | IT_CVAR, NULL, "Fire Axis" , &cv_fireaxis2 , 70}, - {IT_STRING | IT_CVAR, NULL, "Fire Normal Axis" , &cv_firenaxis2 , 80}, + {IT_STRING | IT_CVAR, NULL, "Jump Axis" , &cv_jumpaxis2 , 70}, + {IT_STRING | IT_CVAR, NULL, "Spin Axis" , &cv_spinaxis2 , 80}, + {IT_STRING | IT_CVAR, NULL, "Fire Axis" , &cv_fireaxis2 , 90}, + {IT_STRING | IT_CVAR, NULL, "Fire Normal Axis" , &cv_firenaxis2 ,100}, }; static menuitem_t OP_JoystickSetMenu[] = From 918edda67213dcb403e39aae5e90f454037b3842 Mon Sep 17 00:00:00 2001 From: toasterbabe Date: Fri, 15 Sep 2017 20:34:46 +0100 Subject: [PATCH 031/111] * Make exitlevel only work if someone's at the exit or you've visited the next map before. * Added a message to suggest changing cheats before release to a future self. * Removed the gametype selection menu, and baked its contents into the level platter instead (with an additional dose of pretty - https://cdn.discordapp.com/attachments/293238104096112641/359338275338584064/unknown.png) --- src/d_netcmd.c | 21 ++++ src/m_cheat.c | 4 + src/m_menu.c | 273 +++++++++++++++++++++++++------------------------ src/m_menu.h | 1 + 4 files changed, 164 insertions(+), 135 deletions(-) diff --git a/src/d_netcmd.c b/src/d_netcmd.c index 7f408a2b5..b6558c58b 100644 --- a/src/d_netcmd.c +++ b/src/d_netcmd.c @@ -3895,7 +3895,28 @@ static void Command_ExitLevel_f(void) else if (gamestate != GS_LEVEL || demoplayback) CONS_Printf(M_GetText("You must be in a level to use this.\n")); else + { + if ((netgame || multiplayer) + && ((mapheaderinfo[gamemap-1]->nextlevel <= 0) + || (mapheaderinfo[gamemap-1]->nextlevel > NUMMAPS) + || !(mapvisited[mapheaderinfo[gamemap-1]->nextlevel-1]))) + { + UINT8 i; + for (i = 0; i < MAXPLAYERS; i++) + { + if (playeringame[i] && players[i].exiting) + break; + } + + if (i == MAXPLAYERS) + { + CONS_Printf(M_GetText("Someone must finish the level for you to use this.\n")); + return; + } + } + SendNetXCmd(XD_EXITLEVEL, NULL, 0); + } } static void Got_ExitLevelcmd(UINT8 **cp, INT32 playernum) diff --git a/src/m_cheat.c b/src/m_cheat.c index f988c0fd5..2c17203bc 100644 --- a/src/m_cheat.c +++ b/src/m_cheat.c @@ -131,6 +131,10 @@ static cheatseq_t cheat_ultimate_joy = { SCRAMBLE(KEY_ENTER), 0xff } }; +#ifndef DEVELOP +Probably time to change these cheats? +#endif + static cheatseq_t cheat_warp = { 0, cheatf_warp, { SCRAMBLE('r'), SCRAMBLE('e'), SCRAMBLE('d'), SCRAMBLE('x'), SCRAMBLE('v'), SCRAMBLE('i'), 0xff } diff --git a/src/m_menu.c b/src/m_menu.c index d196c739d..c1b1479fb 100644 --- a/src/m_menu.c +++ b/src/m_menu.c @@ -254,7 +254,6 @@ static void M_Options(INT32 choice); static void M_SelectableClearMenus(INT32 choice); static void M_Retry(INT32 choice); static void M_EndGame(INT32 choice); -static void M_GameTypeChange(INT32 choice); static void M_MapChange(INT32 choice); static void M_ChangeLevel(INT32 choice); static void M_ConfirmSpectate(INT32 choice); @@ -352,7 +351,6 @@ static void M_DrawSkyRoom(void); static void M_DrawChecklist(void); static void M_DrawEmblemHints(void); static void M_DrawPauseMenu(void); -static void M_DrawGameTypeMenu(void); static void M_DrawServerMenu(void); static void M_DrawLevelPlatterMenu(void); static void M_DrawImageDef(void); @@ -545,7 +543,7 @@ static menuitem_t MPauseMenu[] = { {IT_STRING | IT_CALL, NULL, "Add-ons...", M_Addons, 8}, {IT_STRING | IT_SUBMENU, NULL, "Scramble Teams...", &MISC_ScrambleTeamDef, 16}, - {IT_STRING | IT_CALL, NULL, "Switch Gametype/Level...", M_GameTypeChange, 24}, + {IT_STRING | IT_CALL, NULL, "Switch Gametype/Level...", M_MapChange, 24}, {IT_STRING | IT_CALL, NULL, "Continue", M_SelectableClearMenus,40}, {IT_STRING | IT_CALL, NULL, "Player 1 Setup", M_SetupMultiPlayer, 48}, // splitscreen @@ -628,32 +626,16 @@ static menuitem_t MISC_ChangeTeamMenu[] = {IT_WHITESTRING|IT_CALL, NULL, "Confirm", M_ConfirmTeamChange, 90}, }; -static menuitem_t MISC_ChangeGameTypeMenu[] = -{ - {IT_STRING|IT_CALL, NULL, "Co-op", M_MapChange, 0}, - - {IT_STRING|IT_CALL, NULL, "Competition", M_MapChange, 12}, - {IT_STRING|IT_CALL, NULL, "Race", M_MapChange, 20}, - - {IT_STRING|IT_CALL, NULL, "Match", M_MapChange, 32}, - {IT_STRING|IT_CALL, NULL, "Team Match", M_MapChange, 40}, - - {IT_STRING|IT_CALL, NULL, "Tag", M_MapChange, 52}, - {IT_STRING|IT_CALL, NULL, "Hide & Seek", M_MapChange, 60}, - - {IT_STRING|IT_CALL, NULL, "Capture the Flag", M_MapChange, 72}, -}; - static const gtdesc_t gametypedesc[] = { - {"Play through the single-player campaign with your friends, teaming up to beat Dr Eggman's nefarious challenges!"}, - {"Speed your way through the main acts, competing in several different categories to see who's the best."}, - {"There's not much to it - zoom through the level faster than everyone else."}, - {"Sling rings at your foes in a free-for-all battle. Use the special weapon rings to your advantage!"}, - {"Sling rings at your foes in a color-coded battle. Use the special weapon rings to your advantage!"}, - {"Whoever's IT has to hunt down everyone else. If you get caught, you have to turn on your former friends!"}, - {"Try and find a good hiding place in these maps - we dare you."}, - {"Steal the flag from the enemy's base and bring it back to your own, but watch out - they could just as easily steal yours!"}, + {{ 54, 54}, "Play through the single-player campaign with your friends, teaming up to beat Dr Eggman's nefarious challenges!"}, + {{103, 103}, "Speed your way through the main acts, competing in several different categories to see who's the best."}, + {{190, 190}, "There's not much to it - zoom through the level faster than everyone else."}, + {{ 66, 66}, "Sling rings at your foes in a free-for-all battle. Use the special weapon rings to your advantage!"}, + {{153, 37}, "Sling rings at your foes in a color-coded battle. Use the special weapon rings to your advantage!"}, + {{123, 123}, "Whoever's IT has to hunt down everyone else. If you get caught, you have to turn on your former friends!"}, + {{135, 135}, "Try and find a good hiding place in these maps - we dare you."}, + {{ 37, 153}, "Steal the flag from the enemy's base and bring it back to your own, but watch out - they could just as easily steal yours!"}, }; static menuitem_t MISC_ChangeLevelMenu[] = @@ -930,7 +912,7 @@ static menuitem_t SP_PlayerMenu[] = // Separated splitscreen and normal servers. static menuitem_t MP_SplitServerMenu[] = { - {IT_STRING|IT_CALL, NULL, "Select Gametype/Level...", M_GameTypeChange, 100}, + {IT_STRING|IT_CALL, NULL, "Select Gametype/Level...", M_MapChange, 100}, #ifdef NONET // In order to keep player setup accessible. {IT_STRING|IT_CALL, NULL, "Player 1 setup...", M_SetupMultiPlayer, 110}, {IT_STRING|IT_CALL, NULL, "Player 2 setup...", M_SetupMultiPlayer2, 120}, @@ -960,7 +942,7 @@ static menuitem_t MP_ServerMenu[] = {IT_STRING|IT_CVAR|IT_CV_STRING, NULL, "Server Name", &cv_servername, 20}, {IT_STRING|IT_CVAR, NULL, "Max Players", &cv_maxplayers, 46}, {IT_STRING|IT_CVAR, NULL, "Allow Add-on Downloading", &cv_downloading, 56}, - {IT_STRING|IT_CALL, NULL, "Select Gametype/Level...", M_GameTypeChange, 100}, + {IT_STRING|IT_CALL, NULL, "Select Gametype/Level...", M_MapChange, 100}, {IT_STRING|IT_CALL, NULL, "More Options...", M_ServerOptions, 130}, {IT_WHITESTRING|IT_CALL, NULL, "Start", M_StartServer, 140}, }; @@ -1507,22 +1489,11 @@ menu_t MISC_ScrambleTeamDef = DEFAULTMENUSTYLE(NULL, MISC_ScrambleTeamMenu, &MPa menu_t MISC_ChangeTeamDef = DEFAULTMENUSTYLE(NULL, MISC_ChangeTeamMenu, &MPauseDef, 27, 40); // MP Gametype and map change menu -menu_t MISC_ChangeGameTypeDef = -{ - NULL, - sizeof (MISC_ChangeGameTypeMenu)/sizeof (menuitem_t), - &MainDef, // Doesn't matter. - MISC_ChangeGameTypeMenu, - M_DrawGameTypeMenu, - 30, (200 - (72+8))/2, // vertically centering - 0, - NULL -}; menu_t MISC_ChangeLevelDef = { NULL, sizeof (MISC_ChangeLevelMenu)/sizeof (menuitem_t), - &MISC_ChangeGameTypeDef, + &MainDef, // Doesn't matter. MISC_ChangeLevelMenu, M_DrawLevelPlatterMenu, 0, 0, @@ -2538,21 +2509,11 @@ boolean M_Responder(event_t *ev) case KEY_DOWNARROW: M_NextOpt(); S_StartSound(NULL, sfx_menu1); - if (currentMenu == &MISC_ChangeGameTypeDef) - { - Z_Free(char_notes); - char_notes = NULL; - } return true; case KEY_UPARROW: M_PrevOpt(); S_StartSound(NULL, sfx_menu1); - if (currentMenu == &MISC_ChangeGameTypeDef) - { - Z_Free(char_notes); - char_notes = NULL; - } return true; case KEY_LEFTARROW: @@ -3981,6 +3942,9 @@ static INT32 M_CountRowsToShowOnPlatter(INT32 gt) mapnum++; } + if (levellistmode == LLM_CREATESERVER) + rows++; + return rows; } @@ -3990,10 +3954,10 @@ static INT32 M_CountRowsToShowOnPlatter(INT32 gt) // Prepares a tasty dish of zones and acts! // Call before any attempt to access a level platter. // -static boolean M_PrepareLevelPlatter(INT32 gt) +static boolean M_PrepareLevelPlatter(INT32 gt, boolean nextmappick) { INT32 numrows = M_CountRowsToShowOnPlatter(gt); - INT32 mapnum = 0, prevmapnum = 0, col = 0, row = 0; + INT32 mapnum = 0, prevmapnum = 0, col = 0, row = 0, startrow = 0; if (!numrows) return false; @@ -4010,6 +3974,17 @@ static boolean M_PrepareLevelPlatter(INT32 gt) // done here so lsrow and lscol can be set if cv_nextmap is on the platter lsrow = lscol = lshli = lsoffs[0] = lsoffs[1] = 0; + if (levellistmode == LLM_CREATESERVER) + { + sprintf(levelselect.rows[0].header, "Gametype"); + lswide(0) = true; + levelselect.rows[row].mapavailable[2] = levelselect.rows[row].mapavailable[1] = levelselect.rows[row].mapavailable[0] = false; + startrow = row = 1; + + Z_Free(char_notes); + char_notes = NULL; + } + while (mapnum < NUMMAPS) { if (M_CanShowLevelOnPlatter(mapnum, gt)) @@ -4019,7 +3994,7 @@ static boolean M_PrepareLevelPlatter(INT32 gt) const boolean wide = (mapheaderinfo[mapnum]->menuflags & LF2_WIDEICON); // preparing next position to drop mapnum into - if (levelselect.rows[0].maplist[0]) + if (levelselect.rows[startrow].maplist[0]) { if (col == 2 // no more space on the row? || wide @@ -4042,7 +4017,7 @@ static boolean M_PrepareLevelPlatter(INT32 gt) levelselect.rows[row].mapavailable[2] = levelselect.rows[row].mapavailable[1] = levelselect.rows[row].mapavailable[0]; } - if (cv_nextmap.value == mapnum+1) // A little quality of life improvement. + if (nextmappick && cv_nextmap.value == mapnum+1) // A little quality of life improvement. { lsrow = row; lscol = col; @@ -4084,7 +4059,7 @@ static boolean M_PrepareLevelPlatter(INT32 gt) sprintf(levelselect.rows[row].mapnames[col], "???"); // creating header text - if (!col && (!row || !(fastcmp(mapheaderinfo[mapnum]->selectheading, mapheaderinfo[levelselect.rows[row-1].maplist[0]-1]->selectheading)))) + if (!col && ((row == startrow) || !(fastcmp(mapheaderinfo[mapnum]->selectheading, mapheaderinfo[levelselect.rows[row-1].maplist[0]-1]->selectheading)))) { if (!levelselect.rows[row].mapavailable[col]) sprintf(levelselect.rows[row].header, "???"); @@ -4126,12 +4101,11 @@ static boolean M_PrepareLevelPlatter(INT32 gt) return true; } -#define selectvalnextmapnobrace(column) selectval = levelselect.rows[lsrow].maplist[column];\ - if (selectval && levelselect.rows[lsrow].mapavailable[column])\ +#define ifselectvalnextmapnobrace(column) if ((selectval = levelselect.rows[lsrow].maplist[column]) && levelselect.rows[lsrow].mapavailable[column])\ {\ CV_SetValue(&cv_nextmap, selectval); -#define selectvalnextmap(column) selectvalnextmapnobrace(column)} +#define ifselectvalnextmap(column) ifselectvalnextmapnobrace(column)} // // M_HandleLevelPlatter @@ -4158,7 +4132,7 @@ static void M_HandleLevelPlatter(INT32 choice) S_StartSound(NULL,sfx_s3kb7); - selectvalnextmap(lscol) else selectvalnextmap(0) + ifselectvalnextmap(lscol) else ifselectvalnextmap(0) break; case KEY_UPARROW: @@ -4181,35 +4155,59 @@ static void M_HandleLevelPlatter(INT32 choice) S_StartSound(NULL,sfx_s3kb7); - selectvalnextmap(lscol) else selectvalnextmap(0) + ifselectvalnextmap(lscol) else ifselectvalnextmap(0) break; - case KEY_LEFTARROW: - if (lscol > 0) + case KEY_ENTER: + if (!(levellistmode == LLM_CREATESERVER && !lsrow)) { - lscol--; - - lsoffs[1] = (lswide(lsrow) ? -8 : lshseperation); - S_StartSound(NULL,sfx_s3kb7); - - selectvalnextmap(lscol) else selectvalnextmap(0) + ifselectvalnextmapnobrace(lscol) + lsoffs[0] = lsoffs[1] = 0; + S_StartSound(NULL,sfx_menu1); + if (gamestate == GS_TIMEATTACK) + M_SetupNextMenu(currentMenu->prevMenu); + else if (currentMenu == &MISC_ChangeLevelDef) + { + if (currentMenu->prevMenu && currentMenu->prevMenu != &MPauseDef) + M_SetupNextMenu(currentMenu->prevMenu); + else + M_ChangeLevel(0); + Z_Free(levelselect.rows); + levelselect.rows = NULL; + } + else + M_LevelSelectWarp(0); + Nextmap_OnChange(); + } + else if (!lsoffs[0]) // prevent sound spam + { + lsoffs[0] = -8; + S_StartSound(NULL,sfx_s3kb2); + } + break; } - else if (!lsoffs[1]) // prevent sound spam - { - lsoffs[1] = -8; - S_StartSound(NULL,sfx_s3kb7); - } - break; - + // intentionall fallthrough case KEY_RIGHTARROW: - if (lscol < 2) + if (levellistmode == LLM_CREATESERVER && !lsrow) + { + CV_AddValue(&cv_newgametype, 1); + S_StartSound(NULL,sfx_menu1); + lscol = 0; + + Z_Free(char_notes); + char_notes = NULL; + + if (!M_PrepareLevelPlatter(cv_newgametype.value, false)) + I_Error("Unidentified level platter failure!"); + } + else if (lscol < 2) { lscol++; lsoffs[1] = (lswide(lsrow) ? 8 : -lshseperation); S_StartSound(NULL,sfx_s3kb7); - selectvalnextmap(lscol) else selectvalnextmap(0) + ifselectvalnextmap(lscol) else ifselectvalnextmap(0) } else if (!lsoffs[1]) // prevent sound spam { @@ -4218,30 +4216,32 @@ static void M_HandleLevelPlatter(INT32 choice) } break; - case KEY_ENTER: - selectvalnextmapnobrace(lscol) - - lsoffs[0] = lsoffs[1] = 0; - S_StartSound(NULL,sfx_menu1); - if (gamestate == GS_TIMEATTACK) - M_SetupNextMenu(currentMenu->prevMenu); - else if (currentMenu == &MISC_ChangeLevelDef) - { - if (currentMenu->prevMenu && currentMenu->prevMenu->prevMenu != &MPauseDef) - M_SetupNextMenu(currentMenu->prevMenu->prevMenu); - else - M_ChangeLevel(0); - Z_Free(levelselect.rows); - levelselect.rows = NULL; - } - else - M_LevelSelectWarp(0); - Nextmap_OnChange(); - } - else if (!lsoffs[0]) // prevent sound spam + case KEY_LEFTARROW: + if (levellistmode == LLM_CREATESERVER && !lsrow) { - lsoffs[0] = -8; - S_StartSound(NULL,sfx_s3kb2); + CV_AddValue(&cv_newgametype, -1); + S_StartSound(NULL,sfx_menu1); + lscol = 0; + + Z_Free(char_notes); + char_notes = NULL; + + if (!M_PrepareLevelPlatter(cv_newgametype.value, false)) + I_Error("Unidentified level platter failure!"); + } + else if (lscol > 0) + { + lscol--; + + lsoffs[1] = (lswide(lsrow) ? -8 : lshseperation); + S_StartSound(NULL,sfx_s3kb7); + + ifselectvalnextmap(lscol) else ifselectvalnextmap(0) + } + else if (!lsoffs[1]) // prevent sound spam + { + lsoffs[1] = -8; + S_StartSound(NULL,sfx_s3kb7); } break; @@ -4262,8 +4262,12 @@ static void M_HandleLevelPlatter(INT32 choice) } else M_ClearMenus(true); + Z_Free(levelselect.rows); levelselect.rows = NULL; + + Z_Free(char_notes); + char_notes = NULL; } } @@ -4377,7 +4381,28 @@ static void M_DrawLevelPlatterRow(UINT8 row, INT32 y) y += lsheadingheight; } - if (lswide(row)) + if (levellistmode == LLM_CREATESERVER && !row) + { + if (!char_notes) + char_notes = V_WordWrap(0, 282 - 8, V_ALLOWLOWERCASE, gametypedesc[cv_newgametype.value].notes); + + V_DrawFill(lsbasex, y, 282, 50, 27); + V_DrawString(lsbasex + 4, y + 4, V_RETURN8|V_ALLOWLOWERCASE, char_notes); + + V_DrawFill(lsbasex, y+50, 141, 8, gametypedesc[cv_newgametype.value].col[0]); + V_DrawFill(lsbasex+141, y+50, 141, 8, gametypedesc[cv_newgametype.value].col[1]); + + V_DrawString(lsbasex, y+50, 0, gametype_cons_t[cv_newgametype.value].strvalue); + + if (!lsrow) + { + V_DrawCharacter(lsbasex - 10 - (skullAnimCounter/5), y+25, + '\x1C' | V_YELLOWMAP, false); + V_DrawCharacter(lsbasex+282 + 2 + (skullAnimCounter/5), y+25, + '\x1D' | V_YELLOWMAP, false); + } + } + else if (lswide(row)) M_DrawLevelPlatterWideMap(row, 0, lsbasex, y, rowhighlight); else { @@ -4411,10 +4436,13 @@ static void M_DrawLevelPlatterMenu(void) } // draw cursor box - V_DrawSmallScaledPatch(lsbasex + cursorx + lsoffs[1], lsbasey, 0, (levselp[sizeselect][((skullAnimCounter/4) ? 1 : 0)])); + if (levellistmode != LLM_CREATESERVER || lsrow) + V_DrawSmallScaledPatch(lsbasex + cursorx + lsoffs[1], lsbasey, 0, (levselp[sizeselect][((skullAnimCounter/4) ? 1 : 0)])); +#if 0 if (levelselect.rows[lsrow].maplist[lscol]) V_DrawScaledPatch(lsbasex + cursorx-17, lsbasey+50+lsoffs[0], 0, W_CachePatchName("M_CURSOR", PU_CACHE)); +#endif // handle movement of cursor box if (abs(lsoffs[0]) > 1) @@ -6012,7 +6040,7 @@ static void M_CustomLevelSelect(INT32 choice) levellistmode = LLM_LEVELSELECT; maplistoption = (UINT8)(unlockables[ul].variable); - if (!M_PrepareLevelPlatter(-1)) + if (!M_PrepareLevelPlatter(-1, true)) { M_StartMessage(M_GetText("No selectable levels found.\n"),NULL,MM_NOTHING); return; @@ -6044,7 +6072,7 @@ static void M_LoadGameLevelSelect(INT32 choice) levellistmode = LLM_LEVELSELECT; maplistoption = 1; - if (!M_PrepareLevelPlatter(-1)) + if (!M_PrepareLevelPlatter(-1, true)) { M_StartMessage(M_GetText("No selectable levels found.\n"),NULL,MM_NOTHING); return; @@ -7181,7 +7209,7 @@ static void M_TimeAttack(INT32 choice) SP_TimeAttackDef.prevMenu = &MainDef; levellistmode = LLM_RECORDATTACK; // Don't be dependent on cv_newgametype - if (!M_PrepareLevelPlatter(-1)) + if (!M_PrepareLevelPlatter(-1, true)) { M_StartMessage(M_GetText("No record-attackable levels found.\n"),NULL,MM_NOTHING); return; @@ -7358,7 +7386,7 @@ static void M_NightsAttack(INT32 choice) SP_NightsAttackDef.prevMenu = &MainDef; levellistmode = LLM_NIGHTSATTACK; // Don't be dependent on cv_newgametype - if (!M_PrepareLevelPlatter(-1)) + if (!M_PrepareLevelPlatter(-1, true)) { M_StartMessage(M_GetText("No NiGHTS-attackable levels found.\n"),NULL,MM_NOTHING); return; @@ -8063,42 +8091,17 @@ static void M_DrawServerMenu(void) } } -static void M_GameTypeChange(INT32 choice) +static void M_MapChange(INT32 choice) { (void)choice; - MISC_ChangeGameTypeDef.prevMenu = currentMenu; - M_SetupNextMenu(&MISC_ChangeGameTypeDef); - if (Playing()) - itemOn = gametype; - - Z_Free(char_notes); - char_notes = NULL; -} - -void M_DrawGameTypeMenu(void) -{ - M_DrawGenericMenu(); - M_DrawLevelPlatterHeader(currentMenu->y - lsheadingheight, "Select Gametype", true, false); - - if (!char_notes) - char_notes = V_WordWrap(0, (160 - 30) - 8, V_ALLOWLOWERCASE, gametypedesc[itemOn].notes); - - V_DrawFill(160, currentMenu->y, (160 - 30), 72 + 8, 159); - V_DrawString(164, currentMenu->y + 4, V_RETURN8|V_ALLOWLOWERCASE, char_notes); -} - -static void M_MapChange(INT32 choice) -{ MISC_ChangeLevelDef.prevMenu = currentMenu; levellistmode = LLM_CREATESERVER; - CV_SetValue(&cv_newgametype, choice); - - if (Playing() && !(M_CanShowLevelOnPlatter(cv_nextmap.value-1, choice)) && (M_CanShowLevelOnPlatter(gamemap-1, choice))) + if (Playing() && !(M_CanShowLevelOnPlatter(cv_nextmap.value-1, cv_newgametype.value)) && (M_CanShowLevelOnPlatter(gamemap-1, cv_newgametype.value))) CV_SetValue(&cv_nextmap, gamemap); - if (!M_PrepareLevelPlatter(choice)) + if (!M_PrepareLevelPlatter(cv_newgametype.value, (currentMenu == &MPauseDef))) { M_StartMessage(M_GetText("No selectable levels found.\n"),NULL,MM_NOTHING); return; diff --git a/src/m_menu.h b/src/m_menu.h index 53dc266d1..5d15dde19 100644 --- a/src/m_menu.h +++ b/src/m_menu.h @@ -201,6 +201,7 @@ typedef struct // descriptions for gametype select screen typedef struct { + UINT8 col[2]; char notes[441]; } gtdesc_t; From 5bd71970adc754528e128b9769331a5fed84afe2 Mon Sep 17 00:00:00 2001 From: toasterbabe Date: Fri, 15 Sep 2017 20:34:46 +0100 Subject: [PATCH 032/111] Make chat visible in the evaluation gamestate. --- src/console.c | 4 +++- src/d_main.c | 1 + src/g_game.c | 8 +++----- 3 files changed, 7 insertions(+), 6 deletions(-) diff --git a/src/console.c b/src/console.c index 54fde7af7..fe865abe6 100644 --- a/src/console.c +++ b/src/console.c @@ -1632,6 +1632,8 @@ void CON_Drawer(void) if (con_curlines > 0) CON_DrawConsole(); - else if (gamestate == GS_LEVEL || gamestate == GS_INTERMISSION || gamestate == GS_CUTSCENE || gamestate == GS_CREDITS) + else if (gamestate == GS_LEVEL + || gamestate == GS_INTERMISSION || gamestate == GS_CUTSCENE + || gamestate == GS_CREDITS || gamestate == GS_EVALUATION) CON_DrawHudlines(); } diff --git a/src/d_main.c b/src/d_main.c index 7a8a85f25..ff9dd22c2 100644 --- a/src/d_main.c +++ b/src/d_main.c @@ -352,6 +352,7 @@ static void D_Display(void) case GS_EVALUATION: F_GameEvaluationDrawer(); + HU_Erase(); HU_Drawer(); break; diff --git a/src/g_game.c b/src/g_game.c index cbf340a1d..0c42a9587 100644 --- a/src/g_game.c +++ b/src/g_game.c @@ -1798,7 +1798,6 @@ boolean G_Responder(event_t *ev) return true; } } - else if (gamestate == GS_CREDITS) { if (HU_Responder(ev)) @@ -1810,17 +1809,15 @@ boolean G_Responder(event_t *ev) return true; } } - else if (gamestate == GS_CONTINUING) { if (F_ContinueResponder(ev)) return true; } // Demo End - else if (gamestate == GS_GAMEEND || gamestate == GS_EVALUATION || gamestate == GS_CREDITS) + else if (gamestate == GS_GAMEEND) return true; - - else if (gamestate == GS_INTERMISSION) + else if (gamestate == GS_INTERMISSION || gamestate == GS_EVALUATION) if (HU_Responder(ev)) return true; // chat ate the event @@ -1977,6 +1974,7 @@ void G_Ticker(boolean run) case GS_EVALUATION: if (run) F_GameEvaluationTicker(); + HU_Ticker(); break; case GS_CONTINUING: From e020352c0cad3e8c39ad747b7d2a34ad10e259c0 Mon Sep 17 00:00:00 2001 From: TehRealSalt Date: Tue, 19 Sep 2017 00:26:05 -0400 Subject: [PATCH 033/111] Fixed diagonal analog input being weakened Using a keyboard and an analog stick should now give you similar acceleration in all directions. --- src/g_game.c | 19 +++++++++++++------ 1 file changed, 13 insertions(+), 6 deletions(-) diff --git a/src/g_game.c b/src/g_game.c index 63055a8c4..a087a0ad6 100644 --- a/src/g_game.c +++ b/src/g_game.c @@ -981,7 +981,7 @@ void G_BuildTiccmd(ticcmd_t *cmd, INT32 realtics) INT32 tspeed, forward, side, axis, i; const INT32 speed = 1; // these ones used for multiple conditions - boolean turnleft, turnright, mouseaiming, analogjoystickmove, gamepadjoystickmove; + boolean turnleft, turnright, strafelkey, straferkey, movefkey, movebkey, mouseaiming, analogjoystickmove, gamepadjoystickmove; player_t *player = &players[consoleplayer]; camera_t *thiscam = &camera; @@ -1002,6 +1002,12 @@ void G_BuildTiccmd(ticcmd_t *cmd, INT32 realtics) turnright = PLAYER1INPUTDOWN(gc_turnright); turnleft = PLAYER1INPUTDOWN(gc_turnleft); + + straferkey = PLAYER1INPUTDOWN(gc_straferight); + strafelkey = PLAYER1INPUTDOWN(gc_strafeleft); + movefkey = PLAYER1INPUTDOWN(gc_forward); + movebkey = PLAYER1INPUTDOWN(gc_backward); + mouseaiming = (PLAYER1INPUTDOWN(gc_mouseaiming)) ^ cv_alwaysfreelook.value; analogjoystickmove = cv_usejoystick.value && !Joystick.bGamepadStyle; gamepadjoystickmove = cv_usejoystick.value && Joystick.bGamepadStyle; @@ -1090,9 +1096,9 @@ void G_BuildTiccmd(ticcmd_t *cmd, INT32 realtics) // forward with key or button axis = JoyAxis(AXISMOVE); - if (PLAYER1INPUTDOWN(gc_forward) || (gamepadjoystickmove && axis < 0)) + if (movefkey || (gamepadjoystickmove && axis < 0)) forward = forwardmove[speed]; - if (PLAYER1INPUTDOWN(gc_backward) || (gamepadjoystickmove && axis > 0)) + if (movebkey || (gamepadjoystickmove && axis > 0)) forward -= forwardmove[speed]; if (analogjoystickmove && axis != 0) @@ -1100,9 +1106,9 @@ void G_BuildTiccmd(ticcmd_t *cmd, INT32 realtics) // some people strafe left & right with mouse buttons // those people are weird - if (PLAYER1INPUTDOWN(gc_straferight)) + if (straferkey) side += sidemove[speed]; - if (PLAYER1INPUTDOWN(gc_strafeleft)) + if (strafelkey) side -= sidemove[speed]; if (PLAYER1INPUTDOWN(gc_weaponnext)) @@ -1239,7 +1245,8 @@ void G_BuildTiccmd(ticcmd_t *cmd, INT32 realtics) // No additional acceleration when moving forward/backward and strafing simultaneously. // do this AFTER we cap to MAXPLMOVE so people can't find ways to cheese around this. - if (!forcestrafe && forward && side) + // 9-18-2017: ALSO, only do this when using keys to move. Gamepad analog sticks get severely gimped by this + if (!forcestrafe && (((movefkey || movebkey) && side) || ((strafelkey || straferkey) && forward))) { forward = FixedMul(forward, 3*FRACUNIT/4); side = FixedMul(side, 3*FRACUNIT/4); From d1e379f4f9c2369e262dd5863752fdcdda838287 Mon Sep 17 00:00:00 2001 From: TehRealSalt Date: Tue, 19 Sep 2017 00:30:08 -0400 Subject: [PATCH 034/111] Whoops, forgot P2 --- src/g_game.c | 19 +++++++++++++------ 1 file changed, 13 insertions(+), 6 deletions(-) diff --git a/src/g_game.c b/src/g_game.c index a087a0ad6..95b7b8890 100644 --- a/src/g_game.c +++ b/src/g_game.c @@ -1288,7 +1288,7 @@ void G_BuildTiccmd2(ticcmd_t *cmd, INT32 realtics) INT32 tspeed, forward, side, axis, i; const INT32 speed = 1; // these ones used for multiple conditions - boolean turnleft, turnright, mouseaiming, analogjoystickmove, gamepadjoystickmove; + boolean turnleft, turnright, strafelkey, straferkey, movefkey, movebkey, mouseaiming, analogjoystickmove, gamepadjoystickmove; player_t *player = &players[secondarydisplayplayer]; camera_t *thiscam = (player->bot == 2 ? &camera : &camera2); @@ -1309,6 +1309,12 @@ void G_BuildTiccmd2(ticcmd_t *cmd, INT32 realtics) turnright = PLAYER2INPUTDOWN(gc_turnright); turnleft = PLAYER2INPUTDOWN(gc_turnleft); + + straferkey = PLAYER2INPUTDOWN(gc_straferight); + strafelkey = PLAYER2INPUTDOWN(gc_strafeleft); + movefkey = PLAYER2INPUTDOWN(gc_forward); + movebkey = PLAYER2INPUTDOWN(gc_backward); + mouseaiming = (PLAYER2INPUTDOWN(gc_mouseaiming)) ^ cv_alwaysfreelook2.value; analogjoystickmove = cv_usejoystick2.value && !Joystick2.bGamepadStyle; gamepadjoystickmove = cv_usejoystick2.value && Joystick2.bGamepadStyle; @@ -1397,9 +1403,9 @@ void G_BuildTiccmd2(ticcmd_t *cmd, INT32 realtics) // forward with key or button axis = Joy2Axis(AXISMOVE); - if (PLAYER2INPUTDOWN(gc_forward) || (gamepadjoystickmove && axis < 0)) + if (movefkey || (gamepadjoystickmove && axis < 0)) forward = forwardmove[speed]; - if (PLAYER2INPUTDOWN(gc_backward) || (gamepadjoystickmove && axis > 0)) + if (movebkey || (gamepadjoystickmove && axis > 0)) forward -= forwardmove[speed]; if (analogjoystickmove && axis != 0) @@ -1407,9 +1413,9 @@ void G_BuildTiccmd2(ticcmd_t *cmd, INT32 realtics) // some people strafe left & right with mouse buttons // those people are (still) weird - if (PLAYER2INPUTDOWN(gc_straferight)) + if (straferkey) side += sidemove[speed]; - if (PLAYER2INPUTDOWN(gc_strafeleft)) + if (strafelkey) side -= sidemove[speed]; if (PLAYER2INPUTDOWN(gc_weaponnext)) @@ -1543,7 +1549,8 @@ void G_BuildTiccmd2(ticcmd_t *cmd, INT32 realtics) // No additional acceleration when moving forward/backward and strafing simultaneously. // do this AFTER we cap to MAXPLMOVE so people can't find ways to cheese around this. - if (!forcestrafe && forward && side) + // 9-18-2017: ALSO, only do this when using keys to move. Gamepad analog sticks get severely gimped by this + if (!forcestrafe && (((movefkey || movebkey) && side) || ((strafelkey || straferkey) && forward))) { forward = FixedMul(forward, 3*FRACUNIT/4); side = FixedMul(side, 3*FRACUNIT/4); From da82a6bb56971bd9af20de953dc7a4375eff6546 Mon Sep 17 00:00:00 2001 From: TehRealSalt Date: Tue, 19 Sep 2017 00:33:53 -0400 Subject: [PATCH 035/111] Replaced instances of "joystick" with "gamepad" in menus --- src/m_menu.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/m_menu.c b/src/m_menu.c index eca88ae42..74f457f08 100644 --- a/src/m_menu.c +++ b/src/m_menu.c @@ -1055,7 +1055,7 @@ static menuitem_t OP_P1ControlsMenu[] = { {IT_CALL | IT_STRING, NULL, "Control Configuration...", M_Setup1PControlsMenu, 10}, {IT_SUBMENU | IT_STRING, NULL, "Mouse Options...", &OP_MouseOptionsDef, 20}, - {IT_SUBMENU | IT_STRING, NULL, "Joystick Options...", &OP_Joystick1Def , 30}, + {IT_SUBMENU | IT_STRING, NULL, "Gamepad Options...", &OP_Joystick1Def , 30}, {IT_STRING | IT_CVAR, NULL, "Third-person Camera" , &cv_chasecam , 50}, {IT_STRING | IT_CVAR, NULL, "Flip Camera with Gravity" , &cv_flipcam , 60}, @@ -1068,7 +1068,7 @@ static menuitem_t OP_P2ControlsMenu[] = { {IT_CALL | IT_STRING, NULL, "Control Configuration...", M_Setup2PControlsMenu, 10}, {IT_SUBMENU | IT_STRING, NULL, "Second Mouse Options...", &OP_Mouse2OptionsDef, 20}, - {IT_SUBMENU | IT_STRING, NULL, "Second Joystick Options...", &OP_Joystick2Def , 30}, + {IT_SUBMENU | IT_STRING, NULL, "Second Gamepad Options...", &OP_Joystick2Def , 30}, {IT_STRING | IT_CVAR, NULL, "Third-person Camera" , &cv_chasecam2 , 50}, {IT_STRING | IT_CVAR, NULL, "Flip Camera with Gravity" , &cv_flipcam2 , 60}, @@ -1130,7 +1130,7 @@ static menuitem_t OP_ChangeControlsMenu[] = static menuitem_t OP_Joystick1Menu[] = { - {IT_STRING | IT_CALL, NULL, "Select Joystick...", M_Setup1PJoystickMenu, 10}, + {IT_STRING | IT_CALL, NULL, "Select Gamepad...", M_Setup1PJoystickMenu, 10}, {IT_STRING | IT_CVAR, NULL, "Move \x17 Axis" , &cv_moveaxis , 30}, {IT_STRING | IT_CVAR, NULL, "Move \x18 Axis" , &cv_sideaxis , 40}, {IT_STRING | IT_CVAR, NULL, "Camera \x17 Axis" , &cv_lookaxis , 50}, @@ -1143,7 +1143,7 @@ static menuitem_t OP_Joystick1Menu[] = static menuitem_t OP_Joystick2Menu[] = { - {IT_STRING | IT_CALL, NULL, "Select Joystick...", M_Setup2PJoystickMenu, 10}, + {IT_STRING | IT_CALL, NULL, "Select Gamepad...", M_Setup2PJoystickMenu, 10}, {IT_STRING | IT_CVAR, NULL, "Move \x17 Axis" , &cv_moveaxis2 , 30}, {IT_STRING | IT_CVAR, NULL, "Move \x18 Axis" , &cv_sideaxis2 , 40}, {IT_STRING | IT_CVAR, NULL, "Camera \x17 Axis" , &cv_lookaxis2 , 50}, From 6a0f50cdf5a3e81269d51e400f65c60403f95260 Mon Sep 17 00:00:00 2001 From: TehRealSalt Date: Tue, 19 Sep 2017 17:27:13 -0400 Subject: [PATCH 036/111] Resolve conflicts --- src/g_game.h | 9 ++------- 1 file changed, 2 insertions(+), 7 deletions(-) diff --git a/src/g_game.h b/src/g_game.h index aa567b1d1..7b7f04b6a 100644 --- a/src/g_game.h +++ b/src/g_game.h @@ -59,15 +59,10 @@ extern consvar_t cv_invertmouse, cv_alwaysfreelook, cv_mousemove; extern consvar_t cv_invertmouse2, cv_alwaysfreelook2, cv_mousemove2; extern consvar_t cv_useranalog, cv_useranalog2; extern consvar_t cv_analog, cv_analog2; -<<<<<<< HEAD -extern consvar_t cv_sideaxis,cv_turnaxis,cv_moveaxis,cv_lookaxis,cv_jumpaxis,cv_spinaxis,cv_fireaxis,cv_firenaxis; -extern consvar_t cv_sideaxis2,cv_turnaxis2,cv_moveaxis2,cv_lookaxis2,cv_jumpaxis2,cv_spinaxis2,cv_fireaxis2,cv_firenaxis2; -======= extern consvar_t cv_directionchar, cv_directionchar2; extern consvar_t cv_autobrake, cv_autobrake2; -extern consvar_t cv_sideaxis,cv_turnaxis,cv_moveaxis,cv_lookaxis,cv_fireaxis,cv_firenaxis; -extern consvar_t cv_sideaxis2,cv_turnaxis2,cv_moveaxis2,cv_lookaxis2,cv_fireaxis2,cv_firenaxis2; ->>>>>>> refs/remotes/origin/master +extern consvar_t cv_sideaxis,cv_turnaxis,cv_moveaxis,cv_lookaxis,cv_jumpaxis,cv_spinaxis,cv_fireaxis,cv_firenaxis; +extern consvar_t cv_sideaxis2,cv_turnaxis2,cv_moveaxis2,cv_lookaxis2,cv_jumpaxis2,cv_spinaxis2,cv_fireaxis2,cv_firenaxis2; extern consvar_t cv_ghost_bestscore, cv_ghost_besttime, cv_ghost_bestrings, cv_ghost_last, cv_ghost_guest; // mouseaiming (looking up/down with the mouse or keyboard) From 4e7b8179459fa199ca9b5e9a3056755fa6ee90b4 Mon Sep 17 00:00:00 2001 From: TehRealSalt Date: Wed, 20 Sep 2017 16:14:00 -0400 Subject: [PATCH 037/111] Does THIS fix the conflicts?? --- src/g_game.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/g_game.h b/src/g_game.h index 7b7f04b6a..ff86beb7f 100644 --- a/src/g_game.h +++ b/src/g_game.h @@ -61,8 +61,8 @@ extern consvar_t cv_useranalog, cv_useranalog2; extern consvar_t cv_analog, cv_analog2; extern consvar_t cv_directionchar, cv_directionchar2; extern consvar_t cv_autobrake, cv_autobrake2; -extern consvar_t cv_sideaxis,cv_turnaxis,cv_moveaxis,cv_lookaxis,cv_jumpaxis,cv_spinaxis,cv_fireaxis,cv_firenaxis; -extern consvar_t cv_sideaxis2,cv_turnaxis2,cv_moveaxis2,cv_lookaxis2,cv_jumpaxis2,cv_spinaxis2,cv_fireaxis2,cv_firenaxis2; +extern consvar_t cv_sideaxis, cv_turnaxis, cv_moveaxis, cv_lookaxis, cv_jumpaxis, cv_spinaxis, cv_fireaxis, cv_firenaxis; +extern consvar_t cv_sideaxis2, cv_turnaxis2, cv_moveaxis2, cv_lookaxis2, cv_jumpaxis2, cv_spinaxis2, cv_fireaxis2, cv_firenaxis2; extern consvar_t cv_ghost_bestscore, cv_ghost_besttime, cv_ghost_bestrings, cv_ghost_last, cv_ghost_guest; // mouseaiming (looking up/down with the mouse or keyboard) From 7c7bf243a2c74ee47896d0e644910237e7a826da Mon Sep 17 00:00:00 2001 From: TehRealSalt Date: Wed, 20 Sep 2017 16:20:30 -0400 Subject: [PATCH 038/111] Okay, nope, still nothing; reverting --- src/g_game.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/g_game.h b/src/g_game.h index ff86beb7f..7b7f04b6a 100644 --- a/src/g_game.h +++ b/src/g_game.h @@ -61,8 +61,8 @@ extern consvar_t cv_useranalog, cv_useranalog2; extern consvar_t cv_analog, cv_analog2; extern consvar_t cv_directionchar, cv_directionchar2; extern consvar_t cv_autobrake, cv_autobrake2; -extern consvar_t cv_sideaxis, cv_turnaxis, cv_moveaxis, cv_lookaxis, cv_jumpaxis, cv_spinaxis, cv_fireaxis, cv_firenaxis; -extern consvar_t cv_sideaxis2, cv_turnaxis2, cv_moveaxis2, cv_lookaxis2, cv_jumpaxis2, cv_spinaxis2, cv_fireaxis2, cv_firenaxis2; +extern consvar_t cv_sideaxis,cv_turnaxis,cv_moveaxis,cv_lookaxis,cv_jumpaxis,cv_spinaxis,cv_fireaxis,cv_firenaxis; +extern consvar_t cv_sideaxis2,cv_turnaxis2,cv_moveaxis2,cv_lookaxis2,cv_jumpaxis2,cv_spinaxis2,cv_fireaxis2,cv_firenaxis2; extern consvar_t cv_ghost_bestscore, cv_ghost_besttime, cv_ghost_bestrings, cv_ghost_last, cv_ghost_guest; // mouseaiming (looking up/down with the mouse or keyboard) From cfce6650cabb7e613a8161cb67c6ba0f0b0738f6 Mon Sep 17 00:00:00 2001 From: TehRealSalt Date: Wed, 20 Sep 2017 16:53:05 -0400 Subject: [PATCH 039/111] Fix holding spin while landing putting you in your walking state, remove commented out stuff --- src/p_user.c | 31 ++----------------------------- 1 file changed, 2 insertions(+), 29 deletions(-) diff --git a/src/p_user.c b/src/p_user.c index c1215088f..fc94c55a7 100644 --- a/src/p_user.c +++ b/src/p_user.c @@ -1815,8 +1815,8 @@ boolean P_PlayerHitFloor(player_t *player) S_StartSound(player->mo, sfx_s3k8b); player->pflags |= PF_FULLSTASIS; } - else if (player->pflags & PF_JUMPED || !(player->pflags & PF_SPINNING) - || player->powers[pw_tailsfly] || player->mo->state-states == S_PLAY_FLY_TIRED) + else if ((player->pflags & PF_JUMPED || player->powers[pw_tailsfly] + || player->mo->state-states == S_PLAY_FLY_TIRED) && !(player->pflags & PF_SPINNING)) { if (player->cmomx || player->cmomy) { @@ -4179,14 +4179,10 @@ static void P_DoSpinAbility(player_t *player, ticcmd_t *cmd) if (onground && player->pflags & PF_STARTDASH) { - //if (player->mo->state-states != S_PLAY_SPINDASH) - //P_SetPlayerMobjState(player->mo, S_PLAY_SPINDASH); // Spawn spin dash dust if (!(player->charflags & SF_NOSPINDASHDUST) && !(player->mo->eflags & MFE_GOOWATER)) P_DoSpinDashDust(player); } - //else if (onground && player->pflags & PF_SPINNING && !(player->panim == PA_ROLL)) - //P_SetPlayerMobjState(player->mo, S_PLAY_ROLL); } // @@ -9473,23 +9469,6 @@ void P_PlayerThink(player_t *player) } } #endif - if (!player->mo->health) - ; - /*else if (player->pflags & PF_GLIDING) - { - if (player->panim != PA_ABILITY) - P_SetPlayerMobjState(player->mo, S_PLAY_GLIDE); - }*/ - else if ((player->pflags & PF_JUMPED && !(player->pflags & PF_NOJUMPDAMAGE) - && (player->mo->state-states != S_PLAY_FLOAT && player->mo->state-states != S_PLAY_FLOAT_RUN)) - && ((((player->charflags & (SF_NOJUMPSPIN|SF_NOJUMPDAMAGE)) == (SF_NOJUMPSPIN|SF_NOJUMPDAMAGE)) && player->panim != PA_ROLL) - || (!(player->charflags & SF_NOJUMPSPIN) && player->panim != PA_JUMP))) - { - /*if (!(player->charflags & SF_NOJUMPSPIN)) - P_SetPlayerMobjState(player->mo, S_PLAY_JUMP); - else if (!(player->pflags & PF_NOJUMPDAMAGE)) - P_SetPlayerMobjState(player->mo, S_PLAY_ROLL);*/ - } if (player->flashcount) player->flashcount--; @@ -10282,12 +10261,6 @@ void P_PlayerAfterThink(player_t *player) if (P_IsLocalPlayer(player) && (player->pflags & PF_WPNDOWN) && player->currentweapon != oldweapon) S_StartSound(NULL, sfx_wepchg); - /*if (player->pflags & PF_GLIDING) - { - if (player->panim != PA_ABILITY) - P_SetPlayerMobjState(player->mo, S_PLAY_GLIDE); - } - else if (player->pflags & PF_SLIDING)*/ if (player->pflags & PF_SLIDING) P_SetPlayerMobjState(player->mo, player->mo->info->painstate); From d55f84bec0b958ad961ca36392dc6bf6a6e40e71 Mon Sep 17 00:00:00 2001 From: TehRealSalt Date: Thu, 21 Sep 2017 16:43:55 -0400 Subject: [PATCH 040/111] Camera scaling to splitscreen mode Stacks with analog's camera buff. The camera height of both are also now proportional with their dist --- src/p_user.c | 22 +++++++++++++++++----- 1 file changed, 17 insertions(+), 5 deletions(-) diff --git a/src/p_user.c b/src/p_user.c index fc94c55a7..9e109c029 100644 --- a/src/p_user.c +++ b/src/p_user.c @@ -8632,7 +8632,7 @@ void P_ResetCamera(player_t *player, camera_t *thiscam) boolean P_MoveChaseCamera(player_t *player, camera_t *thiscam, boolean resetcalled) { angle_t angle = 0, focusangle = 0, focusaiming = 0; - fixed_t x, y, z, dist, checkdist, viewpointx, viewpointy, camspeed, camdist, camheight, pviewheight; + fixed_t x, y, z, dist, height, checkdist, viewpointx, viewpointy, camspeed, camdist, camheight, pviewheight; INT32 camrotate; boolean camstill, cameranoclip; mobj_t *mo; @@ -8805,6 +8805,8 @@ boolean P_MoveChaseCamera(player_t *player, camera_t *thiscam, boolean resetcall } } + height = camheight; + // sets ideal cam pos if (twodlevel || (mo->flags2 & MF2_TWOD)) dist = 480<climbing || player->exiting || player->playerstate == PST_DEAD || (player->powers[pw_carry] == CR_ROPEHANG || player->powers[pw_carry] == CR_GENERIC || player->powers[pw_carry] == CR_MACESPIN)) dist <<= 1; } @@ -8865,9 +8877,9 @@ boolean P_MoveChaseCamera(player_t *player, camera_t *thiscam, boolean resetcall pviewheight = FixedMul(cv_viewheight.value<scale); if (mo->eflags & MFE_VERTICALFLIP) - z = mo->z + mo->height - pviewheight - camheight; + z = mo->z + mo->height - pviewheight - height; else - z = mo->z + pviewheight + camheight; + z = mo->z + pviewheight + height; // move camera down to move under lower ceilings newsubsec = R_IsPointInSubsector(((mo->x>>FRACBITS) + (thiscam->x>>FRACBITS))<<(FRACBITS-1), ((mo->y>>FRACBITS) + (thiscam->y>>FRACBITS))<<(FRACBITS-1)); @@ -9065,7 +9077,7 @@ boolean P_MoveChaseCamera(player_t *player, camera_t *thiscam, boolean resetcall } if (mo->type == MT_EGGTRAP) - z = mo->z + 128*FRACUNIT + pviewheight + camheight; + z = mo->z + 128*FRACUNIT + pviewheight + height; if (thiscam->z < thiscam->floorz && !cameranoclip) thiscam->z = thiscam->floorz; From 6b448f72eeaefebf8204a6315cc4612431a4b0e0 Mon Sep 17 00:00:00 2001 From: TehRealSalt Date: Thu, 21 Sep 2017 17:34:53 -0400 Subject: [PATCH 041/111] A_GhostMe lets you change fuse with var1, fixed the walking-spin frames bug For Real This Time --- src/p_enemy.c | 8 ++++-- src/p_user.c | 76 ++++++++++++++++++++++++++------------------------- 2 files changed, 45 insertions(+), 39 deletions(-) diff --git a/src/p_enemy.c b/src/p_enemy.c index 1f5b902d4..a63edd7d5 100644 --- a/src/p_enemy.c +++ b/src/p_enemy.c @@ -7957,16 +7957,20 @@ void A_OrbitNights(mobj_t* actor) // // Description: Spawns a "ghost" mobj of this actor, ala spindash trails and the minus's digging "trails" // -// var1 = unused +// var1 = duration in tics // var2 = unused // void A_GhostMe(mobj_t *actor) { + INT32 locvar1 = var1; + mobj_t *ghost; #ifdef HAVE_BLUA if (LUA_CallAction("A_GhostMe", actor)) return; #endif - P_SpawnGhostMobj(actor); + ghost = P_SpawnGhostMobj(actor); + if (ghost && locvar1 > 1) + ghost->fuse = locvar1; } // Function: A_SetObjectState diff --git a/src/p_user.c b/src/p_user.c index 9e109c029..831b877ad 100644 --- a/src/p_user.c +++ b/src/p_user.c @@ -1801,48 +1801,50 @@ boolean P_PlayerHitFloor(player_t *player) S_StartSound(player->mo, sfx_spin); } else + { player->pflags &= ~PF_SPINNING; - if (player->pflags & PF_GLIDING) // ground gliding - { - player->skidtime = TICRATE; - player->mo->tics = -1; - } - else if (player->charability2 == CA2_MELEE && (player->panim == PA_ABILITY2 && player->mo->state-states != S_PLAY_MELEE_LANDING)) - { - P_SetPlayerMobjState(player->mo, S_PLAY_MELEE_LANDING); - player->mo->tics = (player->mo->movefactor == FRACUNIT) ? TICRATE/2 : (FixedDiv(35<<(FRACBITS-1), FixedSqrt(player->mo->movefactor)))>>FRACBITS; - S_StartSound(player->mo, sfx_s3k8b); - player->pflags |= PF_FULLSTASIS; - } - else if ((player->pflags & PF_JUMPED || player->powers[pw_tailsfly] - || player->mo->state-states == S_PLAY_FLY_TIRED) && !(player->pflags & PF_SPINNING)) - { - if (player->cmomx || player->cmomy) + if (player->pflags & PF_GLIDING) // ground gliding { - if (player->charflags & SF_DASHMODE && player->dashmode >= 3*TICRATE && player->panim != PA_DASH) - P_SetPlayerMobjState(player->mo, S_PLAY_DASH); - else if (player->speed >= FixedMul(player->runspeed, player->mo->scale) - && (player->panim != PA_RUN || player->mo->state-states == S_PLAY_FLOAT_RUN)) - P_SetPlayerMobjState(player->mo, S_PLAY_RUN); - else if ((player->rmomx || player->rmomy) - && (player->panim != PA_WALK || player->mo->state-states == S_PLAY_FLOAT)) - P_SetPlayerMobjState(player->mo, S_PLAY_WALK); - else if (!player->rmomx && !player->rmomy && player->panim != PA_IDLE) - P_SetPlayerMobjState(player->mo, S_PLAY_STND); + player->skidtime = TICRATE; + player->mo->tics = -1; } - else + else if (player->charability2 == CA2_MELEE && (player->panim == PA_ABILITY2 && player->mo->state-states != S_PLAY_MELEE_LANDING)) { - if (player->charflags & SF_DASHMODE && player->dashmode >= 3*TICRATE && player->panim != PA_DASH) - P_SetPlayerMobjState(player->mo, S_PLAY_DASH); - else if (player->speed >= FixedMul(player->runspeed, player->mo->scale) - && (player->panim != PA_RUN || player->mo->state-states == S_PLAY_FLOAT_RUN)) - P_SetPlayerMobjState(player->mo, S_PLAY_RUN); - else if ((player->mo->momx || player->mo->momy) - && (player->panim != PA_WALK || player->mo->state-states == S_PLAY_FLOAT)) - P_SetPlayerMobjState(player->mo, S_PLAY_WALK); - else if (!player->mo->momx && !player->mo->momy && player->panim != PA_IDLE) - P_SetPlayerMobjState(player->mo, S_PLAY_STND); + P_SetPlayerMobjState(player->mo, S_PLAY_MELEE_LANDING); + player->mo->tics = (player->mo->movefactor == FRACUNIT) ? TICRATE/2 : (FixedDiv(35<<(FRACBITS-1), FixedSqrt(player->mo->movefactor)))>>FRACBITS; + S_StartSound(player->mo, sfx_s3k8b); + player->pflags |= PF_FULLSTASIS; + } + else if (player->pflags & PF_JUMPED || !(player->pflags & PF_SPINNING) + || player->powers[pw_tailsfly] || player->mo->state-states == S_PLAY_FLY_TIRED) + { + if (player->cmomx || player->cmomy) + { + if (player->charflags & SF_DASHMODE && player->dashmode >= 3*TICRATE && player->panim != PA_DASH) + P_SetPlayerMobjState(player->mo, S_PLAY_DASH); + else if (player->speed >= FixedMul(player->runspeed, player->mo->scale) + && (player->panim != PA_RUN || player->mo->state-states == S_PLAY_FLOAT_RUN)) + P_SetPlayerMobjState(player->mo, S_PLAY_RUN); + else if ((player->rmomx || player->rmomy) + && (player->panim != PA_WALK || player->mo->state-states == S_PLAY_FLOAT)) + P_SetPlayerMobjState(player->mo, S_PLAY_WALK); + else if (!player->rmomx && !player->rmomy && player->panim != PA_IDLE) + P_SetPlayerMobjState(player->mo, S_PLAY_STND); + } + else + { + if (player->charflags & SF_DASHMODE && player->dashmode >= 3*TICRATE && player->panim != PA_DASH) + P_SetPlayerMobjState(player->mo, S_PLAY_DASH); + else if (player->speed >= FixedMul(player->runspeed, player->mo->scale) + && (player->panim != PA_RUN || player->mo->state-states == S_PLAY_FLOAT_RUN)) + P_SetPlayerMobjState(player->mo, S_PLAY_RUN); + else if ((player->mo->momx || player->mo->momy) + && (player->panim != PA_WALK || player->mo->state-states == S_PLAY_FLOAT)) + P_SetPlayerMobjState(player->mo, S_PLAY_WALK); + else if (!player->mo->momx && !player->mo->momy && player->panim != PA_IDLE) + P_SetPlayerMobjState(player->mo, S_PLAY_STND); + } } } From 09c3c5857591169290007dcc5d500e09df235517 Mon Sep 17 00:00:00 2001 From: TehRealSalt Date: Thu, 21 Sep 2017 17:38:42 -0400 Subject: [PATCH 042/111] Obligatory "fixing a very tiny and very stupid mistake" commit :p --- src/p_enemy.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/p_enemy.c b/src/p_enemy.c index a63edd7d5..797586b49 100644 --- a/src/p_enemy.c +++ b/src/p_enemy.c @@ -7969,7 +7969,7 @@ void A_GhostMe(mobj_t *actor) return; #endif ghost = P_SpawnGhostMobj(actor); - if (ghost && locvar1 > 1) + if (ghost && locvar1 > 0) ghost->fuse = locvar1; } From fcc155446721dc0b9fc01d9a104ba83c88d68db5 Mon Sep 17 00:00:00 2001 From: TehRealSalt Date: Sun, 24 Sep 2017 13:43:36 -0400 Subject: [PATCH 043/111] Play bubble breathe sound for bots --- src/p_inter.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/p_inter.c b/src/p_inter.c index bc5a31881..6dae204ed 100644 --- a/src/p_inter.c +++ b/src/p_inter.c @@ -1581,6 +1581,8 @@ void P_TouchSpecialThing(mobj_t *special, mobj_t *toucher, boolean heightcheck) if (!player->climbing) { + if (player->bot && toucher->state-states != S_PLAY_GASP) + S_StartSound(toucher, special->info->deathsound); // Force it to play a sound for bots P_SetPlayerMobjState(toucher, S_PLAY_GASP); P_ResetPlayer(player); } From 7fb2e6633e35b43aa09382da14b10d8b273cde57 Mon Sep 17 00:00:00 2001 From: toasterbabe Date: Mon, 25 Sep 2017 20:35:04 +0100 Subject: [PATCH 044/111] Fix a crash. --- src/m_menu.c | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/src/m_menu.c b/src/m_menu.c index 3a6a3156d..fe768fce3 100644 --- a/src/m_menu.c +++ b/src/m_menu.c @@ -2151,6 +2151,8 @@ static void M_GoBack(INT32 choice) if ((currentMenu->prevMenu == &MainDef) && (currentMenu == &SP_TimeAttackDef || currentMenu == &SP_NightsAttackDef)) { // D_StartTitle does its own wipe, since GS_TIMEATTACK is now a complete gamestate. + Z_Free(levelselect.rows); + levelselect.rows = NULL; menuactive = false; D_StartTitle(); } @@ -4279,6 +4281,12 @@ static void M_HandleLevelPlatter(INT32 choice) if (exitmenu) { + if (gamestate != GS_TIMEATTACK) + { + Z_Free(levelselect.rows); + levelselect.rows = NULL; + } + if (currentMenu->prevMenu) { M_SetupNextMenu(currentMenu->prevMenu); @@ -4287,9 +4295,6 @@ static void M_HandleLevelPlatter(INT32 choice) else M_ClearMenus(true); - Z_Free(levelselect.rows); - levelselect.rows = NULL; - Z_Free(char_notes); char_notes = NULL; } From f0ce22edb6e82686e8926de4d9d88d902363f11c Mon Sep 17 00:00:00 2001 From: toasterbabe Date: Mon, 25 Sep 2017 20:35:04 +0100 Subject: [PATCH 045/111] Fix issue #72 (where closed captioning jingles didn't account for pausing). --- src/s_sound.c | 32 +++++++++++++++++++------------- src/screen.c | 6 +++++- 2 files changed, 24 insertions(+), 14 deletions(-) diff --git a/src/s_sound.c b/src/s_sound.c index 2f3b1ae93..f6fef915a 100644 --- a/src/s_sound.c +++ b/src/s_sound.c @@ -959,21 +959,27 @@ void S_UpdateSounds(void) notinlevel: I_UpdateSound(); - for (i = 0; i < NUMCAPTIONS; i++) // update captions { - if (!closedcaptions[i].s) - continue; + boolean gamestopped = (paused || P_AutoPause()); + for (i = 0; i < NUMCAPTIONS; i++) // update captions + { + if (!closedcaptions[i].s) + continue; - if (!(--closedcaptions[i].t)) - { - closedcaptions[i].c = NULL; - closedcaptions[i].s = NULL; - } - else if (closedcaptions[i].c && !I_SoundIsPlaying(closedcaptions[i].c->handle)) - { - closedcaptions[i].c = NULL; - if (closedcaptions[i].t > CAPTIONFADETICS) - closedcaptions[i].t = CAPTIONFADETICS; + if (i == 0 && (closedcaptions[0].s-S_sfx == sfx_None) && gamestopped) + continue; + + if (!(--closedcaptions[i].t)) + { + closedcaptions[i].c = NULL; + closedcaptions[i].s = NULL; + } + else if (closedcaptions[i].c && !I_SoundIsPlaying(closedcaptions[i].c->handle)) + { + closedcaptions[i].c = NULL; + if (closedcaptions[i].t > CAPTIONFADETICS) + closedcaptions[i].t = CAPTIONFADETICS; + } } } } diff --git a/src/screen.c b/src/screen.c index 8c1811d5d..a9b85d1a1 100644 --- a/src/screen.c +++ b/src/screen.c @@ -31,6 +31,7 @@ #include "i_sound.h" // closed captions #include "s_sound.h" // ditto #include "g_game.h" // ditto +#include "p_local.h" // P_AutoPause() #if defined (USEASM) && !defined (NORUSEASM)//&& (!defined (_MSC_VER) || (_MSC_VER <= 1200)) @@ -444,6 +445,7 @@ void SCR_DisplayTicRate(void) void SCR_ClosedCaptions(void) { UINT8 i; + boolean gamestopped = (paused || P_AutoPause()); for (i = 0; i < NUMCAPTIONS; i++) { @@ -454,7 +456,9 @@ void SCR_ClosedCaptions(void) if (!closedcaptions[i].s) continue; - if ((music = (closedcaptions[i].s-S_sfx == sfx_None)) && (closedcaptions[i].t < flashingtics) && (closedcaptions[i].t & 1)) + music = (closedcaptions[i].s-S_sfx == sfx_None); + + if (music && !gamestopped && (closedcaptions[i].t < flashingtics) && (closedcaptions[i].t & 1)) continue; flags = V_NOSCALESTART|V_ALLOWLOWERCASE; From 9446fe6cd63c73144de0d71b8f26292d2c3d67fc Mon Sep 17 00:00:00 2001 From: toasterbabe Date: Mon, 25 Sep 2017 20:35:04 +0100 Subject: [PATCH 046/111] Tweak some HUD stuff, including a more consistent application of MAXSCORE. --- src/p_local.h | 4 ++-- src/p_user.c | 5 ++--- src/st_stuff.c | 22 ++++++++++++++-------- src/st_stuff.h | 1 + src/y_inter.c | 6 ++++++ 5 files changed, 25 insertions(+), 13 deletions(-) diff --git a/src/p_local.h b/src/p_local.h index 91ee0c496..098b1fdd4 100644 --- a/src/p_local.h +++ b/src/p_local.h @@ -28,7 +28,7 @@ #define VIEWHEIGHTS "41" // Maximum player score. -#define MAXSCORE 999999990 +#define MAXSCORE 99999990 // 999999990 // mapblocks are used to check movement // against lines and things @@ -140,7 +140,7 @@ boolean P_IsObjectOnGround(mobj_t *mo); boolean P_IsObjectOnGroundIn(mobj_t *mo, sector_t *sec); boolean P_InSpaceSector(mobj_t *mo); boolean P_InQuicksand(mobj_t *mo); -boolean P_PlayerHitFloor(player_t *player); +boolean P_PlayerHitFloor(player_t *player, boolean dorollstuff); void P_SetObjectMomZ(mobj_t *mo, fixed_t value, boolean relative); void P_RestoreMusic(player_t *player); diff --git a/src/p_user.c b/src/p_user.c index 60d4cd5b7..dad0520a6 100644 --- a/src/p_user.c +++ b/src/p_user.c @@ -1089,9 +1089,8 @@ void P_AddPlayerScore(player_t *player, UINT32 amount) oldscore = player->score; // Don't go above MAXSCORE. - if (player->score + amount < MAXSCORE) - player->score += amount; - else + player->score += amount; + if (player->score > MAXSCORE) player->score = MAXSCORE; // check for extra lives every 50000 pts diff --git a/src/st_stuff.c b/src/st_stuff.c index ceef586a4..889eeb57d 100644 --- a/src/st_stuff.c +++ b/src/st_stuff.c @@ -132,22 +132,23 @@ hudinfo_t hudinfo[NUMHUDITEMS] = { 16, 42}, // HUD_RINGS { 220, 10}, // HUD_RINGSSPLIT - { 120, 42}, // HUD_RINGSNUM + { 104, 42}, // HUD_RINGSNUM { 296, 10}, // HUD_RINGSNUMSPLIT + { 120, 42}, // HUD_RINGSNUMTICS { 16, 10}, // HUD_SCORE { 120, 10}, // HUD_SCORENUM { 16, 26}, // HUD_TIME { 128, 10}, // HUD_TIMESPLIT - { 96, 26}, // HUD_MINUTES + { 72, 26}, // HUD_MINUTES { 188, 10}, // HUD_MINUTESSPLIT - { 96, 26}, // HUD_TIMECOLON + { 72, 26}, // HUD_TIMECOLON { 188, 10}, // HUD_TIMECOLONSPLIT - { 120, 26}, // HUD_SECONDS + { 96, 26}, // HUD_SECONDS { 212, 10}, // HUD_SECONDSSPLIT - { 120, 26}, // HUD_TIMETICCOLON - { 144, 26}, // HUD_TICS + { 96, 26}, // HUD_TIMETICCOLON + { 120, 26}, // HUD_TICS { 120, 56}, // HUD_SS_TOTALRINGS { 296, 40}, // HUD_SS_TOTALRINGS_SPLIT @@ -663,7 +664,7 @@ static void ST_drawTime(void) static inline void ST_drawRings(void) { - INT32 ringnum = max(stplyr->rings, 0); + INT32 ringnum; ST_DrawPatchFromHudWS(HUD_RINGS, ((!stplyr->spectator && stplyr->rings <= 0 && leveltime/5 & 1) ? sboredrings : sborings), ((stplyr->spectator) ? V_HUDTRANSHALF : V_HUDTRANS)); @@ -677,8 +678,13 @@ static inline void ST_drawRings(void) if (playeringame[i] && players[i].mo && players[i].rings > 0) ringnum += players[i].rings; } + else + ringnum = max(stplyr->rings, 0); - ST_DrawNumFromHudWS(HUD_RINGSNUM, ringnum, ((stplyr->spectator) ? V_HUDTRANSHALF : V_HUDTRANS)); + if (!splitscreen && (cv_timetic.value == 2 || modeattacking)) + ST_DrawNumFromHud(HUD_RINGSNUMTICS, ringnum, ((stplyr->spectator) ? V_HUDTRANSHALF : V_HUDTRANS)); + else + ST_DrawNumFromHudWS(HUD_RINGSNUM, ringnum, ((stplyr->spectator) ? V_HUDTRANSHALF : V_HUDTRANS)); } static void ST_drawLives(void) diff --git a/src/st_stuff.h b/src/st_stuff.h index ddb119fb8..9be37b502 100644 --- a/src/st_stuff.h +++ b/src/st_stuff.h @@ -86,6 +86,7 @@ typedef enum HUD_RINGSSPLIT, HUD_RINGSNUM, HUD_RINGSNUMSPLIT, + HUD_RINGSNUMTICS, HUD_SCORE, HUD_SCORENUM, diff --git a/src/y_inter.c b/src/y_inter.c index 3b7f082f9..55ceea034 100644 --- a/src/y_inter.c +++ b/src/y_inter.c @@ -764,6 +764,8 @@ void Y_Ticker(void) data.coop.total += data.coop.bonuses[i].points; data.coop.bonuses[i].points = 0; } + if (data.coop.score > MAXSCORE) + data.coop.score = MAXSCORE; if (data.coop.bonuses[i].points > 0) anybonuses = true; } @@ -1763,6 +1765,8 @@ static void Y_AwardCoopBonuses(void) { (bonuses_list[bonusnum][j])(&players[i], &localbonuses[j]); players[i].score += localbonuses[j].points; + if (players[i].score > MAXSCORE) + players[i].score = MAXSCORE; } ptlives = (!ultimatemode && !modeattacking) ? max((players[i].score/50000) - (oldscore/50000), 0) : 0; @@ -1805,6 +1809,8 @@ static void Y_AwardSpecialStageBonus(void) else Y_SetRingBonus(&players[i], &localbonus); players[i].score += localbonus.points; + if (players[i].score > MAXSCORE) + players[i].score = MAXSCORE; // grant extra lives right away since tally is faked ptlives = (!ultimatemode && !modeattacking) ? max((players[i].score/50000) - (oldscore/50000), 0) : 0; From d38b627b85639340c818037836427d2adacbb8b9 Mon Sep 17 00:00:00 2001 From: toasterbabe Date: Mon, 25 Sep 2017 20:35:04 +0100 Subject: [PATCH 047/111] woops --- src/p_local.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/p_local.h b/src/p_local.h index 098b1fdd4..f239bcc68 100644 --- a/src/p_local.h +++ b/src/p_local.h @@ -140,7 +140,7 @@ boolean P_IsObjectOnGround(mobj_t *mo); boolean P_IsObjectOnGroundIn(mobj_t *mo, sector_t *sec); boolean P_InSpaceSector(mobj_t *mo); boolean P_InQuicksand(mobj_t *mo); -boolean P_PlayerHitFloor(player_t *player, boolean dorollstuff); +boolean P_PlayerHitFloor(player_t *player); void P_SetObjectMomZ(mobj_t *mo, fixed_t value, boolean relative); void P_RestoreMusic(player_t *player); From f4e535a64dc4285a763c1c6a21a14df097a8161d Mon Sep 17 00:00:00 2001 From: Monster Iestyn Date: Fri, 29 Sep 2017 18:19:34 +0100 Subject: [PATCH 048/111] Burned Dreamcast port at the stake --- src/Makefile | 66 ----- src/Makefile.cfg | 16 -- src/console.c | 2 - src/d_main.c | 23 +- src/d_net.c | 6 - src/d_netcmd.c | 2 +- src/d_netfil.c | 6 +- src/doomdef.h | 4 +- src/doomtype.h | 15 +- src/g_game.c | 44 +--- src/g_input.c | 125 +--------- src/g_input.h | 7 +- src/i_addrinfo.c | 2 +- src/i_tcp.c | 36 +-- src/m_argv.c | 2 +- src/m_menu.c | 5 +- src/m_misc.c | 2 +- src/m_misc.h | 4 +- src/mserv.c | 13 +- src/s_sound.c | 6 +- src/screen.c | 2 +- src/screen.h | 4 +- src/sdl12/Makefile.cfg | 4 - src/sdl12/SRB2DC/.gitignore | 1 - src/sdl12/SRB2DC/IP.BIN | Bin 32768 -> 0 bytes src/sdl12/SRB2DC/Makefile.cfg | 53 ---- src/sdl12/SRB2DC/SELFBOOT.BIN | Bin 1408808 -> 0 bytes src/sdl12/SRB2DC/VMU.xbm | 19 -- src/sdl12/SRB2DC/dchelp.c | 134 ---------- src/sdl12/SRB2DC/dchelp.h | 51 ---- src/sdl12/SRB2DC/i_udp.c | 455 ---------------------------------- src/sdl12/SRB2DC/scramble.c | 259 ------------------- src/sdl12/endtxt.c | 2 +- src/sdl12/hwsym_sdl.c | 2 +- src/sdl12/i_cdmus.c | 2 +- src/sdl12/i_main.c | 11 - src/sdl12/i_system.c | 95 +------ src/sdl12/i_video.c | 53 +--- src/sdl12/sdl_sound.c | 19 +- 39 files changed, 69 insertions(+), 1483 deletions(-) delete mode 100644 src/sdl12/SRB2DC/.gitignore delete mode 100644 src/sdl12/SRB2DC/IP.BIN delete mode 100644 src/sdl12/SRB2DC/Makefile.cfg delete mode 100644 src/sdl12/SRB2DC/SELFBOOT.BIN delete mode 100644 src/sdl12/SRB2DC/VMU.xbm delete mode 100644 src/sdl12/SRB2DC/dchelp.c delete mode 100644 src/sdl12/SRB2DC/dchelp.h delete mode 100644 src/sdl12/SRB2DC/i_udp.c delete mode 100644 src/sdl12/SRB2DC/scramble.c diff --git a/src/Makefile b/src/Makefile index 1d4f8e01c..d67657851 100644 --- a/src/Makefile +++ b/src/Makefile @@ -259,10 +259,8 @@ endif ifdef NOHW OPTS+=-DNOHW else -ifndef DC #Hurdler: not really supported and not tested recently #OPTS+=-DUSE_PALETTED_TEXTURE -endif OPTS+=-DHWRENDER OBJS+=$(OBJDIR)/hw_bsp.o $(OBJDIR)/hw_draw.o $(OBJDIR)/hw_light.o \ $(OBJDIR)/hw_main.o $(OBJDIR)/hw_clip.o $(OBJDIR)/hw_md2.o $(OBJDIR)/hw_cache.o $(OBJDIR)/hw_trick.o @@ -547,11 +545,7 @@ ifdef PSP all: pre-build $(BIN)/$(BINNAME) post-build endif -ifdef DC -all: pre-build $(BIN)/$(BINNAME) post-build -endif -ifndef DC ifndef PSP ifndef XBOX ifdef MINGW @@ -560,7 +554,6 @@ all: pre-build $(BIN)/$(EXENAME) dll endif endif endif -endif ifdef SDL all: pre-build $(BIN)/$(EXENAME) @@ -748,16 +741,6 @@ endif $(REMOVE) $(OBJDIR)/depend.ped @echo "Created dependency file, depend.dep" -ifdef DC -$(OBJDIR)/v_video.o: v_video.c doomdef.h doomtype.h g_state.h m_swap.h r_local.h \ - tables.h m_fixed.h screen.h command.h m_bbox.h r_main.h d_player.h \ - p_pspr.h info.h d_think.h sounds.h p_mobj.h doomdata.h d_ticcmd.h \ - r_data.h r_defs.h r_state.h r_bsp.h r_segs.h r_plane.h r_sky.h \ - r_things.h r_draw.h v_video.h hu_stuff.h d_event.h w_wad.h console.h \ - i_video.h z_zone.h doomstat.h d_clisrv.h d_netcmd.h - $(CC) $(CFLAGS) -fno-omit-frame-pointer $(WFLAGS) -c $< -o $@ -endif - ifdef VALGRIND $(OBJDIR)/z_zone.o: z_zone.c $(CC) $(CFLAGS) $(WFLAGS) -DHAVE_VALGRIND $(VALGRIND_CFLAGS) -c $< -o $@ @@ -799,55 +782,6 @@ $(OBJDIR)/%.o: %.s $(OBJDIR)/SRB2.res: win32/Srb2win.rc win32/afxres.h win32/resource.h $(WINDRES) -i $< -O rc $(WINDRESFLAGS) --include-dir=win32 -o $@ -O coff -ifdef DC -$(OBJDIR)/romdisk.img: - $(KOS_GENROMFS) -f romdisk.img -d ../data -v - -$(OBJDIR)/romdisk.o: romdisk.img - $(KOS_BASE)/utils/bin2o/bin2o romdisk.img romdisk romdisk.o - -$(OBJDIR)/dchelp.o: $(INTERFACE)/SRB2DC/dchelp.c - $(CC) $(CFLAGS) $(WFLAGS) -c $< -o $@ - -$(OBJDIR)/i_udp.o: $(INTERFACE)/SRB2DC/i_udp.c - $(CC) $(CFLAGS) $(WFLAGS) -c $< -o $@ - -$(BIN)/IP.BIN: $(INTERFACE)/SRB2DC/IP.BIN - $(CP) $< $@ - -$(BIN)/SRB2DC.cdi.pass1: $(INTERFACE)/SRB2DC/SELFBOOT.BIN - $(CP) $< $@ - -$(BIN)/$(BINNAME): $(BIN)/$(EXENAME) - $(KOS_OBJCOPY) -R .stack -O binary $< $@ - -$(BIN)/1ST_READ.BIN: $(BIN)/$(BINNAME) $(BIN)/scramble - $(BIN)/scramble $< $@ - -$(BIN)/scramble: $(INTERFACE)/SRB2DC/scramble.c - -$(MKDIR) $(BIN) - $(HOSTCC) $< -o $@ - -iso: $(BIN)/SRB2DC.iso -cdi: $(BIN)/SRB2DC.cdi - -$(BIN)/SRB2DC.iso.pass1: $(BIN)/1ST_READ.BIN $(BIN)/IP.BIN - -$(MKDIR) $(BIN)/cdrom - $(CP) $(BIN)/1ST_READ.BIN $(D_FILES) $(BIN)/cdrom - $(MKISOFS) -l -r -o $@ $(BIN)/cdrom - -$(BIN)/SRB2DC.iso.pass2: $(BIN)/SRB2DC.iso.pass1 - $(DD) if=$< of=$@ bs=2048 skip=16 status=noxfer - -$(BIN)/SRB2DC.iso: $(BIN)/SRB2DC.iso.pass2 $(BIN)/IP.BIN - @cat $(BIN)/IP.BIN $(BIN)/SRB2DC.iso.pass2 > $@ - -$(BIN)/SRB2DC.cdi: $(BIN)/SRB2DC.iso.pass2 $(BIN)/SRB2DC.cdi.pass1 $(BIN)/IP.BIN - @cat $(BIN)/SRB2DC.cdi.pass1 $(BIN)/IP.BIN $(BIN)/SRB2DC.iso.pass2 > $@ - -post-build: $(BIN)/1ST_READ.BIN -endif - ifdef XBOX $(OBJDIR)/xboxhelp.o: $(INTERFACE)/SRB2XBOX/xboxhelp.c $(CC) $(CFLAGS) $(WFLAGS) -c $< -o $@ diff --git a/src/Makefile.cfg b/src/Makefile.cfg index 1b323ca0b..ff5fd4c51 100644 --- a/src/Makefile.cfg +++ b/src/Makefile.cfg @@ -88,10 +88,6 @@ ifdef GCC295 GCC29=1 endif -ifdef DC -NOCASTALIGNWARN=1 -endif - OLDWFLAGS:=$(WFLAGS) # -W -Wno-unused WFLAGS=-Wall @@ -221,7 +217,6 @@ endif ifndef WINCE ifndef XBOX ifndef PSP -ifndef DC ifndef WII ifndef PS3N ifndef LINUX @@ -244,7 +239,6 @@ endif endif endif endif -endif #determine the interface directory (where you put all i_*.c) i_cdmus_o=$(OBJDIR)/i_cdmus.o @@ -382,15 +376,6 @@ ifdef PSP BIN:=$(BIN)/PSP NOUPX=1 else -ifdef DC - INTERFACE=sdl12 - NONX86=1 - SDL=1 - SDL12=1 - OBJDIR:=$(OBJDIR)/DC - BIN:=$(BIN)/DC - NOUPX=1 -else ifdef WINCE INTERFACE=sdl12 NONX86=1 @@ -419,7 +404,6 @@ endif endif endif endif -endif ifdef GP2X ifdef SDL diff --git a/src/console.c b/src/console.c index 54fde7af7..80bb9b9be 100644 --- a/src/console.c +++ b/src/console.c @@ -1207,9 +1207,7 @@ void CONS_Printf(const char *fmt, ...) va_end(argptr); // echo console prints to log file -#ifndef _arch_dreamcast DEBFILE(txt); -#endif if (!con_started) { diff --git a/src/d_main.c b/src/d_main.c index 0edb3b229..1afe05105 100644 --- a/src/d_main.c +++ b/src/d_main.c @@ -140,13 +140,8 @@ boolean advancedemo; INT32 debugload = 0; #endif -#ifdef _arch_dreamcast -char srb2home[256] = "/cd"; -char srb2path[256] = "/cd"; -#else char srb2home[256] = "."; char srb2path[256] = "."; -#endif boolean usehome = true; const char *pandf = "%s" PATHSEP "%s"; @@ -822,11 +817,7 @@ static void IdentifyVersion(void) else #endif { -#ifdef _arch_dreamcast - srb2waddir = "/cd"; -#else srb2waddir = "."; -#endif } } @@ -881,11 +872,7 @@ static void IdentifyVersion(void) #if !defined (HAVE_SDL) || defined (HAVE_MIXER) { -#if defined (DC) && 0 - const char *musicfile = "music_dc.dta"; -#else const char *musicfile = "music.dta"; -#endif const char *musicpath = va(pandf,srb2waddir,musicfile); int ms = W_VerifyNMUSlumps(musicpath); // Don't forget the music! if (ms == 1) @@ -1029,7 +1016,7 @@ void D_SRB2Main(void) if (!userhome) { -#if ((defined (__unix__) && !defined (MSDOS)) || defined(__APPLE__) || defined (UNIXCOMMON)) && !defined (__CYGWIN__) && !defined (DC) && !defined (PSP) && !defined(GP2X) +#if ((defined (__unix__) && !defined (MSDOS)) || defined(__APPLE__) || defined (UNIXCOMMON)) && !defined (__CYGWIN__) && !defined (PSP) && !defined(GP2X) I_Error("Please set $HOME to your home directory\n"); #elif defined (_WIN32_WCE) && 0 if (dedicated) @@ -1072,10 +1059,6 @@ void D_SRB2Main(void) } configfile[sizeof configfile - 1] = '\0'; - -#ifdef _arch_dreamcast - strcpy(downloaddir, "/ram"); // the dreamcast's TMP -#endif } // rand() needs seeded regardless of password @@ -1447,10 +1430,6 @@ const char *D_Home(void) #ifdef ANDROID return "/data/data/org.srb2/"; #endif -#ifdef _arch_dreamcast - char VMUHOME[] = "HOME=/vmu/a1"; - putenv(VMUHOME); //don't use I_PutEnv -#endif if (M_CheckParm("-home") && M_IsNextParm()) userhome = M_GetNextParm(); diff --git a/src/d_net.c b/src/d_net.c index 8de5cf088..2c0a8a329 100644 --- a/src/d_net.c +++ b/src/d_net.c @@ -1359,11 +1359,6 @@ boolean D_CheckNetGame(void) netbuffer = (doomdata_t *)(void *)&doomcom->data; #ifdef DEBUGFILE -#ifdef _arch_dreamcast - //debugfile = stderr; - if (debugfile) - CONS_Printf(M_GetText("debug output to: %s\n"), "STDERR"); -#else if (M_CheckParm("-debugfile")) { char filename[21]; @@ -1381,7 +1376,6 @@ boolean D_CheckNetGame(void) else CONS_Alert(CONS_WARNING, M_GetText("cannot debug output to file %s!\n"), filename); } -#endif #endif D_ClientServerInit(); diff --git a/src/d_netcmd.c b/src/d_netcmd.c index 0a63a2fc7..cba13a6cb 100644 --- a/src/d_netcmd.c +++ b/src/d_netcmd.c @@ -244,7 +244,7 @@ INT32 cv_debug; consvar_t cv_usemouse = {"use_mouse", "On", CV_SAVE|CV_CALL,usemouse_cons_t, I_StartupMouse, 0, NULL, NULL, 0, 0, NULL}; consvar_t cv_usemouse2 = {"use_mouse2", "Off", CV_SAVE|CV_CALL,usemouse_cons_t, I_StartupMouse2, 0, NULL, NULL, 0, 0, NULL}; -#if defined (DC) || defined (_XBOX) || defined (WMINPUT) || defined (_WII) //joystick 1 and 2 +#if defined (_XBOX) || defined (WMINPUT) || defined (_WII) //joystick 1 and 2 consvar_t cv_usejoystick = {"use_joystick", "1", CV_SAVE|CV_CALL, usejoystick_cons_t, I_InitJoystick, 0, NULL, NULL, 0, 0, NULL}; consvar_t cv_usejoystick2 = {"use_joystick2", "2", CV_SAVE|CV_CALL, usejoystick_cons_t, diff --git a/src/d_netfil.c b/src/d_netfil.c index 9f2446e7e..4cbba48a9 100644 --- a/src/d_netfil.c +++ b/src/d_netfil.c @@ -932,7 +932,7 @@ size_t nameonlylength(const char *s) filestatus_t checkfilemd5(char *filename, const UINT8 *wantedmd5sum) { -#if defined (NOMD5) || defined (_arch_dreamcast) +#if defined (NOMD5) (void)wantedmd5sum; (void)filename; #else @@ -967,9 +967,5 @@ filestatus_t findfile(char *filename, const UINT8 *wantedmd5sum, boolean complet if (homecheck == FS_FOUND) return filesearch(filename, srb2path, wantedmd5sum, completepath, 10); -#ifdef _arch_dreamcast - return filesearch(filename, "/cd", wantedmd5sum, completepath, 10); -#else return filesearch(filename, ".", wantedmd5sum, completepath, 10); -#endif } diff --git a/src/doomdef.h b/src/doomdef.h index 4d6bf75bb..9bf87bafc 100644 --- a/src/doomdef.h +++ b/src/doomdef.h @@ -28,7 +28,7 @@ // Use Mixer interface? #ifdef HAVE_MIXER - //#if !defined(DC) && !defined(_WIN32_WCE) && !defined(_XBOX) && !defined(GP2X) + //#if !defined(_WIN32_WCE) && !defined(_XBOX) && !defined(GP2X) #define SOUND SOUND_MIXER #define NOHS // No HW3SOUND #ifdef HW3SOUND @@ -381,7 +381,7 @@ enum { }; // Name of local directory for config files and savegames -#if !defined(_arch_dreamcast) && !defined(_WIN32_WCE) && !defined(GP2X) && !defined(_WII) && !defined(_PS3) +#if !defined(_WIN32_WCE) && !defined(GP2X) && !defined(_WII) && !defined(_PS3) #if (((defined (__unix__) && !defined (MSDOS)) || defined (UNIXCOMMON)) && !defined (__CYGWIN__)) && !defined (__APPLE__) #define DEFAULTDIR ".srb2" #else diff --git a/src/doomtype.h b/src/doomtype.h index a711b466d..29f9f9fa5 100644 --- a/src/doomtype.h +++ b/src/doomtype.h @@ -51,19 +51,6 @@ typedef long ssize_t; #if ((_MSC_VER <= 1200) && (!defined(PDWORD_PTR))) #define PDWORD_PTR PDWORD #endif -#elif defined (_arch_dreamcast) // KOS Dreamcast -#include - -#define UINT8 unsigned char -#define SINT8 signed char - -#define UINT16 uint16 -#define INT16 int16 - -#define INT32 int -#define UINT32 unsigned int -#define INT64 int64 -#define UINT64 uint64 #elif defined (__DJGPP__) #define UINT8 unsigned char #define SINT8 signed char @@ -154,7 +141,7 @@ typedef long ssize_t; #endif #endif //macintosh -#if defined (PC_DOS) || defined (_WIN32) || defined (_WII) || defined (_PSP) || defined (_arch_dreamcast) || defined (__HAIKU__) || defined(_NDS) || defined(_PS3) +#if defined (PC_DOS) || defined (_WIN32) || defined (_WII) || defined (_PSP) || defined (__HAIKU__) || defined(_NDS) || defined(_PS3) #define HAVE_DOSSTR_FUNCS #endif diff --git a/src/g_game.c b/src/g_game.c index 19abd516b..ae6c1bd96 100644 --- a/src/g_game.c +++ b/src/g_game.c @@ -332,11 +332,7 @@ static CV_PossibleValue_t joyaxis_cons_t[] = {{0, "None"}, #endif #else {1, "X-Axis"}, {2, "Y-Axis"}, {-1, "X-Axis-"}, {-2, "Y-Axis-"}, -#ifdef _arch_dreamcast -{3, "R-Trig"}, {4, "L-Trig"}, {-3, "R-Trig-"}, {-4, "L-Trig-"}, -{5, "Alt X-Axis"}, {6, "Alt Y-Axis"}, {-5, "Alt X-Axis-"}, {-6, "Alt Y-Axis-"}, -{7, "Triggers"}, {-7,"Triggers-"}, -#elif defined (_XBOX) +#ifdef _XBOX {3, "Alt X-Axis"}, {4, "Alt Y-Axis"}, {-3, "Alt X-Axis-"}, {-4, "Alt Y-Axis-"}, #else #if JOYAXISSET > 1 @@ -371,13 +367,8 @@ consvar_t cv_mousemove = {"mousemove", "On", CV_SAVE, CV_OnOff, NULL, 0, NULL, N consvar_t cv_mousemove2 = {"mousemove2", "On", CV_SAVE, CV_OnOff, NULL, 0, NULL, NULL, 0, 0, NULL}; consvar_t cv_analog = {"analog", "Off", CV_CALL, CV_OnOff, Analog_OnChange, 0, NULL, NULL, 0, 0, NULL}; consvar_t cv_analog2 = {"analog2", "Off", CV_CALL, CV_OnOff, Analog2_OnChange, 0, NULL, NULL, 0, 0, NULL}; -#ifdef DC -consvar_t cv_useranalog = {"useranalog", "On", CV_SAVE|CV_CALL, CV_OnOff, UserAnalog_OnChange, 0, NULL, NULL, 0, 0, NULL}; -consvar_t cv_useranalog2 = {"useranalog2", "On", CV_SAVE|CV_CALL, CV_OnOff, UserAnalog2_OnChange, 0, NULL, NULL, 0, 0, NULL}; -#else consvar_t cv_useranalog = {"useranalog", "Off", CV_SAVE|CV_CALL, CV_OnOff, UserAnalog_OnChange, 0, NULL, NULL, 0, 0, NULL}; consvar_t cv_useranalog2 = {"useranalog2", "Off", CV_SAVE|CV_CALL, CV_OnOff, UserAnalog2_OnChange, 0, NULL, NULL, 0, 0, NULL}; -#endif static CV_PossibleValue_t directionchar_cons_t[] = {{0, "Camera"}, {1, "Movement"}, {0, NULL}}; @@ -413,9 +404,7 @@ consvar_t cv_moveaxis = {"joyaxis_move", "None", CV_SAVE, joyaxis_cons_t, NULL, #else consvar_t cv_moveaxis = {"joyaxis_move", "Y-Axis", CV_SAVE, joyaxis_cons_t, NULL, 0, NULL, NULL, 0, 0, NULL}; #endif -#ifdef _arch_dreamcast -consvar_t cv_sideaxis = {"joyaxis_side", "Triggers", CV_SAVE, joyaxis_cons_t, NULL, 0, NULL, NULL, 0, 0, NULL}; -#elif defined (_XBOX) +#ifdef _XBOX consvar_t cv_sideaxis = {"joyaxis_side", "Alt X-Axis", CV_SAVE, joyaxis_cons_t, NULL, 0, NULL, NULL, 0, 0, NULL}; consvar_t cv_lookaxis = {"joyaxis_look", "Alt Y-Axis", CV_SAVE, joyaxis_cons_t, NULL, 0, NULL, NULL, 0, 0, NULL}; #elif defined (PSP) @@ -444,9 +433,7 @@ consvar_t cv_firenaxis2 = {"joyaxis2_firenormal", "RAnalog", CV_SAVE, joyaxis_co #else consvar_t cv_turnaxis2 = {"joyaxis2_turn", "X-Axis", CV_SAVE, joyaxis_cons_t, NULL, 0, NULL, NULL, 0, 0, NULL}; consvar_t cv_moveaxis2 = {"joyaxis2_move", "Y-Axis", CV_SAVE, joyaxis_cons_t, NULL, 0, NULL, NULL, 0, 0, NULL}; -#ifdef _arch_dreamcast -consvar_t cv_sideaxis2 = {"joyaxis2_side", "Triggers", CV_SAVE, joyaxis_cons_t, NULL, 0, NULL, NULL, 0, 0, NULL}; -#elif defined (_XBOX) +#ifdef _XBOX consvar_t cv_sideaxis2 = {"joyaxis2_side", "Alt X-Axis", CV_SAVE, joyaxis_cons_t, NULL, 0, NULL, NULL, 0, 0, NULL}; consvar_t cv_lookaxis2 = {"joyaxis2_look", "Alt Y-Axis", CV_SAVE, joyaxis_cons_t, NULL, 0, NULL, NULL, 0, 0, NULL}; #elif defined (_PSP) @@ -838,14 +825,6 @@ static INT32 JoyAxis(axis_input_e axissel) axisval = -axisval; flp = true; } -#ifdef _arch_dreamcast - if (axisval == 7) // special case - { - retaxis = joyxmove[1] - joyymove[1]; - goto skipDC; - } - else -#endif if (axisval > JOYAXISSET*2 || axisval == 0) //not there in array or None return 0; @@ -861,10 +840,6 @@ static INT32 JoyAxis(axis_input_e axissel) retaxis = joyymove[axisval]; } -#ifdef _arch_dreamcast - skipDC: -#endif - if (retaxis < (-JOYAXISRANGE)) retaxis = -JOYAXISRANGE; if (retaxis > (+JOYAXISRANGE)) @@ -916,14 +891,7 @@ static INT32 Joy2Axis(axis_input_e axissel) axisval = -axisval; flp = true; } -#ifdef _arch_dreamcast - if (axisval == 7) // special case - { - retaxis = joy2xmove[1] - joy2ymove[1]; - goto skipDC; - } - else -#endif + if (axisval > JOYAXISSET*2 || axisval == 0) //not there in array or None return 0; @@ -939,10 +907,6 @@ static INT32 Joy2Axis(axis_input_e axissel) retaxis = joy2ymove[axisval]; } -#ifdef _arch_dreamcast - skipDC: -#endif - if (retaxis < (-JOYAXISRANGE)) retaxis = -JOYAXISRANGE; if (retaxis > (+JOYAXISRANGE)) diff --git a/src/g_input.c b/src/g_input.c index 36b8373aa..802c4cc1f 100644 --- a/src/g_input.c +++ b/src/g_input.c @@ -204,11 +204,9 @@ static keyname_t keynames[] = {KEY_SCROLLLOCK, "SCROLLLOCK"}, // bill gates keys -#ifndef _arch_dreamcast {KEY_LEFTWIN, "LEFTWIN"}, {KEY_RIGHTWIN, "RIGHTWIN"}, {KEY_MENU, "MENU"}, -#endif {KEY_LSHIFT, "LSHIFT"}, {KEY_RSHIFT, "RSHIFT"}, @@ -270,7 +268,7 @@ static keyname_t keynames[] = {KEY_MOUSE1+0,"MOUSE1"}, {KEY_MOUSE1+1,"MOUSE2"}, {KEY_MOUSE1+2,"MOUSE3"}, -#if !defined (_arch_dreamcast) && !defined (_XBOX) && !defined (_PSP) && !defined (_WII) +#if !defined (_XBOX) && !defined (_PSP) && !defined (_WII) {KEY_MOUSE1+3,"MOUSE4"}, {KEY_MOUSE1+4,"MOUSE5"}, {KEY_MOUSE1+5,"MOUSE6"}, @@ -280,7 +278,7 @@ static keyname_t keynames[] = {KEY_2MOUSE1+0,"SEC_MOUSE2"}, // BP: sorry my mouse handler swap button 1 and 2 {KEY_2MOUSE1+1,"SEC_MOUSE1"}, {KEY_2MOUSE1+2,"SEC_MOUSE3"}, -#if !defined (_arch_dreamcast) && !defined (_XBOX) && !defined (_PSP) && !defined (_WII) +#if !defined (_XBOX) && !defined (_PSP) && !defined (_WII) {KEY_2MOUSE1+3,"SEC_MOUSE4"}, {KEY_2MOUSE1+4,"SEC_MOUSE5"}, {KEY_2MOUSE1+5,"SEC_MOUSE6"}, @@ -292,16 +290,7 @@ static keyname_t keynames[] = {KEY_2MOUSEWHEELUP, "Wheel 2 UP"}, {KEY_2MOUSEWHEELDOWN, "Wheel 2 Down"}, -#ifdef DC - {KEY_JOY1+0, "JOYC"}, - {KEY_JOY1+1, "JOYB"}, - {KEY_JOY1+2, "JOYA"}, - {KEY_JOY1+3, "JOYS"}, - {KEY_JOY1+4, "JOYZ"}, - {KEY_JOY1+5, "JOYY"}, - {KEY_JOY1+6, "JOYX"}, - {KEY_JOY1+7, "JOYD"}, -#elif defined (_XBOX) +#ifdef _XBOX {KEY_JOY1+0, "JOYA"}, {KEY_JOY1+1, "JOYB"}, {KEY_JOY1+2, "JOYX"}, @@ -414,7 +403,7 @@ static keyname_t keynames[] = {KEY_JOY1+7, "JOY8"}, {KEY_JOY1+8, "JOY9"}, #endif -#if !defined (_arch_dreamcast) && !defined (NOMOREJOYBTN_1S) +#if !defined (NOMOREJOYBTN_1S) // we use up to 32 buttons in DirectInput {KEY_JOY1+9, "JOY10"}, {KEY_JOY1+10, "JOY11"}, @@ -450,7 +439,6 @@ static keyname_t keynames[] = {KEY_HAT1+5, "HATDOWN2"}, {KEY_HAT1+6, "HATLEFT2"}, {KEY_HAT1+7, "HATRIGHT2"}, -#ifndef _arch_dreamcast {KEY_HAT1+8, "HATUP3"}, {KEY_HAT1+9, "HATDOWN3"}, {KEY_HAT1+10, "HATLEFT3"}, @@ -459,13 +447,12 @@ static keyname_t keynames[] = {KEY_HAT1+13, "HATDOWN4"}, {KEY_HAT1+14, "HATLEFT4"}, {KEY_HAT1+15, "HATRIGHT4"}, -#endif #endif {KEY_DBLMOUSE1+0, "DBLMOUSE1"}, {KEY_DBLMOUSE1+1, "DBLMOUSE2"}, {KEY_DBLMOUSE1+2, "DBLMOUSE3"}, -#if !defined (_arch_dreamcast) && !defined (_XBOX) && !defined (_PSP) && !defined (_WII) +#if !defined (_XBOX) && !defined (_PSP) && !defined (_WII) {KEY_DBLMOUSE1+3, "DBLMOUSE4"}, {KEY_DBLMOUSE1+4, "DBLMOUSE5"}, {KEY_DBLMOUSE1+5, "DBLMOUSE6"}, @@ -475,7 +462,7 @@ static keyname_t keynames[] = {KEY_DBL2MOUSE1+0, "DBLSEC_MOUSE2"}, // BP: sorry my mouse handler swap button 1 and 2 {KEY_DBL2MOUSE1+1, "DBLSEC_MOUSE1"}, {KEY_DBL2MOUSE1+2, "DBLSEC_MOUSE3"}, -#if !defined (_arch_dreamcast) && !defined (_XBOX) && !defined (_PSP) && !defined (_WII) +#if !defined (_XBOX) && !defined (_PSP) && !defined (_WII) {KEY_DBL2MOUSE1+3, "DBLSEC_MOUSE4"}, {KEY_DBL2MOUSE1+4, "DBLSEC_MOUSE5"}, {KEY_DBL2MOUSE1+5, "DBLSEC_MOUSE6"}, @@ -483,16 +470,7 @@ static keyname_t keynames[] = {KEY_DBL2MOUSE1+7, "DBLSEC_MOUSE8"}, #endif -#ifdef DC - {KEY_DBLJOY1+0, "DBLJOYC"}, - {KEY_DBLJOY1+1, "DBLJOYB"}, - {KEY_DBLJOY1+2, "DBLJOYA"}, - {KEY_DBLJOY1+3, "DBLJOYS"}, - {KEY_DBLJOY1+4, "DBLJOYZ"}, - {KEY_DBLJOY1+5, "DBLJOYY"}, - {KEY_DBLJOY1+6, "DBLJOYX"}, - {KEY_DBLJOY1+7, "DBLJOYD"}, -#elif defined (_XBOX) +#ifdef _XBOX {KEY_DBLJOY1+0, "DBLJOYA"}, {KEY_DBLJOY1+1, "DBLJOYB"}, {KEY_DBLJOY1+2, "DBLJOYX"}, @@ -604,7 +582,7 @@ static keyname_t keynames[] = {KEY_DBLJOY1+6, "DBLJOY7"}, {KEY_DBLJOY1+7, "DBLJOY8"}, #endif -#if !defined (_arch_dreamcast) && !defined (NOMOREJOYBTN_1DBL) +#if !defined (NOMOREJOYBTN_1DBL) {KEY_DBLJOY1+8, "DBLJOY9"}, {KEY_DBLJOY1+9, "DBLJOY10"}, {KEY_DBLJOY1+10, "DBLJOY11"}, @@ -639,7 +617,6 @@ static keyname_t keynames[] = {KEY_DBLHAT1+5, "DBLHATDOWN2"}, {KEY_DBLHAT1+6, "DBLHATLEFT2"}, {KEY_DBLHAT1+7, "DBLHATRIGHT2"}, -#ifndef _arch_dreamcast {KEY_DBLHAT1+8, "DBLHATUP3"}, {KEY_DBLHAT1+9, "DBLHATDOWN3"}, {KEY_DBLHAT1+10, "DBLHATLEFT3"}, @@ -649,18 +626,8 @@ static keyname_t keynames[] = {KEY_DBLHAT1+14, "DBLHATLEFT4"}, {KEY_DBLHAT1+15, "DBLHATRIGHT4"}, #endif -#endif -#ifdef DC - {KEY_2JOY1+0, "SEC_JOYC"}, - {KEY_2JOY1+1, "SEC_JOYB"}, - {KEY_2JOY1+2, "SEC_JOYA"}, - {KEY_2JOY1+3, "SEC_JOYS"}, - {KEY_2JOY1+4, "SEC_JOYZ"}, - {KEY_2JOY1+5, "SEC_JOYY"}, - {KEY_2JOY1+6, "SEC_JOYX"}, - {KEY_2JOY1+7, "SEC_JOYD"}, -#elif defined (_XBOX) +#ifdef _XBOX {KEY_2JOY1+0, "SEC_JOYA"}, {KEY_2JOY1+1, "SEC_JOYB"}, {KEY_2JOY1+2, "SEC_JOYX"}, @@ -752,7 +719,7 @@ static keyname_t keynames[] = {KEY_2JOY1+6, "SEC_JOY7"}, {KEY_2JOY1+7, "SEC_JOY8"}, #endif -#if !defined (_arch_dreamcast) && !defined (NOMOREJOYBTN_2S) +#if !defined (NOMOREJOYBTN_2S) // we use up to 32 buttons in DirectInput {KEY_2JOY1+8, "SEC_JOY9"}, {KEY_2JOY1+9, "SEC_JOY10"}, @@ -789,7 +756,6 @@ static keyname_t keynames[] = {KEY_2HAT1+5, "SEC_HATDOWN2"}, {KEY_2HAT1+6, "SEC_HATLEFT2"}, {KEY_2HAT1+7, "SEC_HATRIGHT2"}, -#ifndef _arch_dreamcast {KEY_2HAT1+8, "SEC_HATUP3"}, {KEY_2HAT1+9, "SEC_HATDOWN3"}, {KEY_2HAT1+10, "SEC_HATLEFT3"}, @@ -799,18 +765,8 @@ static keyname_t keynames[] = {KEY_2HAT1+14, "SEC_HATLEFT4"}, {KEY_2HAT1+15, "SEC_HATRIGHT4"}, #endif -#endif -#ifdef DC - {KEY_DBL2JOY1+0, "DBLSEC_JOYC"}, - {KEY_DBL2JOY1+1, "DBLSEC_JOYB"}, - {KEY_DBL2JOY1+2, "DBLSEC_JOYA"}, - {KEY_DBL2JOY1+3, "DBLSEC_JOYS"}, - {KEY_DBL2JOY1+4, "DBLSEC_JOYZ"}, - {KEY_DBL2JOY1+5, "DBLSEC_JOYY"}, - {KEY_DBL2JOY1+6, "DBLSEC_JOYX"}, - {KEY_DBL2JOY1+7, "DBLSEC_JOYD"}, -#elif defined (_XBOX) +#ifdef _XBOX {KEY_DBL2JOY1+0, "DBLSEC_JOYA"}, {KEY_DBL2JOY1+1, "DBLSEC_JOYB"}, {KEY_DBL2JOY1+2, "DBLSEC_JOYX"}, @@ -902,7 +858,7 @@ static keyname_t keynames[] = {KEY_DBL2JOY1+6, "DBLSEC_JOY7"}, {KEY_DBL2JOY1+7, "DBLSEC_JOY8"}, #endif -#if !defined (_arch_dreamcast) && !defined (NOMOREJOYBTN_2DBL) +#if !defined (NOMOREJOYBTN_2DBL) {KEY_DBL2JOY1+8, "DBLSEC_JOY9"}, {KEY_DBL2JOY1+9, "DBLSEC_JOY10"}, {KEY_DBL2JOY1+10, "DBLSEC_JOY11"}, @@ -937,7 +893,6 @@ static keyname_t keynames[] = {KEY_DBL2HAT1+5, "DBLSEC_HATDOWN2"}, {KEY_DBL2HAT1+6, "DBLSEC_HATLEFT2"}, {KEY_DBL2HAT1+7, "DBLSEC_HATRIGHT2"}, -#ifndef _arch_dreamcast {KEY_DBL2HAT1+8, "DBLSEC_HATUP3"}, {KEY_DBL2HAT1+9, "DBLSEC_HATDOWN3"}, {KEY_DBL2HAT1+10, "DBLSEC_HATLEFT3"}, @@ -947,7 +902,6 @@ static keyname_t keynames[] = {KEY_DBL2HAT1+14, "DBLSEC_HATLEFT4"}, {KEY_DBL2HAT1+15, "DBLSEC_HATRIGHT4"}, #endif -#endif }; @@ -1049,60 +1003,7 @@ INT32 G_KeyStringtoNum(const char *keystr) return 0; } -#ifdef DC -void G_Controldefault(void) -{ - gamecontrol[gc_forward ][0] = KEY_HAT1+0; //Up - gamecontrol[gc_forward ][1] = KEY_UPARROW; - gamecontrol[gc_backward ][0] = KEY_HAT1+1; //Down - gamecontrol[gc_backward ][1] = KEY_DOWNARROW; - //gamecontrol[gc_straferight][0] = '['; - //gamecontrol[gc_strafeleft ][0] = ']'; - gamecontrol[gc_turnleft ][0] = KEY_HAT1+2; //Left - gamecontrol[gc_turnleft ][1] = KEY_LEFTARROW; - gamecontrol[gc_turnright ][0] = KEY_HAT1+3; //Right - gamecontrol[gc_turnright ][1] = KEY_RIGHTARROW; - gamecontrol[gc_weaponnext ][0] = ']'; - gamecontrol[gc_weaponprev ][0] = '['; - gamecontrol[gc_fire ][0] = KEY_JOY1+6; //X - gamecontrol[gc_fire ][1] = KEY_RCTRL; - gamecontrol[gc_firenormal ][0] = KEY_JOY1+5; //Y - gamecontrol[gc_firenormal ][1] = ';'; - gamecontrol[gc_tossflag ][0] = '\''; - gamecontrol[gc_use ][0] = KEY_JOY1+1; //B - gamecontrol[gc_use ][1] = '.'; - gamecontrol[gc_camtoggle ][1] = ','; - gamecontrol[gc_camreset ][0] = 'c'; - gamecontrol[gc_lookup ][0] = KEY_PGUP; - gamecontrol[gc_lookdown ][0] = KEY_PGDN; - gamecontrol[gc_centerview ][0] = KEY_END; - gamecontrol[gc_mouseaiming][0] = 's'; - gamecontrol[gc_talkkey ][0] = 't'; - gamecontrol[gc_teamkey ][0] = 'y'; - gamecontrol[gc_scores ][0] = KEY_TAB; - gamecontrol[gc_jump ][0] = KEY_JOY1+2; //A - gamecontrol[gc_jump ][1] = '/'; - gamecontrol[gc_console ][0] = KEY_CONSOLE; - gamecontrol[gc_console ][1] = KEY_F5; - //gamecontrolbis - gamecontrolbis[gc_forward ][0] = KEY_2HAT1+0; - gamecontrolbis[gc_forward ][1] = 'w'; - gamecontrolbis[gc_backward ][0] = KEY_2HAT1+1; - gamecontrolbis[gc_backward ][1] = 's'; - gamecontrolbis[gc_turnleft ][0] = KEY_2HAT1+2; - gamecontrolbis[gc_turnleft ][1] = 'a'; - gamecontrolbis[gc_turnright ][0] = KEY_2HAT1+3; - gamecontrolbis[gc_turnright ][1] = 'd'; - gamecontrolbis[gc_weaponnext][0] = 't'; - gamecontrolbis[gc_weaponprev][0] = 'r'; - gamecontrolbis[gc_fire ][0] = KEY_2JOY1+6; //X - gamecontrolbis[gc_firenormal][0] = KEY_2JOY1+5; //Y - gamecontrolbis[gc_use ][0] = KEY_2JOY1+1; //B - gamecontrolbis[gc_jump ][0] = KEY_2JOY1+2; //A - //gamecontrolbis[gc_straferight][0] = 'x'; - //gamecontrolbis[gc_strafeleft ][0] = 'z'; -} -#elif defined (_PSP) +#ifdef _PSP void G_Controldefault(void) { gamecontrol[gc_forward ][0] = KEY_HAT1+0; // Up diff --git a/src/g_input.h b/src/g_input.h index 808397438..353a3108e 100644 --- a/src/g_input.h +++ b/src/g_input.h @@ -23,12 +23,7 @@ #define NUMKEYS 256 -#ifdef _arch_dreamcast -#define MOUSEBUTTONS 5 -#define JOYBUTTONS 8 // 8 buttons -#define JOYHATS 2 // 2 hats -#define JOYAXISSET 3 // 3 Sets of 2 axises -#elif defined (_XBOX) +#ifdef _XBOX #define MOUSEBUTTONS 5 #define JOYBUTTONS 12 // 12 buttons #define JOYHATS 1 // 1 hat diff --git a/src/i_addrinfo.c b/src/i_addrinfo.c index eb29e3608..64a30ca70 100644 --- a/src/i_addrinfo.c +++ b/src/i_addrinfo.c @@ -27,7 +27,7 @@ #endif #ifdef _PS3 #include -#elif ! defined (_arch_dreamcast) +#else #include #endif #endif diff --git a/src/i_tcp.c b/src/i_tcp.c index 5681a9d44..5f4236302 100644 --- a/src/i_tcp.c +++ b/src/i_tcp.c @@ -62,16 +62,11 @@ #ifdef USE_WINSOCK1 #include #elif !defined (SCOUW2) && !defined (SCOUW7) && !defined (__OS2__) -#ifdef HAVE_LWIP -#include -#elif !defined (USE_WINSOCK) +#ifndef USE_WINSOCK #include #endif //normal BSD API -#ifdef HAVE_LWIP -#include -#define ioctl lwip_ioctl -#elif !defined (USE_WINSOCK) //!HAVE_LWIP +#ifndef USE_WINSOCK #ifdef __APPLE_CC__ #ifndef _BSD_SOCKLEN_T_ #define _BSD_SOCKLEN_T_ @@ -81,14 +76,10 @@ #include #endif //normal BSD API -#if defined(_arch_dreamcast) && !defined(HAVE_LWIP) -#include -#elif defined(HAVE_LWIP) -#include -#elif defined (_PS3) +#if defined (_PS3) #include #include -#elif !defined(USE_WINSOCK) //!HAVE_LWIP +#elif !defined(USE_WINSOCK) #include #include #endif //normal BSD API @@ -96,10 +87,6 @@ #include #include -#ifdef _arch_dreamcast -#include "sdl12/SRB2DC/dchelp.h" -#endif - #if (defined (__unix__) && !defined (MSDOS)) || defined(__APPLE__) || defined (UNIXCOMMON) #include #endif // UNIXCOMMON @@ -205,9 +192,7 @@ static UINT8 UPNP_support = TRUE; #define SELECTTEST #endif -#elif defined(HAVE_LWIP) -#define SELECTTEST -#elif !defined( _arch_dreamcast) +#else #define SELECTTEST #endif @@ -1165,12 +1150,6 @@ boolean I_InitTcpDriver(void) CONS_Debug(DBG_NETPLAY, "WinSock description: %s\n",WSAData.szDescription); CONS_Debug(DBG_NETPLAY, "WinSock System Status: %s\n",WSAData.szSystemStatus); #endif -#ifdef HAVE_LWIP - lwip_kos_init(); -#elif defined(_arch_dreamcast) - //return; - net_init(); -#endif #ifdef __DJGPP__ #ifdef WATTCP // Alam_GBC: survive bootp, dhcp, rarp and wattcp/pktdrv from failing to load survive_eth = 1; // would be needed to not exit if pkt_eth_init() fails @@ -1274,11 +1253,6 @@ void I_ShutdownTcpDriver(void) WS_addrinfocleanup(); WSACleanup(); #endif -#ifdef HAVE_LWIP - lwip_kos_shutdown(); -#elif defined(_arch_dreamcast) - net_shutdown(); -#endif #ifdef __DJGPP__ #ifdef WATTCP // wattcp //_outch = NULL; diff --git a/src/m_argv.c b/src/m_argv.c index 859fc9026..8b935ba7f 100644 --- a/src/m_argv.c +++ b/src/m_argv.c @@ -124,7 +124,7 @@ void M_PushSpecialParameters(void) /// \brief max args -#if defined (_arch_dreamcast) || defined (_XBOX) || defined (_WII) +#if defined (_XBOX) || defined (_WII) #define MAXARGVS 1 #else #define MAXARGVS 256 diff --git a/src/m_menu.c b/src/m_menu.c index 748c78ad1..a74d510e1 100644 --- a/src/m_menu.c +++ b/src/m_menu.c @@ -2432,7 +2432,6 @@ boolean M_Responder(event_t *ev) itemOn = 0; return true; -#ifndef DC case KEY_F5: // Video Mode if (modeattacking) return true; @@ -2440,7 +2439,6 @@ boolean M_Responder(event_t *ev) M_Options(0); M_VideoModeMenu(0); return true; -#endif case KEY_F6: // Empty return true; @@ -2828,9 +2826,8 @@ void M_ClearMenus(boolean callexitmenufunc) if (currentMenu->quitroutine && callexitmenufunc && !currentMenu->quitroutine()) return; // we can't quit this menu (also used to set parameter from the menu) -#ifndef DC // Save the config file. I'm sick of crashing the game later and losing all my changes! + // Save the config file. I'm sick of crashing the game later and losing all my changes! COM_BufAddText(va("saveconfig \"%s\" -silent\n", configfile)); -#endif //Alam: But not on the Dreamcast's VMUs if (currentMenu == &MessageDef) // Oh sod off! currentMenu = &MainDef; // Not like it matters diff --git a/src/m_misc.c b/src/m_misc.c index fdbb19fa7..874b906dc 100644 --- a/src/m_misc.c +++ b/src/m_misc.c @@ -58,7 +58,7 @@ typedef off_t off64_t; #if defined (_WIN32) #define PRIdS "Iu" -#elif defined (_PSP) || defined (_arch_dreamcast) || defined (DJGPP) || defined (_WII) || defined (_NDS) || defined (_PS3) +#elif defined (_PSP) || defined (DJGPP) || defined (_WII) || defined (_NDS) || defined (_PS3) #define PRIdS "u" #else #define PRIdS "zu" diff --git a/src/m_misc.h b/src/m_misc.h index 85d819a3c..4f1256764 100644 --- a/src/m_misc.h +++ b/src/m_misc.h @@ -40,9 +40,7 @@ void M_SaveFrame(void); void M_StopMovie(void); // the file where game vars and settings are saved -#ifdef DC -#define CONFIGFILENAME "srb2dc.cfg" -#elif defined (PSP) +#ifdef PSP #define CONFIGFILENAME "srb2psp.cfg" #else #define CONFIGFILENAME "config.cfg" diff --git a/src/mserv.c b/src/mserv.c index 76fba835b..26351bf8a 100644 --- a/src/mserv.c +++ b/src/mserv.c @@ -42,12 +42,6 @@ #include #endif // __OS2__ -#ifdef HAVE_LWIP -#include -#include -#include -#define ioctl lwip_ioctl -#else #include #ifdef __APPLE_CC__ #ifndef _BSD_SOCKLEN_T_ @@ -58,15 +52,10 @@ #include // sockaddr_in #ifdef _PS3 #include -#elif !defined(_arch_dreamcast) +#else #include // getaddrinfo(),... #include #endif -#endif - -#ifdef _arch_dreamcast -#include "sdl12/SRB2DC/dchelp.h" -#endif #include // timeval,... (TIMEOUT) #include diff --git a/src/s_sound.c b/src/s_sound.c index 2f3b1ae93..07f5e18f0 100644 --- a/src/s_sound.c +++ b/src/s_sound.c @@ -62,7 +62,7 @@ consvar_t sndserver_arg = {"sndserver_arg", "-quiet", CV_SAVE, NULL, 0, NULL, NU #define SURROUND #endif -#if defined (_WIN32_WCE) || defined (DC) || defined(GP2X) +#if defined (_WIN32_WCE) || defined(GP2X) consvar_t cv_samplerate = {"samplerate", "11025", 0, CV_Unsigned, NULL, 11025, NULL, NULL, 0, 0, NULL}; //Alam: For easy hacking? #elif defined(_PSP) || defined(_WINDOWS) consvar_t cv_samplerate = {"samplerate", "44100", 0, CV_Unsigned, NULL, 44100, NULL, NULL, 0, 0, NULL}; //Alam: For easy hacking? @@ -93,7 +93,7 @@ static void Captioning_OnChange(void) consvar_t cv_closedcaptioning = {"closedcaptioning", "Off", CV_SAVE|CV_CALL, CV_OnOff, Captioning_OnChange, 0, NULL, NULL, 0, 0, NULL}; // number of channels available -#if defined (_WIN32_WCE) || defined (DC) || defined (PSP) || defined(GP2X) +#if defined (_WIN32_WCE) || defined (PSP) || defined(GP2X) consvar_t cv_numChannels = {"snd_channels", "8", CV_SAVE|CV_CALL, CV_Unsigned, SetChannelsNum, 0, NULL, NULL, 0, 0, NULL}; #else consvar_t cv_numChannels = {"snd_channels", "32", CV_SAVE|CV_CALL, CV_Unsigned, SetChannelsNum, 0, NULL, NULL, 0, 0, NULL}; @@ -1379,7 +1379,7 @@ static boolean S_DigMusic(const char *mname, boolean looping) void S_ChangeMusic(const char *mmusic, UINT16 mflags, boolean looping) { -#if defined (DC) || defined (_WIN32_WCE) || defined (PSP) || defined(GP2X) +#if defined (_WIN32_WCE) || defined (PSP) || defined(GP2X) S_ClearSfx(); #endif diff --git a/src/screen.c b/src/screen.c index 8c1811d5d..4a4947069 100644 --- a/src/screen.c +++ b/src/screen.c @@ -169,7 +169,7 @@ void SCR_SetMode(void) }*/ else I_Error("unknown bytes per pixel mode %d\n", vid.bpp); -/*#if !defined (DC) && !defined (WII) +/*#if !defined (WII) if (SCR_IsAspectCorrect(vid.width, vid.height)) CONS_Alert(CONS_WARNING, M_GetText("Resolution is not aspect-correct!\nUse a multiple of %dx%d\n"), BASEVIDWIDTH, BASEVIDHEIGHT); #endif*/ diff --git a/src/screen.h b/src/screen.h index d2d0e87ab..66aa8dbec 100644 --- a/src/screen.h +++ b/src/screen.h @@ -28,7 +28,7 @@ #endif // quickhack for V_Init()... to be cleaned up -#if defined (DC) || defined (_WIN32_WCE) || defined (PSP) || defined (NOPOSTPROCESSING) +#if defined (_WIN32_WCE) || defined (PSP) || defined (NOPOSTPROCESSING) #define NUMSCREENS 2 #else #define NUMSCREENS 5 @@ -43,7 +43,7 @@ // we try to re-allocate a minimum of buffers for stability of the memory, // so all the small-enough tables based on screen size, are allocated once // and for all at the maximum size. -#if defined (_WIN32_WCE) || defined (DC) || defined (_PSP) || defined (_NDS) +#if defined (_WIN32_WCE) || defined (_PSP) || defined (_NDS) #define MAXVIDWIDTH 320 #define MAXVIDHEIGHT 200 #elif defined (GP2X) diff --git a/src/sdl12/Makefile.cfg b/src/sdl12/Makefile.cfg index 8d9ebc35c..dd5fa7c3e 100644 --- a/src/sdl12/Makefile.cfg +++ b/src/sdl12/Makefile.cfg @@ -14,10 +14,6 @@ ifdef PANDORA include sdl12/SRB2Pandora/Makefile.cfg endif #ifdef PANDORA -ifdef DC -include sdl12/SRB2DC/Makefile.cfg -endif #ifdef DC - ifdef PS3N include sdl12/SRB2PS3/Makefile.cfg endif #ifdef PS3N diff --git a/src/sdl12/SRB2DC/.gitignore b/src/sdl12/SRB2DC/.gitignore deleted file mode 100644 index a966585d4..000000000 --- a/src/sdl12/SRB2DC/.gitignore +++ /dev/null @@ -1 +0,0 @@ -/scramble diff --git a/src/sdl12/SRB2DC/IP.BIN b/src/sdl12/SRB2DC/IP.BIN deleted file mode 100644 index c3366213bde1c6b5dc03db4cfdab85c1c74ef5fc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 32768 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 diff --git a/src/sdl12/SRB2DC/Makefile.cfg b/src/sdl12/SRB2DC/Makefile.cfg deleted file mode 100644 index 3edaf8a16..000000000 --- a/src/sdl12/SRB2DC/Makefile.cfg +++ /dev/null @@ -1,53 +0,0 @@ -# -# Makefile.cfg for SRB2/Dreamcast -# - -#include $(KOS_BASE)/Makefile.rules - -# -#hmmm, the Dreamcast -# - - HOSTCC:=$(CC) - CC=$(KOS_CC) - PREFIX=$(KOS_CC_BASE)/bin/$(KOS_CC_PREFIX) - OBJDUMP=$(PREFIX)-objdump - OBJCOPY=$(PREFIX)-objcopy - - #NOHW=1 #No working MiniGL right now - NOHS=1 #No HWSound right now -ifndef LWIP - NONET=1 #No LWIP -endif - #i_net_o=$(OBJDIR)/i_udp.o #use KOS's UDP - #NOMIXER=1 #Basic sound only - NOIPX=1 #No IPX network code - NOPNG=1 #No Screenshot - - OPTS=$(KOS_CFLAGS) -DUNIXCOMMON -DDC -ifndef NOHW - OPTS+=-DSTATIC_OPENGL -DMINI_GL_COMPATIBILITY -DKOS_GL_COMPATIBILITY -endif - SDL_CFLAGS?=-I$(KOS_BASE)/addons/include/SDL - SDL_LDFLAGS?=-lSDL - LDFLAGS=$(KOS_LDFLAGS) - LIBS:=$(KOS_LIBS) -lconio -lm -ifndef NOMIXER - LIBS:=-loggvorbisplay -lSDL $(LIBS) -endif - -ifdef LWIP - OPTS+=-I$(KOS_BASE)/../kos-ports/lwip/kos/include -I$(KOS_BASE)/../kos-ports/lwip/lwip/src/include/ipv4 -I$(KOS_BASE)/../kos-ports/lwip/lwip/src/include -DIPv4 - LIBS:=-llwip4 -lkosutils $(LIBS) - OPTS+=-DHAVE_LWIP -endif -ifndef NOHW - LIBS+=-lgl -endif - - i_system_o+=$(OBJDIR)/dchelp.o - i_main_o=$(KOS_START) $(OBJDIR)/i_main.o $(OBJEXTRA) - - # name of the exefile - EXENAME?=SRB2.elf - BINNAME?=SRB2.BIN diff --git a/src/sdl12/SRB2DC/SELFBOOT.BIN b/src/sdl12/SRB2DC/SELFBOOT.BIN deleted file mode 100644 index a87ee386927e4dd72d947aa08faecd1b94677c93..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1408808 zcmeI(dz8)f;{WlzhnPZ5E=4r988PHeQ=)PyQDSn>rDn{GjK7;T_7fLkr9a_#g`;Xt+Ykk-H{qx3A zcq2f7009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5;&|4RZ1ZIiO+CNy1DI;+Z(gxhMx<;@Ac8d@Gos5)%b+=N5bs}@ZvzP!>8 zRez{@WsSJ&67KmRsh~{J^67)xeO*2&uUP3#55$z+T(V}BY6VS#+iqx_K4Q-0yUOgl zVrPSdQ0|ZhzfHU}5dKe0kx=v8{sVGDDfI&}g^XvC>s-KWlhY?FCo3;A)O={d(e{aZ z`UJ~ASvKpMl~YS*#qCKb^FwSxrDlnFwQrxDJ!sH?+zVe?D>fJm7JhN7+Vzt|%^!R) zH}k@y3*V(vR{zWkpERP>)uqmVQc8nR$H5sHnK_~0&JuwZRW1#LRt6`9|7?GpLLKwc z`e)^&UHJ03gX0Q+%Hg-)lQt}Ld*-mb%-pQsNBk}I_wkJ;PwjWdv-8tx)!$n`W=dk8 z-F+4%SKC?jlM>AnGn%E9ukyo`__X5B+*H3zYM|L=^|5$3Z z_P=D62>jA_{leg+z|#NRHT9t#!QX!m1lkVB8TKXvqPP7(+UTY^I#}+=YZ^t3op*Ra&Ta?`lqMF=EgQF zS+8lm5`kdKrNP42XVAd3!W#uTrVTm&$F=O6nN|ptHz1VPH#5}bp3WJ?r_G)eGcxgx z#G|$H0tu5=uB(&SbX7t@r|NmdCMU&ZCrnFEsC8Xl>hcHrmQBbGWn7Zb?(wCSM%`ozII&QmVIZ`{e9SD zg)1vIIiY>g{UzG`aXK^c{A-#pZA@bPuw|jDTbpF2_nS3;V%17FYzr2ido~SDtn^T& z1)ZzxD$!zP#?*&ix^HHU5))STEjn!1O^Fkp&8)byMDvvynT_wfKCfxie3uY9}KAO=iyXc6=7G#VlnVpgMVn*Mjt?heuPAJ=J>$BNKtF^6CxWeG8 z!KNc(5^5#o-IG!5@!3_g2P6!xQ8M9!Ce>;+?O)`{#FLu_7rr2SD<%Xp3g3TPF`;O% zaN!w+|6F(t`{oW9dSUqW0vBGvfB&s-TR6T!7d~`mK;DJ-$=_TZNH6>z|NfMYDWL{A z8KIUXCzPEKH=%4^!)eJ0?SG6NUvgbAVO+lnaT$SPOUrL5zqMKUxZ=T1SCkICS$$fW zkuSt0ygIZ>>6B&(+35)x?GySJUTpBZ@zdswh{*_kb$oor%ePOSTr4i(mir#;6zo6m z&Q9Iur?>1=kg};^ks;+;CQf-Jw#bpI8Wx+}Fmr0}bGf0kiixZ0j9hr<QIf z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 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 E52|=-G5`Po diff --git a/src/sdl12/SRB2DC/VMU.xbm b/src/sdl12/SRB2DC/VMU.xbm deleted file mode 100644 index 0d56985f3..000000000 --- a/src/sdl12/SRB2DC/VMU.xbm +++ /dev/null @@ -1,19 +0,0 @@ -#define VMU_width 48 -#define VMU_height 32 -static unsigned char VMU_bits[] = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x0f, 0x00, 0x00, - 0x00, 0x00, 0x58, 0x75, 0x00, 0x00, 0x00, 0x00, 0xee, 0xaa, 0x00, 0x00, - 0x00, 0x86, 0x55, 0x55, 0x01, 0x00, 0x00, 0xda, 0xc8, 0xaf, 0x00, 0x00, - 0x00, 0x62, 0x55, 0x54, 0x00, 0x00, 0x00, 0x32, 0xa2, 0x6c, 0x00, 0x00, - 0x00, 0x5c, 0x55, 0xfd, 0x01, 0x00, 0x00, 0xac, 0x88, 0xaa, 0x02, 0x00, - 0x00, 0x54, 0x75, 0x55, 0x05, 0x00, 0x00, 0xac, 0xbf, 0xaa, 0x0a, 0x00, - 0x00, 0xd6, 0x61, 0x55, 0x15, 0x00, 0x00, 0xe9, 0xc0, 0xaa, 0x2a, 0x00, - 0x00, 0x39, 0x40, 0x55, 0x55, 0x00, 0x00, 0x6d, 0xc0, 0xaa, 0xbe, 0x00, - 0x00, 0x6d, 0x40, 0xd5, 0xc3, 0x00, 0x00, 0x6d, 0xc0, 0xea, 0x00, 0x00, - 0x00, 0x29, 0x60, 0xf5, 0x00, 0x00, 0x00, 0x26, 0xe0, 0xfa, 0x00, 0x00, - 0x00, 0x58, 0xb8, 0xbd, 0x00, 0x00, 0x00, 0x84, 0x07, 0xdf, 0x00, 0x00, - 0x00, 0x08, 0x20, 0xae, 0x00, 0x00, 0x00, 0x30, 0xc0, 0x5f, 0x01, 0x00, - 0x00, 0xc0, 0x3f, 0xb8, 0x01, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x01, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }; diff --git a/src/sdl12/SRB2DC/dchelp.c b/src/sdl12/SRB2DC/dchelp.c deleted file mode 100644 index 5fdf04bc2..000000000 --- a/src/sdl12/SRB2DC/dchelp.c +++ /dev/null @@ -1,134 +0,0 @@ -// Emacs style mode select -*- C++ -*- -//----------------------------------------------------------------------------- -// -// Copyright (C) 2006 by Sonic Team Jr. -// -// 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 2 -// 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. -// -// DESCRIPTION: -// stub and replacement "ANSI" C functions for use on Dreamcast/KOS -// -//----------------------------------------------------------------------------- -#include -#include -#ifndef HAVE_LWIP -#include -#endif -#include "../../doomdef.h" -#include "dchelp.h" - -int access(const char *path, int amode) -{ - file_t handle = FILEHND_INVALID; - - if (amode == F_OK || amode == R_OK) - handle=fs_open(path,O_RDONLY); - else if (amode == (R_OK|W_OK)) - handle=fs_open(path,O_RDWR); - else if (amode == W_OK) - handle=fs_open(path,O_WRONLY); - - if (handle != FILEHND_INVALID) - { - fs_close(handle); - return 0; - } - - return -1; -} - -double hypot(double x, double y) -{ - double ax, yx, yx2, yx1; - if (abs(y) > abs(x)) // |y|>|x| - { - ax = abs(y); // |y| => ax - yx = (x/y); - } - else // |x|>|y| - { - ax = abs(x); // |x| => ax - yx = (x/y); - } - yx2 = yx*yx; // (x/y)^2 - yx1 = sqrt(1+yx2); // (1 + (x/y)^2)^1/2 - return ax*yx1; // |x|*((1 + (x/y)^2)^1/2) -} - -#if !(defined (NONET) || defined (NOMD5)) -#ifdef HAVE_LWIP - -#include - -static uint8 ip[4]; -static char *h_addr_listtmp[2] = {ip, NULL}; -static struct hostent hostenttmp = {NULL, NULL, 0, 1, h_addr_listtmp}; - -struct hostent *gethostbyname(const char *name) -{ - struct sockaddr_in dnssrv; - dnssrv.sin_family = AF_INET; - dnssrv.sin_port = htons(53); - dnssrv.sin_addr.s_addr = htonl(0x0a030202); ///< what? - if (lwip_gethostbyname(&dnssrv, name, ip) < 0) - return NULL; - else - return &hostenttmp; -} -#else - -struct hostent *gethostbyname(const char *name) -{ - (void)name; - return NULL; -} - -int ioctl(int s, long cmd, void *argp) -{ - return fs_ioctl(s, argp, cmd); //FIONBIO? -} - -int select(int maxfdp1, void *readset, void *writeset, void *exceptset, - void *timeout) -{ - (void)maxfdp1; - (void)readset; - (void)writeset; - (void)exceptset; - (void)timeout; - errno = EAFNOSUPPORT; - return -1; -} - -int getsockopt (int s, int level, int optname, void *optval, socklen_t *optlen) -{ - (void)s; - (void)level; //SOL_SOCKET - (void)optname; //SO_RCVBUF, SO_ERROR - (void)optval; - (void)optlen; - errno = EAFNOSUPPORT; - return -1; -} - -int setsockopt (int s, int level, int optname, void *optval, socklen_t optlen) -{ - (void)s; - (void)level; //SOL_SOCKET - (void)optname; //SO_REUSEADDR, SO_BROADCAST, SO_RCVBUF - (void)optval; - (void)optlen; - errno = EAFNOSUPPORT; - return -1; -} - -#endif -#endif diff --git a/src/sdl12/SRB2DC/dchelp.h b/src/sdl12/SRB2DC/dchelp.h deleted file mode 100644 index 236f31110..000000000 --- a/src/sdl12/SRB2DC/dchelp.h +++ /dev/null @@ -1,51 +0,0 @@ -// Emacs style mode select -*- C++ -*- -//----------------------------------------------------------------------------- -// -// Copyright (C) 2006 by Sonic Team Jr. -// -// 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 2 -// 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. -// -// DESCRIPTION: -// stub and replacement "ANSI" C functions for use on Dreamcast/KOS -// -//----------------------------------------------------------------------------- - -#ifndef __I_DREAMCAST__ -#define __I_DREAMCAST__ - -struct hostent -{ - char *h_name; /* Official name of host. */ - char **h_aliases; /* Alias list. */ - int h_addrtype; /* Host address type. */ - int h_length; /* Length of address. */ - char **h_addr_list; /* List of addresses from name server. */ -#define h_addr h_addr_list[0] /* Address, for backward compatibility. */ -}; - -struct hostent *gethostbyname(const char *name); - -#ifndef HAVE_LWIP -#define INADDR_NONE ((uint32) 0xffffffff) -#define INADDR_LOOPBACK ((uint32) 0x7f000001) -#define SOCK_STREAM 1 -#define FIONBIO 0 -#define SOL_SOCKET 0 -#define SO_ERROR 0 -#define SO_REUSEADDR 0 -#define SO_BROADCAST 0 -#define SO_RCVBUF 0 -int ioctl(int s, long cmd, void *argp); -int select(int maxfdp1, void *readset, void *writeset, void *exceptset, void *timeout); -int getsockopt(int s, int level, int optname, void *optval, socklen_t *optlen); -int setsockopt(int s, int level, int optname, void *optval, socklen_t optlen); -#endif -#endif diff --git a/src/sdl12/SRB2DC/i_udp.c b/src/sdl12/SRB2DC/i_udp.c deleted file mode 100644 index ec5e305fc..000000000 --- a/src/sdl12/SRB2DC/i_udp.c +++ /dev/null @@ -1,455 +0,0 @@ -// Emacs style mode select -*- C++ -*- -//----------------------------------------------------------------------------- -// Copyright (C) 1993-1996 by id Software, Inc. -// Portions Copyright (C) 2005 by Sonic Team Jr. -// -// 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 2 -// 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. -//----------------------------------------------------------------------------- -/// \file -/// \brief KOS UDP network interface - -#include "../../doomdef.h" - -#include "../../i_system.h" -#include "../../d_event.h" -#include "../../d_net.h" -#include "../../m_argv.h" - -#include "../../doomstat.h" - -#include "../../i_net.h" - -#include "../../z_zone.h" - -#include "../../i_tcp.h" - -#include -//#include -#define NET_NONE 0x00000000 -#define NET_LOCAL 0x0100007F -#define NET_ANY 0xFFFFFFFF - -#define MAXBANS 20 - -typedef struct -{ - uint32 host; - uint16 port; -} IPaddress; - -static IPaddress clientaddress[MAXNETNODES+1]; -static boolean nodeconnected[MAXNETNODES+1]; - -static int mysocket = 0; -static boolean init_KOSUDP_driver = false; - -static size_t numbans = 0; -static IPaddress banned[MAXBANS]; -static boolean KOSUDP_bannednode[MAXNETNODES+1]; /// \note do we really need the +1? - -static inline int net_udp_sendto(int sock, const uint8 *data, int size, uint16 rem_port, uint32 rem_addr) -{ - uint8 dst_ip[4] = {((uint8*)(&(rem_addr)))[0], - ((uint8*)(&(rem_addr)))[1], - ((uint8*)(&(rem_addr)))[2], - ((uint8*)(&(rem_addr)))[3]}; - return net_udp_send_raw(net_default_dev, clientaddress[0].port, rem_port, dst_ip, data, size); - (void)sock; -} - -static inline int net_udp_recvfrom(int sock, uint8 *buf, int size, uint16 *rem_port, uint32 *rem_addr) -{ - return net_udp_recv(sock, buf, size); - (void)rem_port; - (void)rem_addr; -} - -static const char *KOSUDP_AddrToStr(IPaddress* sk) -{ - static char s[22]; // 255.255.255.255:65535 - sprintf(s,"%d.%d.%d.%d:%d", - ((uint8*)(&(sk->host)))[3], - ((uint8*)(&(sk->host)))[2], - ((uint8*)(&(sk->host)))[1], - ((uint8*)(&(sk->host)))[0], - net_ntohs(sk->port)); - return s; -} - -static const char *KOSUDP_GetNodeAddress(int node) -{ - if (!nodeconnected[node]) - return NULL; - return KOSUDP_AddrToStr(&clientaddress[node]); -} - -static const char *KOSUDP_GetBanAddress(size_t ban) -{ - if (ban > numbans) - return NULL; - return KOSUDP_AddrToStr(&banned[ban]); -} - -static boolean KOSUDP_cmpaddr(IPaddress* a, IPaddress* b) -{ - return (a->host == b->host && (b->port == 0 || a->port == b->port)); -} - -static SINT8 getfreenode(void) -{ - SINT8 j; - - for (j = 0; j < MAXNETNODES; j++) - if (!nodeconnected[j]) - { - nodeconnected[j] = true; - return j; - } - return -1; -} - -static void KOSUDP_Get(void) -{ - int size; - size_t i; - SINT8 j; - IPaddress temp = {clientaddress[BROADCASTADDR].host,clientaddress[BROADCASTADDR].port}; - - size = net_udp_recvfrom(mysocket,(char *)&doomcom->data, MAXPACKETLENGTH, &temp.port, &temp.host); - if (size == 0) - { - doomcom->remotenode = -1; // no packet - return; - } - - // find remote node number - for (i = 0; i < MAXNETNODES; i++) - if (KOSUDP_cmpaddr(&temp, &(clientaddress[i]))) - { - doomcom->remotenode = (INT16)i; // good packet from a game player - doomcom->datalength = (INT16)size; - return; - } - - // not found - - // find a free slot - j = getfreenode(); - if (j > 0) - { - M_Memcpy(&clientaddress[j], &temp, sizeof (temp)); - DEBFILE(va("New node detected: node:%d address:%s\n", j, - KOSUDP_GetNodeAddress(j))); - doomcom->remotenode = (INT16)j; // good packet from a game player - doomcom->datalength = (INT16)size; - // check if it's a banned dude so we can send a refusal later - for (i = 0; i < numbans; i++) - if (KOSUDP_cmpaddr(&temp, &banned[i])) - { - KOSUDP_bannednode[j] = true; - DEBFILE("This dude has been banned\n"); - break; - } - if (i == numbans) - KOSUDP_bannednode[j] = false; - return; - } - - DEBFILE("New node detected: No more free slots\n"); - doomcom->remotenode = -1; // no packet -} - -#if 0 -static boolean KOSUDP_CanSend(void) -{ - return true; -} -#endif - -static void KOSUDP_Send(void) -{ - const IPaddress *nodeinfo; - - if (!doomcom->remotenode || !nodeconnected[doomcom->remotenode]) - return; - - nodeinfo = clientaddress + doomcom->remotenode; - - if (net_udp_sendto(mysocket, (char *)&doomcom->data, doomcom->datalength, nodeinfo->port, nodeinfo->host) == -1) - { - CONS_Printf("KOSUDP: error sending data\n"); - } -} - -static void KOSUDP_FreeNodenum(int numnode) -{ - // can't disconnect from self :) - if (!numnode) - return; - - DEBFILE(va("Free node %d (%s)\n", numnode, KOSUDP_GetNodeAddress(numnode))); - - nodeconnected[numnode] = false; - - memset(&clientaddress[numnode], 0, sizeof (IPaddress)); -} - -static int KOSUDP_Socket(void) -{ - int temp = 0; - uint16 portnum = 0; - const uint32 hostip = net_default_dev?net_ntohl(net_ipv4_address(net_default_dev->ip_addr)):NET_LOCAL; - //Hurdler: I'd like to put a server and a client on the same computer - //Logan: Me too - //BP: in fact for client we can use any free port we want i have read - // in some doc that connect in udp can do it for us... - //Alam: where? - if (M_CheckParm("-clientport")) - { - if (!M_IsNextParm()) - I_Error("syntax: -clientport "); - portnum = net_ntohs(atoi(M_GetNextParm())); - } - else - portnum = net_ntohs(sock_port); - - temp = net_udp_sock_open(portnum, hostip, portnum, NET_NONE); - if (temp) - { - int btemp = net_udp_sock_open(portnum, hostip, portnum, NET_ANY); - clientaddress[0].port = portnum; - clientaddress[0].host = NET_NONE; - if (btemp) - { - clientaddress[BROADCASTADDR].port = net_ntohs(sock_port); - clientaddress[BROADCASTADDR].host = NET_ANY; - } - else - { - CONS_Printf("KOSUDP: can't setup broadcast sock\n"); - net_udp_sock_close(temp); - return 0; - } - } - else - { - CONS_Printf("KOSUDP: can't setup main sock\n"); - return 0; - } - - doomcom->extratics = 1; // internet is very high ping - - return temp; -} - -static void I_ShutdownKOSUDPDriver(void) -{ - //net_shutdown(); - init_KOSUDP_driver = false; -} - -static void I_InitKOSUDPDriver(void) -{ - if (init_KOSUDP_driver) - I_ShutdownKOSUDPDriver(); - else - net_init(); - D_SetDoomcom(); - memset(&clientaddress,0,sizeof (clientaddress)); - init_KOSUDP_driver = true; -} - -static void KOSUDP_CloseSocket(void) -{ - if (mysocket) - net_udp_sock_close(mysocket); - mysocket = 0; -} - -static SINT8 KOSUDP_NetMakeNodewPort(const char *hostname, const char* port) -{ - SINT8 newnode; - uint16 portnum = net_ntohs(sock_port); - - if (port && !port[0]) - portnum = net_ntohs((UINT16)atoi(port)); - - newnode = getfreenode(); - if (newnode == -1) - return -1; - // find ip of the server - clientaddress[newnode].port = portnum; - clientaddress[newnode].host = inet_addr(hostname); - - if (clientaddress[newnode].host == NET_NONE) - { - free(hostname); - return -1; - } - return newnode; -} - -static boolean KOSUDP_OpenSocket(void) -{ - size_t i; - - memset(clientaddress, 0, sizeof (clientaddress)); - - for (i = 0; i < MAXNETNODES; i++) - nodeconnected[i] = false; - - //CONS_Printf("KOSUDP Code starting up\n"); - - nodeconnected[0] = true; // always connected to self - nodeconnected[BROADCASTADDR] = true; - I_NetSend = KOSUDP_Send; - I_NetGet = KOSUDP_Get; - I_NetCloseSocket = KOSUDP_CloseSocket; - I_NetFreeNodenum = KOSUDP_FreeNodenum; - I_NetMakeNodewPort = KOSUDP_NetMakeNodewPort; - - //I_NetCanSend = KOSUDP_CanSend; - - // build the socket but close it first - KOSUDP_CloseSocket(); - mysocket = KOSUDP_Socket(); - - if (mysocket) - { -#if 0 - // for select - myset = SDLNet_AllocSocketSet(1); - if (!myset) - { - CONS_Printf("SDL_Net: %s",SDLNet_GetError()); - return false; - } - if (SDLNet_UDP_AddSocket(myset,mysocket) == -1) - { - CONS_Printf("SDL_Net: %s",SDLNet_GetError()); - return false; - } -#endif - return true; - } - return false; -} - -static boolean KOSUDP_Ban(int node) -{ - if (numbans == MAXBANS) - return false; - - M_Memcpy(&banned[numbans], &clientaddress[node], sizeof (IPaddress)); - banned[numbans].port = 0' - numbans++; - return true; -} - -static void KOSUDP_ClearBans(void) -{ - numbans = 0; -} - -// -// I_InitNetwork -// Only required for DOS, so this is more a dummy -// -boolean I_InitNetwork(void) -{ - char serverhostname[255]; - boolean ret = false; - //if (!M_CheckParm ("-kosnet")) - // return false; - // initilize the driver - I_InitKOSUDPDriver(); - I_AddExitFunc(I_ShutdownKOSUDPDriver); - if (!init_KOSUDP_driver) - return false; - - if (M_CheckParm("-udpport")) - { - if (M_IsNextParm()) - sock_port = (UINT16)atoi(M_GetNextParm()); - else - sock_port = 0; - } - - // parse network game options, - if (M_CheckParm("-server") || dedicated) - { - server = true; - - // If a number of clients (i.e. nodes) is specified, the server will wait for the clients - // to connect before starting. - // If no number is specified here, the server starts with 1 client, and others can join - // in-game. - // Since Boris has implemented join in-game, there is no actual need for specifying a - // particular number here. - // FIXME: for dedicated server, numnodes needs to be set to 0 upon start -/* if (M_IsNextParm()) - doomcom->numnodes = (INT16)atoi(M_GetNextParm()); - else */if (dedicated) - doomcom->numnodes = 0; - else - doomcom->numnodes = 1; - - if (doomcom->numnodes < 0) - doomcom->numnodes = 0; - if (doomcom->numnodes > MAXNETNODES) - doomcom->numnodes = MAXNETNODES; - - // server - servernode = 0; - // FIXME: - // ??? and now ? - // server on a big modem ??? 4*isdn - net_bandwidth = 16000; - hardware_MAXPACKETLENGTH = INETPACKETLENGTH; - - ret = true; - } - else if (M_CheckParm("-connect")) - { - if (M_IsNextParm()) - strcpy(serverhostname, M_GetNextParm()); - else - serverhostname[0] = 0; // assuming server in the LAN, use broadcast to detect it - - // server address only in ip - if (serverhostname[0]) - { - COM_BufAddText("connect \""); - COM_BufAddText(serverhostname); - COM_BufAddText("\"\n"); - - // probably modem - hardware_MAXPACKETLENGTH = INETPACKETLENGTH; - } - else - { - // so we're on a LAN - COM_BufAddText("connect any\n"); - - net_bandwidth = 800000; - hardware_MAXPACKETLENGTH = MAXPACKETLENGTH; - } - } - - I_NetOpenSocket = KOSUDP_OpenSocket; - I_Ban = KOSUDP_Ban; - I_ClearBans = KOSUDP_ClearBans; - I_GetNodeAddress = KOSUDP_GetNodeAddress; - I_GetBanAddress = KOSUDP_GetBanAddress; - bannednode = KOSUDP_bannednode; - - return ret; -} diff --git a/src/sdl12/SRB2DC/scramble.c b/src/sdl12/SRB2DC/scramble.c deleted file mode 100644 index a3483b00d..000000000 --- a/src/sdl12/SRB2DC/scramble.c +++ /dev/null @@ -1,259 +0,0 @@ -#include -#include - -#define MAXCHUNK (2048*1024) - -static unsigned int seed; - -void my_srand(unsigned int n) -{ - seed = n & 0xffff; -} - -unsigned int my_rand() -{ - seed = (seed * 2109 + 9273) & 0x7fff; - return (seed + 0xc000) & 0xffff; -} - -void load(FILE *fh, unsigned char *ptr, unsigned long sz) -{ - if (fread(ptr, 1, sz, fh) != sz) - { - fprintf(stderr, "Read error!\n"); - exit(1); - } -} - -void load_chunk(FILE *fh, unsigned char *ptr, unsigned long sz) -{ - static int idx[MAXCHUNK/32]; - int i; - - /* Convert chunk size to number of slices */ - sz /= 32; - - /* Initialize index table with unity, - so that each slice gets loaded exactly once */ - for (i = 0; i < sz; i++) - idx[i] = i; - - for (i = sz-1; i >= 0; --i) - { - /* Select a replacement index */ - int x = (my_rand() * i) >> 16; - - /* Swap */ - int tmp = idx[i]; - idx[i] = idx[x]; - idx[x] = tmp; - - /* Load resulting slice */ - load(fh, ptr+32*idx[i], 32); - } -} - -void load_file(FILE *fh, unsigned char *ptr, unsigned long filesz) -{ - unsigned long chunksz; - - my_srand(filesz); - - /* Descramble 2 meg blocks for as long as possible, then - gradually reduce the window down to 32 bytes (1 slice) */ - for (chunksz = MAXCHUNK; chunksz >= 32; chunksz >>= 1) - while (filesz >= chunksz) - { - load_chunk(fh, ptr, chunksz); - filesz -= chunksz; - ptr += chunksz; - } - - /* Load final incomplete slice */ - if (filesz) - load(fh, ptr, filesz); -} - -void read_file(char *filename, unsigned char **ptr, unsigned long *sz) -{ - FILE *fh = fopen(filename, "rb"); - if (fh == NULL) - { - fprintf(stderr, "Can't open \"%s\".\n", filename); - exit(1); - } - if (fseek(fh, 0, SEEK_END)<0) - { - fprintf(stderr, "Seek error.\n"); - exit(1); - } - *sz = ftell(fh); - *ptr = malloc(*sz); - if ( *ptr == NULL ) - { - fprintf(stderr, "Out of memory.\n"); - exit(1); - } - if (fseek(fh, 0, SEEK_SET)<0) - { - fprintf(stderr, "Seek error.\n"); - exit(1); - } - load_file(fh, *ptr, *sz); - fclose(fh); -} - -void save(FILE *fh, unsigned char *ptr, unsigned long sz) -{ - if (fwrite(ptr, 1, sz, fh) != sz) - { - fprintf(stderr, "Write error!\n"); - exit(1); - } -} - -void save_chunk(FILE *fh, unsigned char *ptr, unsigned long sz) -{ - static int idx[MAXCHUNK/32]; - int i; - - /* Convert chunk size to number of slices */ - sz /= 32; - - /* Initialize index table with unity, - so that each slice gets saved exactly once */ - for (i = 0; i < sz; i++) - idx[i] = i; - - for (i = sz-1; i >= 0; --i) - { - /* Select a replacement index */ - int x = (my_rand() * i) >> 16; - - /* Swap */ - int tmp = idx[i]; - idx[i] = idx[x]; - idx[x] = tmp; - - /* Save resulting slice */ - save(fh, ptr+32*idx[i], 32); - } -} - -void save_file(FILE *fh, unsigned char *ptr, unsigned long filesz) -{ - unsigned long chunksz; - - my_srand(filesz); - - /* Descramble 2 meg blocks for as long as possible, then - gradually reduce the window down to 32 bytes (1 slice) */ - for (chunksz = MAXCHUNK; chunksz >= 32; chunksz >>= 1) - while (filesz >= chunksz) - { - save_chunk(fh, ptr, chunksz); - filesz -= chunksz; - ptr += chunksz; - } - - /* Save final incomplete slice */ - if (filesz) - save(fh, ptr, filesz); -} - -void write_file(char *filename, unsigned char *ptr, unsigned long sz) -{ - FILE *fh = fopen(filename, "wb"); - if (fh == NULL) - { - fprintf(stderr, "Can't open \"%s\".\n", filename); - exit(1); - } - save_file(fh, ptr, sz); - fclose(fh); -} - -void descramble(char *src, char *dst) -{ - unsigned char *ptr = NULL; - unsigned long sz = 0; - FILE *fh; - - read_file(src, &ptr, &sz); - - fh = fopen(dst, "wb"); - if (fh == NULL) - { - fprintf(stderr, "Can't open \"%s\".\n", dst); - exit(1); - } - if ( fwrite(ptr, 1, sz, fh) != sz ) - { - fprintf(stderr, "Write error.\n"); - exit(1); - } - fclose(fh); - free(ptr); -} - -void scramble(char *src, char *dst) -{ - unsigned char *ptr = NULL; - unsigned long sz = 0; - FILE *fh; - - fh = fopen(src, "rb"); - if (fh == NULL) - { - fprintf(stderr, "Can't open \"%s\".\n", src); - exit(1); - } - if (fseek(fh, 0, SEEK_END)<0) - { - fprintf(stderr, "Seek error.\n"); - exit(1); - } - sz = ftell(fh); - ptr = malloc(sz); - if ( ptr == NULL ) - { - fprintf(stderr, "Out of memory.\n"); - exit(1); - } - if (fseek(fh, 0, SEEK_SET)<0) - { - fprintf(stderr, "Seek error.\n"); - exit(1); - } - if ( fread(ptr, 1, sz, fh) != sz ) - { - fprintf(stderr, "Read error.\n"); - exit(1); - } - fclose(fh); - - write_file(dst, ptr, sz); - - free(ptr); -} - -int main(int argc, char *argv[]) -{ - int opt = 0; - - if (argc > 1 && !strcmp(argv[1], "-d")) - opt ++; - - if (argc != 3+opt) - { - fprintf(stderr, "Usage: %s [-d] from to\n", argv[0]); - exit(1); - } - - if (opt) - descramble(argv[2], argv[3]); - else - scramble(argv[1], argv[2]); - - return 0; -} diff --git a/src/sdl12/endtxt.c b/src/sdl12/endtxt.c index 1d7756b4d..5d3c4ea88 100644 --- a/src/sdl12/endtxt.c +++ b/src/sdl12/endtxt.c @@ -33,7 +33,7 @@ void ShowEndTxt(void) { -#if !(defined (_WIN32_WCE) || defined (_XBOX) || defined (_arch_dreamcast)) +#if !(defined (_WIN32_WCE) || defined (_XBOX)) INT32 i; UINT16 j, att = 0; INT32 nlflag = 1; diff --git a/src/sdl12/hwsym_sdl.c b/src/sdl12/hwsym_sdl.c index 54f5da3a0..fc327cac2 100644 --- a/src/sdl12/hwsym_sdl.c +++ b/src/sdl12/hwsym_sdl.c @@ -37,7 +37,7 @@ #pragma warning(default : 4214 4244) #endif -#if defined (_XBOX) || defined (_arch_dreamcast) || defined(GP2X) +#if defined (_XBOX) || defined(GP2X) #define NOLOADSO #endif diff --git a/src/sdl12/i_cdmus.c b/src/sdl12/i_cdmus.c index 1eeac370b..bb267b90f 100644 --- a/src/sdl12/i_cdmus.c +++ b/src/sdl12/i_cdmus.c @@ -19,7 +19,7 @@ #ifdef HAVE_SDL -#if defined (DC) || defined (_WIN32_WCE) || defined(GP2X) || defined(_PS3) +#if defined (_WIN32_WCE) || defined(GP2X) || defined(_PS3) #define NOSDLCD #endif diff --git a/src/sdl12/i_main.c b/src/sdl12/i_main.c index 1c438e083..a55e6298c 100644 --- a/src/sdl12/i_main.c +++ b/src/sdl12/i_main.c @@ -80,17 +80,6 @@ FILE *logstream = NULL; typedef BOOL (WINAPI *p_IsDebuggerPresent)(VOID); #endif -#ifdef _arch_dreamcast -#include -KOS_INIT_FLAGS(INIT_DEFAULT -//| INIT_NET -//| INIT_MALLOCSTATS -//| INIT_QUIET -//| INIT_OCRAM -//| INIT_NO_DCLOAD -); -#endif - #if defined (_WIN32) && !defined (_XBOX) && !defined (_WIN32_WCE) static inline VOID MakeCodeWritable(VOID) { diff --git a/src/sdl12/i_system.c b/src/sdl12/i_system.c index ed0db653d..fe79a564b 100644 --- a/src/sdl12/i_system.c +++ b/src/sdl12/i_system.c @@ -56,18 +56,10 @@ typedef BOOL (WINAPI *p_SetProcessAffinityMask) (HANDLE, DWORD_PTR); #include #endif -#ifdef _arch_dreamcast -#include -#include -#include -#include -void __set_fpscr(long); // in libgcc / kernel's startup.s? -#else #include #if defined (_WIN32) && !defined (_WIN32_WCE) && !defined (_XBOX) #include #endif -#endif #ifdef _MSC_VER #pragma warning(disable : 4214 4244) @@ -85,7 +77,7 @@ void __set_fpscr(long); // in libgcc / kernel's startup.s? #pragma warning(default : 4214 4244) #endif -#if SDL_VERSION_ATLEAST(1,2,7) && !defined (DC) +#if SDL_VERSION_ATLEAST(1,2,7) #include "SDL_cpuinfo.h" // 1.2.7 or greater #define HAVE_SDLCPUINFO #endif @@ -93,7 +85,7 @@ void __set_fpscr(long); // in libgcc / kernel's startup.s? #ifdef _PSP //#include #elif !defined(_PS3) -#if defined (__unix__) || defined(__APPLE__) || (defined (UNIXCOMMON) && !defined (_arch_dreamcast) && !defined (__HAIKU__) && !defined (_WII)) +#if defined (__unix__) || defined(__APPLE__) || (defined (UNIXCOMMON) && !defined (__HAIKU__) && !defined (_WII)) #if defined (__linux__) #include #else @@ -111,7 +103,7 @@ void __set_fpscr(long); // in libgcc / kernel's startup.s? #endif #ifndef _PS3 -#if defined (__linux__) || (defined (UNIXCOMMON) && !defined (_arch_dreamcast) && !defined (_PSP) && !defined (__HAIKU__) && !defined (_WII)) +#if defined (__linux__) || (defined (UNIXCOMMON) && !defined (_PSP) && !defined (__HAIKU__) && !defined (_WII)) #ifndef NOTERMIOS #include #include // ioctl @@ -146,14 +138,7 @@ void __set_fpscr(long); // in libgcc / kernel's startup.s? #endif // Locations for searching the srb2.srb -#ifdef _arch_dreamcast -#define DEFAULTWADLOCATION1 "/cd" -#define DEFAULTWADLOCATION2 "/pc" -#define DEFAULTWADLOCATION3 "/pc/home/alam/srb2code/data" -#define DEFAULTSEARCHPATH1 "/cd" -#define DEFAULTSEARCHPATH2 "/pc" -//#define DEFAULTSEARCHPATH3 "/pc/home/alam/srb2code/data" -#elif defined (GP2X) +#ifdef GP2X #define DEFAULTWADLOCATION1 "/mnt/sd" #define DEFAULTWADLOCATION2 "/mnt/sd/SRB2" #define DEFAULTWADLOCATION3 "/tmp/mnt/sd" @@ -345,7 +330,7 @@ static void signal_handler(INT32 num) } #endif -#if defined (NDEBUG) && !defined (DC) && !defined (_WIN32_WCE) +#if defined (NDEBUG) && !defined (_WIN32_WCE) FUNCNORETURN static ATTRNORETURN void quit_handler(int num) { signal(num, SIG_DFL); //default signal action @@ -707,17 +692,6 @@ static inline void I_ShutdownConsole(void){} void I_GetConsoleEvents(void){} static inline void I_StartupConsole(void) { -#ifdef _arch_dreamcast - char title[] = "SRB2 for Dreamcast!\n"; - __set_fpscr(0x00040000); /* ignore FPU underflow */ - //printf("\nHello world!\n\n"); - pvr_init_defaults(); - conio_init(CONIO_TTY_PVR, CONIO_INPUT_LINE); - conio_set_theme(CONIO_THEME_MATRIX); - conio_clear(); - conio_putstr(title); - //printf("\nHello world!\n\n"); -#endif #ifdef _DEBUG consolevent = !M_CheckParm("-noconsole"); #else @@ -737,7 +711,7 @@ static inline void I_ShutdownConsole(void){} // void I_StartupKeyboard (void) { -#if defined (NDEBUG) && !defined (DC) +#if defined (NDEBUG) #ifdef SIGILL // signal(SIGILL , signal_handler); #endif @@ -768,10 +742,6 @@ void I_OutputMsg(const char *fmt, ...) XBOXSTATIC char txt[8192]; va_list argptr; -#ifdef _arch_dreamcast - if (!keyboard_started) conio_printf(fmt); -#endif - va_start(argptr,fmt); vsprintf(txt, fmt, argptr); va_end(argptr); @@ -1084,13 +1054,9 @@ void I_GetJoystickEvents(void) axisy = SDL_JoystickGetAxis(JoyInfo.dev, i*2 + 1); else axisy = 0; -#ifdef _arch_dreamcast // -128 to 127 - axisx = axisx*8; - axisy = axisy*8; -#else // -32768 to 32767 + // -32768 to 32767 axisx = axisx/32; axisy = axisy/32; -#endif if (Joystick.bGamepadStyle) { @@ -1209,15 +1175,11 @@ static int joy_open(const char *fname) if (JoyInfo.buttons > JOYBUTTONS) JoyInfo.buttons = JOYBUTTONS; -#ifdef DC - JoyInfo.hats = 0; -#else JoyInfo.hats = SDL_JoystickNumHats(JoyInfo.dev); if (JoyInfo.hats > JOYHATS) JoyInfo.hats = JOYHATS; JoyInfo.balls = SDL_JoystickNumBalls(JoyInfo.dev); -#endif //Joystick.bGamepadStyle = !stricmp(SDL_JoystickName(SDL_JoystickIndex(JoyInfo.dev)), "pad"); @@ -1375,13 +1337,9 @@ void I_GetJoystick2Events(void) axisy = SDL_JoystickGetAxis(JoyInfo2.dev, i*2 + 1); else axisy = 0; -#ifdef _arch_dreamcast // -128 to 127 - axisx = axisx*8; - axisy = axisy*8; -#else // -32768 to 32767 + // -32768 to 32767 axisx = axisx/32; axisy = axisy/32; -#endif if (Joystick2.bGamepadStyle) { @@ -1501,15 +1459,11 @@ static int joy_open2(const char *fname) if (JoyInfo2.buttons > JOYBUTTONS) JoyInfo2.buttons = JOYBUTTONS; -#ifdef DC - JoyInfo2.hats = 0; -#else JoyInfo2.hats = SDL_JoystickNumHats(JoyInfo2.dev); if (JoyInfo2.hats > JOYHATS) JoyInfo2.hats = JOYHATS; JoyInfo2.balls = SDL_JoystickNumBalls(JoyInfo2.dev); -#endif //Joystick.bGamepadStyle = !stricmp(SDL_JoystickName(SDL_JoystickIndex(JoyInfo2.dev)), "pad"); @@ -2154,13 +2108,8 @@ static void I_ShutdownTimer(void) // tic_t I_GetTime (void) { -#ifdef _arch_dreamcast - static Uint64 basetime = 0; - Uint64 ticks = timer_ms_gettime64(); //using timer_ms_gettime64 instand of SDL_GetTicks for the Dreamcast -#else static Uint32 basetime = 0; Uint32 ticks = SDL_GetTicks(); -#endif if (!basetime) basetime = ticks; @@ -2200,7 +2149,7 @@ void I_StartupTimer(void) pfntimeGetTime = (p_timeGetTime)GetProcAddress(winmm, "timeGetTime"); } I_AddExitFunc(I_ShutdownTimer); -#elif 0 //#elif !defined (_arch_dreamcast) && !defined(GP2X) // the DC have it own timer and GP2X have broken pthreads? +#elif 0 //#elif !defined(GP2X) // GP2X have broken pthreads? if (SDL_InitSubSystem(SDL_INIT_TIMER) < 0) I_Error("SRB2: Needs SDL_Timer, Error: %s", SDL_GetError()); #endif @@ -2210,7 +2159,7 @@ void I_StartupTimer(void) void I_Sleep(void) { -#if !(defined (_arch_dreamcast) || defined (_XBOX)) +#if !(defined (_XBOX)) if (cv_sleep.value != -1) SDL_Delay(cv_sleep.value); #endif @@ -2229,15 +2178,6 @@ INT32 I_StartupSystem(void) freopen("e:/Games/SRB2/stdout.txt", "w+", stdout); unlink("e:/Games/SRB2/stderr.txt"); freopen("e:/Games/SRB2/stderr.txt", "w+", stderr); -#endif -#ifdef _arch_dreamcast -#ifdef _DEBUG - //gdb_init(); -#endif - printf(__FILE__":%i\n",__LINE__); -#ifdef _DEBUG - //gdb_breakpoint(); -#endif #endif SDL_VERSION(&SDLcompiled) SDLlinked = SDL_Linked_Version(); @@ -2292,9 +2232,7 @@ void I_Quit(void) I_ShutdownGraphics(); I_ShutdownInput(); I_ShutdownSystem(); -#ifndef _arch_dreamcast SDL_Quit(); -#endif /* if option -noendtxt is set, don't print the text */ if (!M_CheckParm("-noendtxt") && W_CheckNumForName("ENDOOM") != LUMPERROR) { @@ -2361,10 +2299,8 @@ void I_Error(const char *error, ...) I_ShutdownInput(); if (errorcount == 7) I_ShutdownSystem(); -#ifndef _arch_dreamcast if (errorcount == 8) SDL_Quit(); -#endif if (errorcount == 9) { M_SaveConfig(NULL); @@ -2448,9 +2384,7 @@ void I_Error(const char *error, ...) I_ShutdownGraphics(); I_ShutdownInput(); I_ShutdownSystem(); -#ifndef _arch_dreamcast SDL_Quit(); -#endif #ifdef MAC_ALERT va_start(argptr, error); vsprintf(buffer, error, argptr); @@ -2540,7 +2474,7 @@ void I_ShutdownSystem(void) void I_GetDiskFreeSpace(INT64 *freespace) { -#if defined (_arch_dreamcast) || defined (_PSP) +#if defined (_PSP) *freespace = 0; #elif defined (__unix__) || defined(__APPLE__) || defined (UNIXCOMMON) #if defined (SOLARIS) || defined (__HAIKU__) || defined (_WII) || defined (_PS3) @@ -2896,12 +2830,7 @@ const char *I_LocateWad(void) // quick fix for compil UINT32 I_GetFreeMem(UINT32 *total) { -#if defined (_arch_dreamcast) - //Dreamcast! - if (total) - *total = 16<<20; - return 8<<20; -#elif defined (_PSP) +#if defined (_PSP) // PSP if (total) *total = 32<<20; diff --git a/src/sdl12/i_video.c b/src/sdl12/i_video.c index 0063fc095..1a90c8a84 100644 --- a/src/sdl12/i_video.c +++ b/src/sdl12/i_video.c @@ -35,11 +35,6 @@ #pragma warning(default : 4214 4244) #endif -#if SDL_VERSION_ATLEAST(1,2,9) && defined (_arch_dreamcast) -#define HAVE_DCSDL -#include "SDL_dreamcast.h" -#endif - #if SDL_VERSION_ATLEAST(1,2,9) && defined (GP2X) #define HAVE_GP2XSDL #include "SDL_gp2x.h" @@ -59,7 +54,7 @@ #ifdef HAVE_IMAGE #include "SDL_image.h" -#elseif !(defined (DC) || defined (_WIN32_WCE) || defined (PSP) || defined(GP2X)) +#elseif !(defined (_WIN32_WCE) || defined (PSP) || defined(GP2X)) #define LOAD_XPM //I want XPM! #include "IMG_xpm.c" //Alam: I don't want to add SDL_Image.dll/so #define HAVE_IMAGE //I have SDL_Image, sortof @@ -75,16 +70,6 @@ #include "SDL_syswm.h" #endif -#ifdef _arch_dreamcast -#include -#include -#include -//#include "SRB2DC/VMU.xbm" -//#include -//#define malloc pvr_mem_malloc -//#define free pvr_mem_free -#endif - #if defined (_XBOX) && defined (__GNUC__) #include #endif @@ -124,7 +109,7 @@ #endif // maximum number of windowed modes (see windowedModes[][]) -#if defined (_WIN32_WCE) || defined (DC) || defined (PSP) || defined(GP2X) +#if defined (_WIN32_WCE) || defined (PSP) || defined(GP2X) #define MAXWINMODES (1) #elif defined (WII) #define MAXWINMODES (8) @@ -147,7 +132,7 @@ rendermode_t rendermode=render_soft; boolean highcolor = false; // synchronize page flipping with screen refresh -#if defined(DC) || (defined(GP2X) && !defined(HAVE_GP2XSDL)) +#if defined(GP2X) && !defined(HAVE_GP2XSDL) consvar_t cv_vidwait = {"vid_wait", "Off", CV_SAVE, CV_OnOff, NULL, 0, NULL, NULL, 0, 0, NULL}; #else consvar_t cv_vidwait = {"vid_wait", "On", CV_SAVE, CV_OnOff, NULL, 0, NULL, NULL, 0, 0, NULL}; @@ -176,11 +161,7 @@ static SDL_Surface *bufSurface = NULL; static SDL_Surface *icoSurface = NULL; static SDL_Color localPalette[256]; static SDL_Rect **modeList = NULL; -#ifdef DC -static Uint8 BitsPerPixel = 15; -#else static Uint8 BitsPerPixel = 16; -#endif static Uint16 realwidth = BASEVIDWIDTH; static Uint16 realheight = BASEVIDHEIGHT; #ifdef _WIN32_WCE @@ -195,7 +176,7 @@ static const Uint32 surfaceFlagsF = SDL_HWPALETTE|SDL_FULLSCREEN; #endif static SDL_bool mousegrabok = SDL_TRUE; #define HalfWarpMouse(x,y) SDL_WarpMouse((Uint16)(x/2),(Uint16)(y/2)) -#if defined (_WIN32_WCE) || defined (DC) || defined (PSP) || defined(GP2X) +#if defined (_WIN32_WCE) || defined (PSP) || defined(GP2X) static SDL_bool videoblitok = SDL_TRUE; #else static SDL_bool videoblitok = SDL_FALSE; @@ -205,7 +186,7 @@ static SDL_bool exposevideo = SDL_FALSE; // windowed video modes from which to choose from. static INT32 windowedModes[MAXWINMODES][2] = { -#if !(defined (_WIN32_WCE) || defined (DC) || defined (PSP) || defined (GP2X)) +#if !(defined (_WIN32_WCE) || defined (PSP) || defined (GP2X)) #ifndef WII #ifndef _PS3 {1920,1200}, // 1.60,6.00 @@ -250,11 +231,6 @@ static void SDLSetMode(INT32 width, INT32 height, INT32 bpp, Uint32 flags) #ifdef _WII bpp = 16; // 8-bit mode poo #endif -#ifdef DC - if (bpp < 15) - bpp = 15; - height = 240; -#endif #ifdef PSP bpp = 16; #endif @@ -500,7 +476,6 @@ static INT32 SDLatekey(SDLKey sym) rc = KEY_PLUSPAD; break; -#ifndef _arch_dreamcast case SDLK_LSUPER: #ifdef HAVE_SDLMETAKEYS case SDLK_LMETA: @@ -517,7 +492,6 @@ static INT32 SDLatekey(SDLKey sym) case SDLK_MENU: rc = KEY_MENU; break; -#endif default: if (sym >= SDLK_SPACE && sym <= SDLK_DELETE) @@ -662,7 +636,7 @@ static void VID_Command_Info_f (void) static void VID_Command_ModeList_f(void) { -#if !defined (DC) && !defined (_WIN32_WCE) && !defined (_PSP) && !defined(GP2X) +#if !defined (_WIN32_WCE) && !defined (_PSP) && !defined(GP2X) INT32 i; #ifdef HWRENDER if (rendermode == render_opengl) @@ -957,11 +931,8 @@ static inline void SDLJoyRemap(event_t *event) static INT32 SDLJoyAxis(const Sint16 axis, evtype_t which) { -#ifdef _arch_dreamcast // -128 to 127 SDL for DC have give us a smaller range - INT32 raxis = axis*8; -#else // -32768 to 32767 + // -32768 to 32767 INT32 raxis = axis/32; -#endif if (which == ev_joystick) { if (Joystick.bGamepadStyle) @@ -1261,9 +1232,6 @@ void I_OsPolling(void) I_GetJoystickEvents(); I_GetJoystick2Events(); } -#ifdef _arch_dreamcast - //vmu_set_icon(VMU_bits); -#endif I_GetMouseEvents(); @@ -1302,7 +1270,7 @@ static inline boolean I_SkipFrame(void) skip = !skip; -#if 0 //(defined (GP2X) || defined (PSP) || defined (_arch_dreamcast)) +#if 0 //(defined (GP2X) || defined (PSP)) return skip; #endif @@ -1885,9 +1853,6 @@ void I_StartupGraphics(void) disable_fullscreen = M_CheckParm("-win"); keyboard_started = true; -#ifdef _arch_dreamcast - conio_shutdown(); -#endif #if !defined(HAVE_TTF) #ifdef _WIN32 // Initialize Audio as well, otherwise Win32's DirectX can not use audio @@ -2096,9 +2061,7 @@ void I_ShutdownGraphics(void) if (GLUhandle) hwClose(GLUhandle); #endif -#ifndef _arch_dreamcast SDL_QuitSubSystem(SDL_INIT_VIDEO); -#endif framebuffer = SDL_FALSE; } #endif diff --git a/src/sdl12/sdl_sound.c b/src/sdl12/sdl_sound.c index 6ba83104e..00680010d 100644 --- a/src/sdl12/sdl_sound.c +++ b/src/sdl12/sdl_sound.c @@ -85,7 +85,7 @@ // mixing buffer, and the samplerate of the raw data. // Needed for calling the actual sound output. -#if defined (_WIN32_WCE) || defined (DC) || defined (PSP) || defined(GP2X) +#if defined (_WIN32_WCE) || defined (PSP) || defined(GP2X) #define NUM_CHANNELS MIX_CHANNELS #else #define NUM_CHANNELS MIX_CHANNELS*4 @@ -93,7 +93,7 @@ #define INDEXOFSFX(x) ((sfxinfo_t *)x - S_sfx) -#if defined (_WIN32_WCE) || defined (DC) || defined (PSP) +#if defined (_WIN32_WCE) || defined (PSP) static Uint16 samplecount = 512; //Alam: .5KB samplecount at 11025hz is 46.439909297052154195011337868481ms of buffer #elif defined(GP2X) static Uint16 samplecount = 128; @@ -151,9 +151,7 @@ static SDL_bool musicStarted = SDL_FALSE; #ifdef HAVE_MIXER static SDL_mutex *Msc_Mutex = NULL; /* FIXME: Make this file instance-specific */ -#ifdef _arch_dreamcast -#define MIDI_PATH "/ram" -#elif defined(GP2X) +#ifdef GP2X #define MIDI_PATH "/mnt/sd/srb2" #define MIDI_PATH2 "/tmp/mnt/sd/srb2" #else @@ -176,7 +174,7 @@ static SDL_bool canlooping = SDL_TRUE; #if SDL_MIXER_VERSION_ATLEAST(1,2,7) #define USE_RWOPS // ok, USE_RWOPS is in here -#if defined (DC) || defined (_WIN32_WCE) || defined (_XBOX) //|| defined(_WIN32) || defined(GP2X) +#if defined (_WIN32_WCE) || defined (_XBOX) //|| defined(_WIN32) || defined(GP2X) #undef USE_RWOPS #endif #endif @@ -1189,13 +1187,6 @@ void I_StartupSound(void) #endif #ifndef HAVE_MIXER nomidimusic = nodigimusic = true; -#endif -#ifdef DC - //nosound = true; -#ifdef HAVE_MIXER - nomidimusic = true; - nodigimusic = true; -#endif #endif memset(channels, 0, sizeof (channels)); //Alam: Clean it @@ -1522,7 +1513,7 @@ void I_InitMusic(void) #endif I_OutputMsg("Linked with SDL_mixer version: %d.%d.%d\n", MIXlinked->major, MIXlinked->minor, MIXlinked->patch); -#if !(defined (DC) || defined (PSP) || defined(GP2X) || defined (WII)) +#if !(defined (PSP) || defined(GP2X) || defined (WII)) if (audio.freq < 44100 && !M_CheckParm ("-freq")) //I want atleast 44Khz { audio.samples = (Uint16)(audio.samples*(INT32)(44100/audio.freq)); From 330399ea9b00b891abf473c892dab429e4f4d5d4 Mon Sep 17 00:00:00 2001 From: Monster Iestyn Date: Fri, 29 Sep 2017 18:28:47 +0100 Subject: [PATCH 049/111] Dreamcast is gone, so there is no need for KOS_GL_COMPATIBILITY anymore --- src/hardware/r_opengl/r_opengl.c | 200 +------------------------------ src/sdl12/ogl_sdl.c | 6 - 2 files changed, 2 insertions(+), 204 deletions(-) diff --git a/src/hardware/r_opengl/r_opengl.c b/src/hardware/r_opengl/r_opengl.c index e6ff83e89..3432a93e0 100644 --- a/src/hardware/r_opengl/r_opengl.c +++ b/src/hardware/r_opengl/r_opengl.c @@ -30,10 +30,8 @@ #include #include #ifndef SHUFFLE -#ifndef KOS_GL_COMPATIBILITY #define SHUFFLE #endif -#endif #include "r_opengl.h" #if defined (HWRENDER) && !defined (NOROPENGL) @@ -83,9 +81,7 @@ GLint screen_height = 0; GLbyte screen_depth = 0; GLint textureformatGL = 0; GLint maximumAnisotropy = 0; -#ifndef KOS_GL_COMPATIBILITY static GLboolean MipMap = GL_FALSE; -#endif static GLint min_filter = GL_LINEAR; static GLint mag_filter = GL_LINEAR; static GLint anisotropic_filter = 0; @@ -203,9 +199,6 @@ FUNCPRINTF void DBG_Printf(const char *lpFmt, ...) #endif //glGetIntegerv //glGetString -#ifdef KOS_GL_COMPATIBILITY -#define pglHint glHint -#endif /* Depth Buffer */ #define pglClearDepth glClearDepth @@ -261,9 +254,7 @@ FUNCPRINTF void DBG_Printf(const char *lpFmt, ...) #define pglDeleteTextures glDeleteTextures #define pglBindTexture glBindTexture /* texture mapping */ //GL_EXT_copy_texture -#ifndef KOS_GL_COMPATIBILITY #define pglCopyTexImage2D glCopyTexImage2D -#endif #else //!STATIC_OPENGL @@ -700,17 +691,13 @@ void SetStates(void) //pglShadeModel(GL_FLAT); pglEnable(GL_TEXTURE_2D); // two-dimensional texturing -#ifndef KOS_GL_COMPATIBILITY pglTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE); pglAlphaFunc(GL_NOTEQUAL, 0.0f); -#endif //pglBlendFunc(GL_ONE, GL_ZERO); // copy pixel to frame buffer (opaque) pglEnable(GL_BLEND); // enable color blending -#ifndef KOS_GL_COMPATIBILITY pglColorMask(GL_TRUE, GL_TRUE, GL_TRUE, GL_TRUE); -#endif //pglDisable(GL_DITHER); // faB: ??? (undocumented in OpenGL 1.1) // Hurdler: yes, it is! @@ -735,9 +722,7 @@ void SetStates(void) //tex_downloaded = NOTEXTURE_NUM; //pglTexImage2D(GL_TEXTURE_2D, 0, 4, 8, 8, 0, GL_RGBA, GL_UNSIGNED_BYTE, Data); -#ifndef KOS_GL_COMPATIBILITY pglPolygonOffset(-1.0f, -1.0f); -#endif //pglEnable(GL_CULL_FACE); //pglCullFace(GL_FRONT); @@ -863,14 +848,6 @@ EXPORT void HWRAPI(ClearMipMapCache) (void) EXPORT void HWRAPI(ReadRect) (INT32 x, INT32 y, INT32 width, INT32 height, INT32 dst_stride, UINT16 * dst_data) { -#ifdef KOS_GL_COMPATIBILITY - (void)x; - (void)y; - (void)width; - (void)height; - (void)dst_stride; - (void)dst_data; -#else INT32 i; // DBG_Printf ("ReadRect()\n"); if (dst_stride == width*3) @@ -912,7 +889,6 @@ EXPORT void HWRAPI(ReadRect) (INT32 x, INT32 y, INT32 width, INT32 height, } free(image); } -#endif } @@ -1083,7 +1059,6 @@ EXPORT void HWRAPI(SetBlend) (FBITFIELD PolyFlags) break; } } -#ifndef KOS_GL_COMPATIBILITY if (Xor & PF_NoAlphaTest) { if (PolyFlags & PF_NoAlphaTest) @@ -1099,7 +1074,7 @@ EXPORT void HWRAPI(SetBlend) (FBITFIELD PolyFlags) else pglDisable(GL_POLYGON_OFFSET_FILL); } -#endif + if (Xor&PF_NoDepthTest) { if (PolyFlags & PF_NoDepthTest) @@ -1126,10 +1101,6 @@ EXPORT void HWRAPI(SetBlend) (FBITFIELD PolyFlags) pglTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_REPEAT); } -#ifdef KOS_GL_COMPATIBILITY - if (Xor&PF_Modulated && !(PolyFlags & PF_Modulated)) - pglColor4f(1.0f, 1.0f, 1.0f, 1.0f); -#else if (Xor&PF_Modulated) { #if defined (__unix__) || defined (UNIXCOMMON) @@ -1149,7 +1120,6 @@ EXPORT void HWRAPI(SetBlend) (FBITFIELD PolyFlags) pglTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_REPLACE); } } -#endif if (Xor & PF_Occlude) // depth test but (no) depth write { @@ -1203,11 +1173,7 @@ EXPORT void HWRAPI(SetTexture) (FTextureInfo *pTexInfo) else { // Download a mipmap -#ifdef KOS_GL_COMPATIBILITY - static GLushort tex[2048*2048]; -#else static RGBA_t tex[2048*2048]; -#endif const GLvoid *ptex = tex; INT32 w, h; @@ -1226,102 +1192,6 @@ EXPORT void HWRAPI(SetTexture) (FTextureInfo *pTexInfo) } else #endif -#ifdef KOS_GL_COMPATIBILITY - if ((pTexInfo->grInfo.format == GR_TEXFMT_P_8) || - (pTexInfo->grInfo.format == GR_TEXFMT_AP_88)) - { - const GLubyte *pImgData = (const GLubyte *)pTexInfo->grInfo.data; - INT32 i, j; - - for (j = 0; j < h; j++) - { - for (i = 0; i < w; i++) - { - if ((*pImgData == HWR_PATCHES_CHROMAKEY_COLORINDEX) && - (pTexInfo->flags & TF_CHROMAKEYED)) - { - tex[w*j+i] = 0; - } - else - { - if (pTexInfo->grInfo.format == GR_TEXFMT_AP_88 && !(pTexInfo->flags & TF_CHROMAKEYED)) - tex[w*j+i] = 0; - else - tex[w*j+i] = (myPaletteData[*pImgData].s.alpha>>4)<<12; - - tex[w*j+i] |= (myPaletteData[*pImgData].s.red >>4)<<8; - tex[w*j+i] |= (myPaletteData[*pImgData].s.green>>4)<<4; - tex[w*j+i] |= (myPaletteData[*pImgData].s.blue >>4); - } - - pImgData++; - - if (pTexInfo->grInfo.format == GR_TEXFMT_AP_88) - { - if (!(pTexInfo->flags & TF_CHROMAKEYED)) - tex[w*j+i] |= ((*pImgData)>>4)<<12; - pImgData++; - } - - } - } - } - else if (pTexInfo->grInfo.format == GR_RGBA) - { - // corona test : passed as ARGB 8888, which is not in glide formats - // Hurdler: not used for coronas anymore, just for dynamic lighting - const RGBA_t *pImgData = (const RGBA_t *)pTexInfo->grInfo.data; - INT32 i, j; - - for (j = 0; j < h; j++) - { - for (i = 0; i < w; i++) - { - tex[w*j+i] = (pImgData->s.alpha>>4)<<12; - tex[w*j+i] |= (pImgData->s.red >>4)<<8; - tex[w*j+i] |= (pImgData->s.green>>4)<<4; - tex[w*j+i] |= (pImgData->s.blue >>4); - pImgData++; - } - } - } - else if (pTexInfo->grInfo.format == GR_TEXFMT_ALPHA_INTENSITY_88) - { - const GLubyte *pImgData = (const GLubyte *)pTexInfo->grInfo.data; - INT32 i, j; - - for (j = 0; j < h; j++) - { - for (i = 0; i < w; i++) - { - const GLubyte sID = (*pImgData)>>4; - tex[w*j+i] = sID<<8 | sID<<4 | sID; - pImgData++; - tex[w*j+i] |= ((*pImgData)>>4)<<12; - pImgData++; - } - } - } - else if (pTexInfo->grInfo.format == GR_TEXFMT_ALPHA_8) // Used for fade masks - { - const GLubyte *pImgData = (const GLubyte *)pTexInfo->grInfo.data; - INT32 i, j; - - for (j = 0; j < h; j++) - { - for (i = 0; i < w; i++) - { - tex[w*j+i] = (pImgData>>4)<<12; - tex[w*j+i] |= (255>>4)<<8; - tex[w*j+i] |= (255>>4)<<4; - tex[w*j+i] |= (255>>4); - pImgData++; - } - } - } - else - DBG_Printf ("SetTexture(bad format) %ld\n", pTexInfo->grInfo.format); -#else if ((pTexInfo->grInfo.format == GR_TEXFMT_P_8) || (pTexInfo->grInfo.format == GR_TEXFMT_AP_88)) { @@ -1403,7 +1273,6 @@ EXPORT void HWRAPI(SetTexture) (FTextureInfo *pTexInfo) } else DBG_Printf ("SetTexture(bad format) %ld\n", pTexInfo->grInfo.format); -#endif pTexInfo->downloaded = NextTexAvail++; tex_downloaded = pTexInfo->downloaded; @@ -1412,9 +1281,6 @@ EXPORT void HWRAPI(SetTexture) (FTextureInfo *pTexInfo) pglTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, mag_filter); pglTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, min_filter); -#ifdef KOS_GL_COMPATIBILITY - pglTexImage2D(GL_TEXTURE_2D, 0, GL_ARGB4444, w, h, 0, GL_ARGB4444, GL_UNSIGNED_BYTE, ptex); -#else #ifdef MINI_GL_COMPATIBILITY //if (pTexInfo->grInfo.format == GR_TEXFMT_ALPHA_INTENSITY_88) //pglTexImage2D(GL_TEXTURE_2D, 0, GL_LUMINANCE_ALPHA, w, h, 0, GL_RGBA, GL_UNSIGNED_BYTE, ptex); @@ -1494,7 +1360,6 @@ EXPORT void HWRAPI(SetTexture) (FTextureInfo *pTexInfo) else pglTexImage2D(GL_TEXTURE_2D, 0, textureformatGL, w, h, 0, GL_RGBA, GL_UNSIGNED_BYTE, ptex); } -#endif #endif if (pTexInfo->flags & TF_WRAPX) @@ -1728,41 +1593,16 @@ EXPORT void HWRAPI(SetSpecialState) (hwdspecialstate_t IdState, INT32 Value) break; case HWD_SET_POLYGON_SMOOTH: -#ifdef KOS_GL_COMPATIBILITY // GL_POLYGON_SMOOTH_HINT - if (Value) - pglHint(GL_POLYGON_SMOOTH_HINT,GL_NICEST); - else - pglHint(GL_POLYGON_SMOOTH_HINT,GL_FASTEST); -#else if (Value) pglEnable(GL_POLYGON_SMOOTH); else pglDisable(GL_POLYGON_SMOOTH); -#endif break; case HWD_SET_TEXTUREFILTERMODE: switch (Value) { -#ifdef KOS_GL_COMPATIBILITY - case HWD_SET_TEXTUREFILTER_TRILINEAR: - case HWD_SET_TEXTUREFILTER_BILINEAR: - min_filter = mag_filter = GL_FILTER_BILINEAR; - break; - case HWD_SET_TEXTUREFILTER_POINTSAMPLED: - min_filter = mag_filter = GL_FILTER_NONE; - case HWD_SET_TEXTUREFILTER_MIXED1: - min_filter = GL_FILTER_NONE; - mag_filter = GL_LINEAR; - case HWD_SET_TEXTUREFILTER_MIXED2: - min_filter = GL_LINEAR; - mag_filter = GL_FILTER_NONE; - break; - case HWD_SET_TEXTUREFILTER_MIXED3: - min_filter = GL_FILTER_BILINEAR; - mag_filter = GL_FILTER_NONE; - break; -#elif !defined (MINI_GL_COMPATIBILITY) +#ifndef MINI_GL_COMPATIBILITY case HWD_SET_TEXTUREFILTER_TRILINEAR: min_filter = GL_LINEAR_MIPMAP_LINEAR; mag_filter = GL_LINEAR; @@ -1793,12 +1633,8 @@ EXPORT void HWRAPI(SetSpecialState) (hwdspecialstate_t IdState, INT32 Value) break; #endif default: -#ifdef KOS_GL_COMPATIBILITY - min_filter = mag_filter = GL_FILTER_NONE; -#else mag_filter = GL_LINEAR; min_filter = GL_NEAREST; -#endif } if (!pgluBuild2DMipmaps) { @@ -1831,9 +1667,7 @@ static void DrawMD2Ex(INT32 *gl_cmd_buffer, md2_frame_t *frame, UINT32 duration float scalex = scale, scaley = scale, scalez = scale; // Because Otherwise, scaling the screen negatively vertically breaks the lighting -#ifndef KOS_GL_COMPATIBILITY GLfloat LightPos[] = {0.0f, 1.0f, 0.0f, 0.0f}; -#endif if (duration == 0) duration = 1; @@ -1885,9 +1719,7 @@ static void DrawMD2Ex(INT32 *gl_cmd_buffer, md2_frame_t *frame, UINT32 duration pglCullFace(GL_BACK); } -#ifndef KOS_GL_COMPATIBILITY pglLightfv(GL_LIGHT0, GL_POSITION, LightPos); -#endif pglShadeModel(GL_SMOOTH); if (color) @@ -2149,18 +1981,11 @@ EXPORT void HWRAPI(StartScreenWipe) (void) // Create screen texture pglBindTexture(GL_TEXTURE_2D, startScreenWipe); -#ifdef KOS_GL_COMPATIBILITY - pglTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_FILTER_NONE); - pglTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_FILTER_NONE); -#else pglTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST); pglTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST); -#endif Clamp2D(GL_TEXTURE_WRAP_S); Clamp2D(GL_TEXTURE_WRAP_T); -#ifndef KOS_GL_COMPATIBILITY pglCopyTexImage2D(GL_TEXTURE_2D, 0, GL_RGB, 0, 0, texsize, texsize, 0); -#endif tex_downloaded = 0; // 0 so it knows it doesn't have any of the cached patches downloaded right now } @@ -2178,18 +2003,11 @@ EXPORT void HWRAPI(EndScreenWipe)(void) // Create screen texture pglBindTexture(GL_TEXTURE_2D, endScreenWipe); -#ifdef KOS_GL_COMPATIBILITY - pglTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_FILTER_NONE); - pglTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_FILTER_NONE); -#else pglTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST); pglTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST); -#endif Clamp2D(GL_TEXTURE_WRAP_S); Clamp2D(GL_TEXTURE_WRAP_T); -#ifndef KOS_GL_COMPATIBILITY pglCopyTexImage2D(GL_TEXTURE_2D, 0, GL_RGB, 0, 0, texsize, texsize, 0); -#endif tex_downloaded = 0; // 0 so it knows it doesn't have any of the cached patches downloaded right now } @@ -2370,18 +2188,11 @@ EXPORT void HWRAPI(MakeScreenTexture) (void) // Create screen texture pglBindTexture(GL_TEXTURE_2D, screentexture); -#ifdef KOS_GL_COMPATIBILITY - pglTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_FILTER_NONE); - pglTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_FILTER_NONE); -#else pglTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST); pglTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST); -#endif Clamp2D(GL_TEXTURE_WRAP_S); Clamp2D(GL_TEXTURE_WRAP_T); -#ifndef KOS_GL_COMPATIBILITY pglCopyTexImage2D(GL_TEXTURE_2D, 0, GL_RGB, 0, 0, texsize, texsize, 0); -#endif tex_downloaded = 0; // 0 so it knows it doesn't have any of the cached patches downloaded right now } @@ -2398,18 +2209,11 @@ EXPORT void HWRAPI(MakeScreenFinalTexture) (void) // Create screen texture pglBindTexture(GL_TEXTURE_2D, finalScreenTexture); -#ifdef KOS_GL_COMPATIBILITY - pglTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_FILTER_NONE); - pglTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_FILTER_NONE); -#else pglTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST); pglTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST); -#endif Clamp2D(GL_TEXTURE_WRAP_S); Clamp2D(GL_TEXTURE_WRAP_T); -#ifndef KOS_GL_COMPATIBILITY pglCopyTexImage2D(GL_TEXTURE_2D, 0, GL_RGB, 0, 0, texsize, texsize, 0); -#endif tex_downloaded = 0; // 0 so it knows it doesn't have any of the cached patches downloaded right now diff --git a/src/sdl12/ogl_sdl.c b/src/sdl12/ogl_sdl.c index eb7e9996d..8fda4aeb6 100644 --- a/src/sdl12/ogl_sdl.c +++ b/src/sdl12/ogl_sdl.c @@ -230,11 +230,9 @@ boolean OglSdlSurface(INT32 w, INT32 h, boolean isFullscreen) glXSwapIntervalSGIEXT = NULL; #endif -#ifndef KOS_GL_COMPATIBILITY if (isExtAvailable("GL_EXT_texture_filter_anisotropic", gl_extensions)) pglGetIntegerv(GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT, &maximumAnisotropy); else -#endif maximumAnisotropy = 0; SetupGLFunc13(); @@ -246,11 +244,7 @@ boolean OglSdlSurface(INT32 w, INT32 h, boolean isFullscreen) pglClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT); HWR_Startup(); -#ifdef KOS_GL_COMPATIBILITY - textureformatGL = GL_ARGB4444; -#else textureformatGL = cbpp > 16 ? GL_RGBA : GL_RGB5_A1; -#endif return true; } From 5a16c39af0bb84852e9ac8d0163920a1158196f2 Mon Sep 17 00:00:00 2001 From: Monster Iestyn Date: Fri, 29 Sep 2017 19:27:17 +0100 Subject: [PATCH 050/111] XBOX was eXecuted --- src/Makefile | 14 ----- src/Makefile.cfg | 16 ------ src/console.c | 6 --- src/d_clisrv.c | 4 -- src/d_main.c | 13 +---- src/d_netcmd.c | 2 +- src/d_netfil.c | 4 +- src/doomdef.h | 4 +- src/doomtype.h | 8 +-- src/filesrch.c | 24 ++------- src/g_game.c | 18 +------ src/g_input.c | 80 +++++------------------------ src/g_input.h | 7 +-- src/hardware/hw_data.h | 2 +- src/hardware/hw_dll.h | 4 +- src/hardware/hws_data.h | 2 +- src/i_tcp.c | 6 --- src/m_argv.c | 2 +- src/m_misc.c | 2 +- src/mserv.c | 2 +- src/screen.h | 4 +- src/sdl12/Makefile.cfg | 4 -- src/sdl12/SRB2XBOX/Makefile.cfg | 44 ---------------- src/sdl12/SRB2XBOX/xboxhelp.c | 91 --------------------------------- src/sdl12/SRB2XBOX/xboxhelp.h | 6 --- src/sdl12/endtxt.c | 2 +- src/sdl12/hwsym_sdl.c | 2 +- src/sdl12/i_cdmus.c | 12 ----- src/sdl12/i_main.c | 14 ++--- src/sdl12/i_system.c | 68 ++++++++---------------- src/sdl12/i_video.c | 6 +-- src/sdl12/sdl_sound.c | 6 +-- 32 files changed, 64 insertions(+), 415 deletions(-) delete mode 100644 src/sdl12/SRB2XBOX/Makefile.cfg delete mode 100644 src/sdl12/SRB2XBOX/xboxhelp.c delete mode 100644 src/sdl12/SRB2XBOX/xboxhelp.h diff --git a/src/Makefile b/src/Makefile index d67657851..1ae91da3d 100644 --- a/src/Makefile +++ b/src/Makefile @@ -525,10 +525,6 @@ ifdef DJGPPDOS all: pre-build $(BIN)/$(EXENAME) endif -ifdef XBOX -all: pre-build $(BIN)/$(BINNAME) -endif - ifdef PS3N all: pre-build $(BIN)/$(PKGNAME) endif @@ -547,7 +543,6 @@ endif ifndef PSP -ifndef XBOX ifdef MINGW ifndef SDL all: pre-build $(BIN)/$(EXENAME) dll @@ -558,7 +553,6 @@ endif ifdef SDL all: pre-build $(BIN)/$(EXENAME) endif -endif ifdef NDS all: $(BIN)/$(EXENAME:.elf=.nds) @@ -782,14 +776,6 @@ $(OBJDIR)/%.o: %.s $(OBJDIR)/SRB2.res: win32/Srb2win.rc win32/afxres.h win32/resource.h $(WINDRES) -i $< -O rc $(WINDRESFLAGS) --include-dir=win32 -o $@ -O coff -ifdef XBOX -$(OBJDIR)/xboxhelp.o: $(INTERFACE)/SRB2XBOX/xboxhelp.c - $(CC) $(CFLAGS) $(WFLAGS) -c $< -o $@ - -$(BIN)/$(BINNAME): $(BIN)/$(EXENAME) - $(CXBE) -OUT:"$@" -DUMPINFO:"$(BIN)/SRB2XBOX.cxbe" -TITLE:"Sonic Robo Blast 2" $< -endif - ifdef NDS $(BIN)/$(EXENAME:.elf=.nds): $(BIN)/$(EXENAME:.elf=.arm9) $(NDSTOOL) -c $@ -9 $(BIN)/$(EXENAME:.elf=.arm9) diff --git a/src/Makefile.cfg b/src/Makefile.cfg index ff5fd4c51..ff0619790 100644 --- a/src/Makefile.cfg +++ b/src/Makefile.cfg @@ -148,15 +148,11 @@ endif ifdef GCC40 WFLAGS+=-Wold-style-definition endif -ifndef XBOX WFLAGS+=-Wmissing-prototypes -Wmissing-declarations -endif ifdef GCC40 WFLAGS+=-Wmissing-field-initializers endif -ifndef XBOX WFLAGS+=-Wmissing-noreturn -endif #WFLAGS+=-Wmissing-format-attribute #WFLAGS+=-Wno-multichar #WFLAGS+=-Wno-deprecated-declarations @@ -215,7 +211,6 @@ endif #indicate platform and what interface use with ifndef WINCE -ifndef XBOX ifndef PSP ifndef WII ifndef PS3N @@ -238,7 +233,6 @@ endif endif endif endif -endif #determine the interface directory (where you put all i_*.c) i_cdmus_o=$(OBJDIR)/i_cdmus.o @@ -358,15 +352,6 @@ ifdef MINGW OBJDIR:=$(OBJDIR)/Mingw BIN:=$(BIN)/Mingw else -ifdef XBOX - INTERFACE=sdl12 - NASMFORMAT=win32 - PREFIX?=/usr/local/openxdk/bin/i386-pc-xbox - SDL=1 - SDL12=1 - OBJDIR:=$(OBJDIR)/XBOX - BIN:=$(BIN)/XBOX -else ifdef PSP INTERFACE=sdl12 NONX86=1 @@ -403,7 +388,6 @@ endif endif endif endif -endif ifdef GP2X ifdef SDL diff --git a/src/console.c b/src/console.c index 80bb9b9be..89c0a2d01 100644 --- a/src/console.c +++ b/src/console.c @@ -12,9 +12,6 @@ #ifdef __GNUC__ #include -#ifdef _XBOX -#include -#endif #endif #include "doomdef.h" @@ -1211,9 +1208,6 @@ void CONS_Printf(const char *fmt, ...) if (!con_started) { -#if defined (_XBOX) && defined (__GNUC__) - if (!keyboard_started) debugPrint(txt); -#endif #ifdef PC_DOS CON_LogMessage(txt); free(txt); diff --git a/src/d_clisrv.c b/src/d_clisrv.c index 6685cd5ee..26b303cb7 100644 --- a/src/d_clisrv.c +++ b/src/d_clisrv.c @@ -50,10 +50,6 @@ #include "f_finale.h" #endif -#ifdef _XBOX -#include "sdl12/SRB2XBOX/xboxhelp.h" -#endif - // // NETWORKING // diff --git a/src/d_main.c b/src/d_main.c index 1afe05105..7dab2430f 100644 --- a/src/d_main.c +++ b/src/d_main.c @@ -30,15 +30,13 @@ int snprintf(char *str, size_t n, const char *fmt, ...); //int vsnprintf(char *str, size_t n, const char *fmt, va_list ap); #endif -#if (defined (_WIN32) && !defined (_WIN32_WCE)) && !defined (_XBOX) +#if defined (_WIN32) && !defined (_WIN32_WCE) #include #include #endif #if !defined (UNDER_CE) #include -#elif defined (_XBOX) -#define NO_TIME #endif #include "doomdef.h" @@ -82,10 +80,6 @@ int snprintf(char *str, size_t n, const char *fmt, ...); #include "config.h.in" #endif -#ifdef _XBOX -#include "sdl12/SRB2XBOX/xboxhelp.h" -#endif - #ifdef HWRENDER #include "hardware/hw_main.h" // 3D View Rendering #endif @@ -120,13 +114,8 @@ INT32 postimgparam; postimg_t postimgtype2 = postimg_none; INT32 postimgparam2; -#ifdef _XBOX -boolean nomidimusic = true, nosound = true; -boolean nodigimusic = true; -#else boolean nomidimusic = false, nosound = false; boolean nodigimusic = false; // No fmod-based music -#endif // These variables are only true if // the respective sound system is initialized diff --git a/src/d_netcmd.c b/src/d_netcmd.c index cba13a6cb..5fbd181a8 100644 --- a/src/d_netcmd.c +++ b/src/d_netcmd.c @@ -244,7 +244,7 @@ INT32 cv_debug; consvar_t cv_usemouse = {"use_mouse", "On", CV_SAVE|CV_CALL,usemouse_cons_t, I_StartupMouse, 0, NULL, NULL, 0, 0, NULL}; consvar_t cv_usemouse2 = {"use_mouse2", "Off", CV_SAVE|CV_CALL,usemouse_cons_t, I_StartupMouse2, 0, NULL, NULL, 0, 0, NULL}; -#if defined (_XBOX) || defined (WMINPUT) || defined (_WII) //joystick 1 and 2 +#if defined (WMINPUT) || defined (_WII) //joystick 1 and 2 consvar_t cv_usejoystick = {"use_joystick", "1", CV_SAVE|CV_CALL, usejoystick_cons_t, I_InitJoystick, 0, NULL, NULL, 0, 0, NULL}; consvar_t cv_usejoystick2 = {"use_joystick2", "2", CV_SAVE|CV_CALL, usejoystick_cons_t, diff --git a/src/d_netfil.c b/src/d_netfil.c index 4cbba48a9..9518433de 100644 --- a/src/d_netfil.c +++ b/src/d_netfil.c @@ -22,10 +22,10 @@ #include #endif -#if ((defined (_WIN32) && !defined (_WIN32_WCE)) || defined (__DJGPP__)) && !defined (_XBOX) +#if ((defined (_WIN32) && !defined (_WIN32_WCE)) || defined (__DJGPP__)) #include #include -#elif !defined (_WIN32_WCE) && !(defined (_XBOX) && !defined (__GNUC__)) +#elif !defined (_WIN32_WCE) #include #include #include diff --git a/src/doomdef.h b/src/doomdef.h index 9bf87bafc..a38ce3ca4 100644 --- a/src/doomdef.h +++ b/src/doomdef.h @@ -28,7 +28,7 @@ // Use Mixer interface? #ifdef HAVE_MIXER - //#if !defined(_WIN32_WCE) && !defined(_XBOX) && !defined(GP2X) + //#if !defined(_WIN32_WCE) && !defined(GP2X) #define SOUND SOUND_MIXER #define NOHS // No HW3SOUND #ifdef HW3SOUND @@ -116,7 +116,7 @@ #endif #include -#if ((defined (_WIN32) && !defined (_WIN32_WCE)) || defined (__DJGPP__)) && !defined (_XBOX) +#if (defined (_WIN32) && !defined (_WIN32_WCE)) || defined (__DJGPP__) #include #endif diff --git a/src/doomtype.h b/src/doomtype.h index 29f9f9fa5..5bfd57258 100644 --- a/src/doomtype.h +++ b/src/doomtype.h @@ -17,7 +17,7 @@ #ifndef __DOOMTYPE__ #define __DOOMTYPE__ -#if (defined (_WIN32) && !defined (_XBOX)) || (defined (_WIN32_WCE) && !defined (__GNUC__)) +#if defined (_WIN32) || (defined (_WIN32_WCE) && !defined (__GNUC__)) //#define WIN32_LEAN_AND_MEAN #define RPC_NO_WINDOWS_H #include @@ -173,7 +173,7 @@ size_t strlcpy(char *dst, const char *src, size_t siz); //faB: clean that up !! #if defined( _MSC_VER) && (_MSC_VER >= 1800) // MSVC 2013 and forward #include "stdbool.h" - #elif (defined (_WIN32) || (defined (_WIN32_WCE) && !defined (__GNUC__))) && !defined (_XBOX) + #elif defined (_WIN32) || (defined (_WIN32_WCE) && !defined (__GNUC__)) #define false FALSE // use windows types #define true TRUE #define boolean BOOL @@ -304,10 +304,6 @@ typedef UINT32 tic_t; #define ATTRPACK __attribute__((packed)) #endif #define ATTRUNUSED __attribute__((unused)) -#ifdef _XBOX -#define FILESTAMP I_OutputMsg("%s:%d\n",__FILE__,__LINE__); -#define XBOXSTATIC static -#endif #elif defined (_MSC_VER) #define ATTRNORETURN __declspec(noreturn) #define ATTRINLINE __forceinline diff --git a/src/filesrch.c b/src/filesrch.c index b931bdd05..1f159d5c0 100644 --- a/src/filesrch.c +++ b/src/filesrch.c @@ -16,7 +16,7 @@ #ifdef __GNUC__ #include #endif -#if defined (_WIN32) && !defined (_XBOX) +#ifdef _WIN32 //#define WIN32_LEAN_AND_MEAN #define RPC_NO_WINDOWS_H #include @@ -34,7 +34,7 @@ #include "z_zone.h" #include "m_menu.h" // Addons_option_Onchange -#if (defined (_WIN32) && !defined (_WIN32_WCE)) && defined (_MSC_VER) && !defined (_XBOX) +#if (defined (_WIN32) && !defined (_WIN32_WCE)) && defined (_MSC_VER) #include #include @@ -338,25 +338,7 @@ UINT8 refreshdirmenu = 0; size_t packetsizetally = 0; size_t mainwadstally = 0; -#if defined (_XBOX) && defined (_MSC_VER) -filestatus_t filesearch(char *filename, const char *startpath, const UINT8 *wantedmd5sum, - boolean completepath, int maxsearchdepth) -{ -//NONE? - startpath = filename = NULL; - wantedmd5sum = NULL; - maxsearchdepth = 0; - completepath = false; - return FS_NOTFOUND; -} - -boolean preparefilemenu(boolean samedepth) -{ - (void)samedepth; - return false; -} - -#elif defined (_WIN32_WCE) +#ifdef _WIN32_WCE filestatus_t filesearch(char *filename, const char *startpath, const UINT8 *wantedmd5sum, boolean completepath, int maxsearchdepth) { diff --git a/src/g_game.c b/src/g_game.c index ae6c1bd96..9d3933aaf 100644 --- a/src/g_game.c +++ b/src/g_game.c @@ -332,9 +332,6 @@ static CV_PossibleValue_t joyaxis_cons_t[] = {{0, "None"}, #endif #else {1, "X-Axis"}, {2, "Y-Axis"}, {-1, "X-Axis-"}, {-2, "Y-Axis-"}, -#ifdef _XBOX -{3, "Alt X-Axis"}, {4, "Alt Y-Axis"}, {-3, "Alt X-Axis-"}, {-4, "Alt Y-Axis-"}, -#else #if JOYAXISSET > 1 {3, "Z-Axis"}, {4, "X-Rudder"}, {-3, "Z-Axis-"}, {-4, "X-Rudder-"}, #endif @@ -344,7 +341,6 @@ static CV_PossibleValue_t joyaxis_cons_t[] = {{0, "None"}, #if JOYAXISSET > 3 {7, "U-Axis"}, {8, "V-Axis"}, {-7, "U-Axis-"}, {-8, "V-Axis-"}, #endif -#endif #endif {0, NULL}}; #ifdef _WII @@ -404,21 +400,16 @@ consvar_t cv_moveaxis = {"joyaxis_move", "None", CV_SAVE, joyaxis_cons_t, NULL, #else consvar_t cv_moveaxis = {"joyaxis_move", "Y-Axis", CV_SAVE, joyaxis_cons_t, NULL, 0, NULL, NULL, 0, 0, NULL}; #endif -#ifdef _XBOX -consvar_t cv_sideaxis = {"joyaxis_side", "Alt X-Axis", CV_SAVE, joyaxis_cons_t, NULL, 0, NULL, NULL, 0, 0, NULL}; -consvar_t cv_lookaxis = {"joyaxis_look", "Alt Y-Axis", CV_SAVE, joyaxis_cons_t, NULL, 0, NULL, NULL, 0, 0, NULL}; -#elif defined (PSP) +#ifdef PSP consvar_t cv_sideaxis = {"joyaxis_side", "None", CV_SAVE, joyaxis_cons_t, NULL, 0, NULL, NULL, 0, 0, NULL}; #else consvar_t cv_sideaxis = {"joyaxis_side", "Z-Axis", CV_SAVE, joyaxis_cons_t, NULL, 0, NULL, NULL, 0, 0, NULL}; #endif -#ifndef _XBOX #ifdef PSP consvar_t cv_lookaxis = {"joyaxis_look", "Y-Axis", CV_SAVE, joyaxis_cons_t, NULL, 0, NULL, NULL, 0, 0, NULL}; #else consvar_t cv_lookaxis = {"joyaxis_look", "None", CV_SAVE, joyaxis_cons_t, NULL, 0, NULL, NULL, 0, 0, NULL}; #endif -#endif consvar_t cv_fireaxis = {"joyaxis_fire", "None", CV_SAVE, joyaxis_cons_t, NULL, 0, NULL, NULL, 0, 0, NULL}; consvar_t cv_firenaxis = {"joyaxis_firenormal", "None", CV_SAVE, joyaxis_cons_t, NULL, 0, NULL, NULL, 0, 0, NULL}; #endif @@ -433,17 +424,12 @@ consvar_t cv_firenaxis2 = {"joyaxis2_firenormal", "RAnalog", CV_SAVE, joyaxis_co #else consvar_t cv_turnaxis2 = {"joyaxis2_turn", "X-Axis", CV_SAVE, joyaxis_cons_t, NULL, 0, NULL, NULL, 0, 0, NULL}; consvar_t cv_moveaxis2 = {"joyaxis2_move", "Y-Axis", CV_SAVE, joyaxis_cons_t, NULL, 0, NULL, NULL, 0, 0, NULL}; -#ifdef _XBOX -consvar_t cv_sideaxis2 = {"joyaxis2_side", "Alt X-Axis", CV_SAVE, joyaxis_cons_t, NULL, 0, NULL, NULL, 0, 0, NULL}; -consvar_t cv_lookaxis2 = {"joyaxis2_look", "Alt Y-Axis", CV_SAVE, joyaxis_cons_t, NULL, 0, NULL, NULL, 0, 0, NULL}; -#elif defined (_PSP) +#ifdef _PSP consvar_t cv_sideaxis2 = {"joyaxis2_side", "None", CV_SAVE, joyaxis_cons_t, NULL, 0, NULL, NULL, 0, 0, NULL}; #else consvar_t cv_sideaxis2 = {"joyaxis2_side", "Z-Axis", CV_SAVE, joyaxis_cons_t, NULL, 0, NULL, NULL, 0, 0, NULL}; #endif -#ifndef _XBOX consvar_t cv_lookaxis2 = {"joyaxis2_look", "None", CV_SAVE, joyaxis_cons_t, NULL, 0, NULL, NULL, 0, 0, NULL}; -#endif consvar_t cv_fireaxis2 = {"joyaxis2_fire", "None", CV_SAVE, joyaxis_cons_t, NULL, 0, NULL, NULL, 0, 0, NULL}; consvar_t cv_firenaxis2 = {"joyaxis2_firenormal", "None", CV_SAVE, joyaxis_cons_t, NULL, 0, NULL, NULL, 0, 0, NULL}; #endif diff --git a/src/g_input.c b/src/g_input.c index 802c4cc1f..d7e883735 100644 --- a/src/g_input.c +++ b/src/g_input.c @@ -268,7 +268,7 @@ static keyname_t keynames[] = {KEY_MOUSE1+0,"MOUSE1"}, {KEY_MOUSE1+1,"MOUSE2"}, {KEY_MOUSE1+2,"MOUSE3"}, -#if !defined (_XBOX) && !defined (_PSP) && !defined (_WII) +#if !defined (_PSP) && !defined (_WII) {KEY_MOUSE1+3,"MOUSE4"}, {KEY_MOUSE1+4,"MOUSE5"}, {KEY_MOUSE1+5,"MOUSE6"}, @@ -278,7 +278,7 @@ static keyname_t keynames[] = {KEY_2MOUSE1+0,"SEC_MOUSE2"}, // BP: sorry my mouse handler swap button 1 and 2 {KEY_2MOUSE1+1,"SEC_MOUSE1"}, {KEY_2MOUSE1+2,"SEC_MOUSE3"}, -#if !defined (_XBOX) && !defined (_PSP) && !defined (_WII) +#if !defined (_PSP) && !defined (_WII) {KEY_2MOUSE1+3,"SEC_MOUSE4"}, {KEY_2MOUSE1+4,"SEC_MOUSE5"}, {KEY_2MOUSE1+5,"SEC_MOUSE6"}, @@ -290,21 +290,7 @@ static keyname_t keynames[] = {KEY_2MOUSEWHEELUP, "Wheel 2 UP"}, {KEY_2MOUSEWHEELDOWN, "Wheel 2 Down"}, -#ifdef _XBOX - {KEY_JOY1+0, "JOYA"}, - {KEY_JOY1+1, "JOYB"}, - {KEY_JOY1+2, "JOYX"}, - {KEY_JOY1+3, "JOYY"}, - {KEY_JOY1+4, "JOYG"}, - {KEY_JOY1+5, "JOYW"}, - {KEY_JOY1+6, "JOYL"}, - {KEY_JOY1+7, "JOYR"}, - {KEY_JOY1+8, "JOYS"}, - {KEY_JOY1+9, "JOYN"}, - {KEY_JOY1+10,"JOYW"}, - {KEY_JOY1+11,"JOYE"}, -#define NOMOREJOYBTN_1S -#elif defined (_PSP) +#ifdef _PSP {KEY_JOY1+0, "TRIANGLE"}, {KEY_JOY1+1, "CIRCLE" }, {KEY_JOY1+2, "CROSS" }, @@ -434,7 +420,7 @@ static keyname_t keynames[] = {KEY_HAT1+1, "HATDOWN"}, {KEY_HAT1+2, "HATLEFT"}, {KEY_HAT1+3, "HATRIGHT"}, -#if !defined (_XBOX) && !defined (_PSP) && !defined (_WII) +#if !defined (_PSP) && !defined (_WII) {KEY_HAT1+4, "HATUP2"}, {KEY_HAT1+5, "HATDOWN2"}, {KEY_HAT1+6, "HATLEFT2"}, @@ -452,7 +438,7 @@ static keyname_t keynames[] = {KEY_DBLMOUSE1+0, "DBLMOUSE1"}, {KEY_DBLMOUSE1+1, "DBLMOUSE2"}, {KEY_DBLMOUSE1+2, "DBLMOUSE3"}, -#if !defined (_XBOX) && !defined (_PSP) && !defined (_WII) +#if !defined (_PSP) && !defined (_WII) {KEY_DBLMOUSE1+3, "DBLMOUSE4"}, {KEY_DBLMOUSE1+4, "DBLMOUSE5"}, {KEY_DBLMOUSE1+5, "DBLMOUSE6"}, @@ -462,7 +448,7 @@ static keyname_t keynames[] = {KEY_DBL2MOUSE1+0, "DBLSEC_MOUSE2"}, // BP: sorry my mouse handler swap button 1 and 2 {KEY_DBL2MOUSE1+1, "DBLSEC_MOUSE1"}, {KEY_DBL2MOUSE1+2, "DBLSEC_MOUSE3"}, -#if !defined (_XBOX) && !defined (_PSP) && !defined (_WII) +#if !defined (_PSP) && !defined (_WII) {KEY_DBL2MOUSE1+3, "DBLSEC_MOUSE4"}, {KEY_DBL2MOUSE1+4, "DBLSEC_MOUSE5"}, {KEY_DBL2MOUSE1+5, "DBLSEC_MOUSE6"}, @@ -470,21 +456,7 @@ static keyname_t keynames[] = {KEY_DBL2MOUSE1+7, "DBLSEC_MOUSE8"}, #endif -#ifdef _XBOX - {KEY_DBLJOY1+0, "DBLJOYA"}, - {KEY_DBLJOY1+1, "DBLJOYB"}, - {KEY_DBLJOY1+2, "DBLJOYX"}, - {KEY_DBLJOY1+3, "DBLJOYY"}, - {KEY_DBLJOY1+4, "DBLJOYG"}, - {KEY_DBLJOY1+5, "DBLJOYW"}, - {KEY_DBLJOY1+6, "DBLJOYL"}, - {KEY_DBLJOY1+7, "DBLJOYR"}, - {KEY_DBLJOY1+8, "DBLJOYS"}, - {KEY_DBLJOY1+9, "DBLJOYN"}, - {KEY_DBLJOY1+10,"DBLJOYW"}, - {KEY_DBLJOY1+11,"DBLJOYE"}, -#define NOMOREJOYBTN_1DBL -#elif defined (_PSP) +#ifdef _PSP {KEY_DBLJOY1+0, "DBLTRIANGLE"}, {KEY_DBLJOY1+1, "DBLCIRCLE" }, {KEY_DBLJOY1+2, "DBLCROSS" }, @@ -612,7 +584,7 @@ static keyname_t keynames[] = {KEY_DBLHAT1+1, "DBLHATDOWN"}, {KEY_DBLHAT1+2, "DBLHATLEFT"}, {KEY_DBLHAT1+3, "DBLHATRIGHT"}, -#if !defined (_XBOX) && !defined (_PSP) && !defined (_WII) +#if !defined (_PSP) && !defined (_WII) {KEY_DBLHAT1+4, "DBLHATUP2"}, {KEY_DBLHAT1+5, "DBLHATDOWN2"}, {KEY_DBLHAT1+6, "DBLHATLEFT2"}, @@ -627,21 +599,7 @@ static keyname_t keynames[] = {KEY_DBLHAT1+15, "DBLHATRIGHT4"}, #endif -#ifdef _XBOX - {KEY_2JOY1+0, "SEC_JOYA"}, - {KEY_2JOY1+1, "SEC_JOYB"}, - {KEY_2JOY1+2, "SEC_JOYX"}, - {KEY_2JOY1+3, "SEC_JOYY"}, - {KEY_2JOY1+4, "SEC_JOYG"}, - {KEY_2JOY1+5, "SEC_JOYW"}, - {KEY_2JOY1+6, "SEC_JOYL"}, - {KEY_2JOY1+7, "SEC_JOYR"}, - {KEY_2JOY1+8, "SEC_JOYS"}, - {KEY_2JOY1+9, "SEC_JOYN"}, - {KEY_2JOY1+10,"SEC_JOYW"}, - {KEY_2JOY1+11,"SEC_JOYE"}, -#define NOMOREJOYBTN_2S -#elif defined (_PSP) +#ifdef _PSP {KEY_2JOY1+0, "SEC_TRIANGLE"}, {KEY_2JOY1+1, "SEC_CIRCLE" }, {KEY_2JOY1+2, "SEC_CROSS" }, @@ -751,7 +709,7 @@ static keyname_t keynames[] = {KEY_2HAT1+1, "SEC_HATDOWN"}, {KEY_2HAT1+2, "SEC_HATLEFT"}, {KEY_2HAT1+3, "SEC_HATRIGHT"}, -#if !defined (_XBOX) && !defined (_PSP) && !defined (_WII) +#if !defined (_PSP) && !defined (_WII) {KEY_2HAT1+4, "SEC_HATUP2"}, {KEY_2HAT1+5, "SEC_HATDOWN2"}, {KEY_2HAT1+6, "SEC_HATLEFT2"}, @@ -766,21 +724,7 @@ static keyname_t keynames[] = {KEY_2HAT1+15, "SEC_HATRIGHT4"}, #endif -#ifdef _XBOX - {KEY_DBL2JOY1+0, "DBLSEC_JOYA"}, - {KEY_DBL2JOY1+1, "DBLSEC_JOYB"}, - {KEY_DBL2JOY1+2, "DBLSEC_JOYX"}, - {KEY_DBL2JOY1+3, "DBLSEC_JOYY"}, - {KEY_DBL2JOY1+4, "DBLSEC_JOYG"}, - {KEY_DBL2JOY1+5, "DBLSEC_JOYW"}, - {KEY_DBL2JOY1+6, "DBLSEC_JOYL"}, - {KEY_DBL2JOY1+7, "DBLSEC_JOYR"}, - {KEY_DBL2JOY1+8, "DBLSEC_JOYS"}, - {KEY_DBL2JOY1+9, "DBLSEC_JOYN"}, - {KEY_DBL2JOY1+10,"DBLSEC_JOYW"}, - {KEY_DBL2JOY1+11,"DBLSEC_JOYE"}, -#define NOMOREJOYBTN_2DBL -#elif defined (_PSP) +#ifdef _PSP {KEY_DBL2JOY1+0, "DBLSEC_TRIANGLE"}, {KEY_DBL2JOY1+1, "DBLSEC_CIRCLE" }, {KEY_DBL2JOY1+2, "DBLSEC_CROSS" }, @@ -888,7 +832,7 @@ static keyname_t keynames[] = {KEY_DBL2HAT1+1, "DBLSEC_HATDOWN"}, {KEY_DBL2HAT1+2, "DBLSEC_HATLEFT"}, {KEY_DBL2HAT1+3, "DBLSEC_HATRIGHT"}, -#if !defined (_XBOX) && !defined (_PSP) && !defined (_WII) +#if !defined (_PSP) && !defined (_WII) {KEY_DBL2HAT1+4, "DBLSEC_HATUP2"}, {KEY_DBL2HAT1+5, "DBLSEC_HATDOWN2"}, {KEY_DBL2HAT1+6, "DBLSEC_HATLEFT2"}, diff --git a/src/g_input.h b/src/g_input.h index 353a3108e..a2697c9db 100644 --- a/src/g_input.h +++ b/src/g_input.h @@ -23,12 +23,7 @@ #define NUMKEYS 256 -#ifdef _XBOX -#define MOUSEBUTTONS 5 -#define JOYBUTTONS 12 // 12 buttons -#define JOYHATS 1 // 1 hat -#define JOYAXISSET 2 // 2 Sets of 2 axises -#elif defined (_PSP) +#ifdef _PSP #define MOUSEBUTTONS 3 #define JOYBUTTONS 14 // 10 buttons #define JOYHATS 1 // 1 hat diff --git a/src/hardware/hw_data.h b/src/hardware/hw_data.h index a6525a2f5..3673ad254 100644 --- a/src/hardware/hw_data.h +++ b/src/hardware/hw_data.h @@ -20,7 +20,7 @@ #ifndef _HWR_DATA_ #define _HWR_DATA_ -#if defined (_WIN32) && !defined (__CYGWIN__) && !defined (_XBOX) +#if defined (_WIN32) && !defined (__CYGWIN__) //#define WIN32_LEAN_AND_MEAN #define RPC_NO_WINDOWS_H #include diff --git a/src/hardware/hw_dll.h b/src/hardware/hw_dll.h index 6b9f4d538..452e9037c 100644 --- a/src/hardware/hw_dll.h +++ b/src/hardware/hw_dll.h @@ -40,14 +40,14 @@ #define EXPORT #endif #endif - #if defined (_WIN32) && !defined (_XBOX) + #ifdef _WIN32 #define HWRAPI(fn) WINAPI fn #else #define HWRAPI(fn) fn #endif #else // _CREATE_DLL_ #define EXPORT typedef - #if defined (_WIN32) && !defined (_XBOX) + #ifdef _WIN32 #define HWRAPI(fn) (WINAPI *fn) #else #define HWRAPI(fn) (*fn) diff --git a/src/hardware/hws_data.h b/src/hardware/hws_data.h index 9e2d0547e..b890d976b 100644 --- a/src/hardware/hws_data.h +++ b/src/hardware/hws_data.h @@ -114,7 +114,7 @@ typedef struct snddev_s size_t numsfxs; // Windows specific data -#if defined (_WIN32) && !defined (_XBOX) +#ifdef _WIN32 UINT32 cooplevel; HWND hWnd; #endif diff --git a/src/i_tcp.c b/src/i_tcp.c index 5f4236302..90461a7d1 100644 --- a/src/i_tcp.c +++ b/src/i_tcp.c @@ -40,12 +40,6 @@ #endif #endif //WIN32 OS -#ifdef _XBOX // XBox have on WinSock API? -#undef USE_WINSOCK -#undef USE_WINSOCK1 -#undef USE_WINSOCK2 -#endif - #ifdef USE_WINSOCK2 #include #endif diff --git a/src/m_argv.c b/src/m_argv.c index 8b935ba7f..e9b465991 100644 --- a/src/m_argv.c +++ b/src/m_argv.c @@ -124,7 +124,7 @@ void M_PushSpecialParameters(void) /// \brief max args -#if defined (_XBOX) || defined (_WII) +#ifdef _WII #define MAXARGVS 1 #else #define MAXARGVS 256 diff --git a/src/m_misc.c b/src/m_misc.c index 874b906dc..25faf010e 100644 --- a/src/m_misc.c +++ b/src/m_misc.c @@ -191,7 +191,7 @@ INT32 M_MapNumber(char first, char second) // ========================================================================== // some libcs has no access function, make our own -#if defined (_WIN32_WCE) || defined (_XBOX) || defined (_WII) || defined (_PS3) +#if defined (_WIN32_WCE) || defined (_WII) || defined (_PS3) int access(const char *path, int amode) { int accesshandle = -1; diff --git a/src/mserv.c b/src/mserv.c index 26351bf8a..00eef419f 100644 --- a/src/mserv.c +++ b/src/mserv.c @@ -30,7 +30,7 @@ #define HAVE_IPV6 #endif -#if (defined (_WIN32) || defined (_WIN32_WCE)) && !defined (_XBOX) +#if defined (_WIN32) || defined (_WIN32_WCE) #define RPC_NO_WINDOWS_H #ifdef HAVE_IPV6 #include diff --git a/src/screen.h b/src/screen.h index 66aa8dbec..5f1f4bee3 100644 --- a/src/screen.h +++ b/src/screen.h @@ -15,7 +15,7 @@ #include "command.h" -#if (defined (_WIN32) || defined (_WIN32_WCE)) && !defined (__CYGWIN__) && !defined (_XBOX) +#if (defined (_WIN32) || defined (_WIN32_WCE)) && !defined (__CYGWIN__) #if defined (_WIN32_WCE) && defined (__GNUC__) #include #else @@ -110,7 +110,7 @@ typedef struct vmode_s INT32 windowed; // if true this is a windowed mode INT32 numpages; vesa_extra_t *pextradata; // vesa mode extra data -#if defined (_WIN32) && !defined (_XBOX) +#ifdef _WIN32 INT32 (WINAPI *setmode)(viddef_t *lvid, struct vmode_s *pcurrentmode); #else INT32 (*setmode)(viddef_t *lvid, struct vmode_s *pcurrentmode); diff --git a/src/sdl12/Makefile.cfg b/src/sdl12/Makefile.cfg index dd5fa7c3e..0b488752e 100644 --- a/src/sdl12/Makefile.cfg +++ b/src/sdl12/Makefile.cfg @@ -22,10 +22,6 @@ ifdef PSP include sdl12/SRB2PSP/Makefile.cfg endif #ifdef PSP -ifdef XBOX -include sdl12/SRB2XBOX/Makefile.cfg -endif #ifdef XBOX - ifdef WINCE include sdl12/SRB2CE/Makefile.cfg endif #ifef WINCE diff --git a/src/sdl12/SRB2XBOX/Makefile.cfg b/src/sdl12/SRB2XBOX/Makefile.cfg deleted file mode 100644 index 56966d438..000000000 --- a/src/sdl12/SRB2XBOX/Makefile.cfg +++ /dev/null @@ -1,44 +0,0 @@ -# -# Makefile.cfg for SRB2/XBOX -# - -# -#hmmm, the XBOX -# - - NOHW=1 #No working OpenGL right now - NOHS=1 #No HWSound right now - NOASM=1 #No Fast code - NONET=1 #No network code - NOMD5=1 #No Slow MD5 - NOPNG=1 #No Screenshot - #SDLMAIN=1 #SDLMain! - -ifndef OPENXDK - OPENXDK=/usr/local/openxdk -endif - - CXBE=$(OPENXDK)/bin/cxbe - -ifdef ECHO - CXBE:=@$(CXBE) -endif - -ifndef NOHW - OPTS+=-DMINI_GL_COMPATIBILITY -endif - - BUILTLM=-fno-builtin - CFLAGS+=-D_XBOX -std=gnu99 -ffreestanding $(BUILTLM) -fno-exceptions - CFLAGS+=-I$(OPENXDK)/i386-pc-xbox/include -I$(OPENXDK)/include - OPTS+=-nostdlib -mno-cygwin -march=i386 - LDFLAGS+=-nostdlib -Wl,--file-alignment,0x20 -Wl,--section-alignment,0x20 -shared -Wl,--entry,_WinMainCRTStartup -Wl,--strip-all -L$(OPENXDK)/i386-pc-xbox/lib -L$(OPENXDK)/lib - LIBS=-lg -lc -lm - SDL_CFLAGS?=-I$(OPENXDK)/include/SDL - SDL_LDFLAGS?=-lSDL -lopenxdk -lhal -lc -lhal -lusb -lhal -lc -lxboxkrnl - - i_system_o+=$(OBJDIR)/xboxhelp.o - - # name of the exefile - EXENAME?=SRB2XBOX.EXE - BINNAME?=default.xbe diff --git a/src/sdl12/SRB2XBOX/xboxhelp.c b/src/sdl12/SRB2XBOX/xboxhelp.c deleted file mode 100644 index 9de01712f..000000000 --- a/src/sdl12/SRB2XBOX/xboxhelp.c +++ /dev/null @@ -1,91 +0,0 @@ -// Emacs style mode select -*- C++ -*- -//----------------------------------------------------------------------------- -// -// Copyright (C) 2004 by Sonic Team Jr. -// -// 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 2 -// 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. -// -// DESCRIPTION: -// stub and replacement "ANSI" C functions for use under OpenXDK -// -//----------------------------------------------------------------------------- - -#include "../../doomdef.h" -#include "xboxhelp.h" -#ifdef __GNUC__ -#include -#else -#include -#endif - -char *getcwd(char *_buf, size_t _size ) -{ - (void)_buf; - (void)_size; - return _buf; -} - -#ifdef _MSC_VER -int mkdir(const char *path) -{ - (void)path; - return 0; -} -#elif 0 //__GNUC__? -int mkdir(const char *path, mode_t _mode) -{ - (void)path; - (void)_mode; - return 0; -} -#endif - -int chdir (const char *__path ) -{ - (void)__path; - return 0; -} - -time_t time(time_t *T) -{ - long returntime = 0; - (void)T; -/* - SYSTEMTIME st; - FILETIME stft; - INT64 ftli; - if (!T) return returntime; - GetSystemTime(&st); - SystemTimeToFileTime(&st,&stft); - CopyMemory(&ftli,&stft,sizeof (LARGE_INTEGER)); - returntime = (long)ftli; - *T = returntime; -*/ - return returntime; -} - -#ifdef _MSC_VER -#include -void __cdecl _RTC_Initialize(void) -{ -} -char *getenv(const char *__env) -{ - __env = NULL; - return NULL; -} - -int putenv(const char *__env) -{ - __env = NULL; - return 0; -} -#endif diff --git a/src/sdl12/SRB2XBOX/xboxhelp.h b/src/sdl12/SRB2XBOX/xboxhelp.h deleted file mode 100644 index 97ef0a3be..000000000 --- a/src/sdl12/SRB2XBOX/xboxhelp.h +++ /dev/null @@ -1,6 +0,0 @@ -#if defined (_MSC_VER) -int access(const char *path, int amode); -char *getcwd(char *_buf, size_t _size ); -int mkdir(const char *path); -int chdir (const char *__path ); -#endif diff --git a/src/sdl12/endtxt.c b/src/sdl12/endtxt.c index 5d3c4ea88..f8e315591 100644 --- a/src/sdl12/endtxt.c +++ b/src/sdl12/endtxt.c @@ -33,7 +33,7 @@ void ShowEndTxt(void) { -#if !(defined (_WIN32_WCE) || defined (_XBOX)) +#ifndef _WIN32_WCE INT32 i; UINT16 j, att = 0; INT32 nlflag = 1; diff --git a/src/sdl12/hwsym_sdl.c b/src/sdl12/hwsym_sdl.c index fc327cac2..244d7230d 100644 --- a/src/sdl12/hwsym_sdl.c +++ b/src/sdl12/hwsym_sdl.c @@ -37,7 +37,7 @@ #pragma warning(default : 4214 4244) #endif -#if defined (_XBOX) || defined(GP2X) +#ifdef GP2X #define NOLOADSO #endif diff --git a/src/sdl12/i_cdmus.c b/src/sdl12/i_cdmus.c index bb267b90f..09b7233cb 100644 --- a/src/sdl12/i_cdmus.c +++ b/src/sdl12/i_cdmus.c @@ -46,18 +46,6 @@ #define MAX_CD_TRACKS 256 -#ifdef _XBOX -INT32 SDL_SYS_CDInit(void) -{ - return(0); -} - -void SDL_SYS_CDQuit(void) -{ - return; -} -#endif - UINT8 cdaudio_started = 0; // for system startup/shutdown consvar_t cd_volume = {"cd_volume","31",CV_SAVE,soundvolume_cons_t, NULL, 0, NULL, NULL, 0, 0, NULL}; diff --git a/src/sdl12/i_main.c b/src/sdl12/i_main.c index a55e6298c..0fda50ecf 100644 --- a/src/sdl12/i_main.c +++ b/src/sdl12/i_main.c @@ -75,12 +75,12 @@ FILE *logstream = NULL; #endif #endif -#if defined (_WIN32) && !defined (_XBOX) +#ifdef _WIN32 #include "../win32/win_dbg.h" typedef BOOL (WINAPI *p_IsDebuggerPresent)(VOID); #endif -#if defined (_WIN32) && !defined (_XBOX) && !defined (_WIN32_WCE) +#if defined (_WIN32) && !defined (_WIN32_WCE) static inline VOID MakeCodeWritable(VOID) { #ifdef USEASM // Disable write-protection of code segment @@ -122,13 +122,6 @@ static inline VOID MakeCodeWritable(VOID) \return int */ FUNCNORETURN -#if defined (_XBOX) && defined (__GNUC__) -void XBoxStartup() -{ - const char *logdir = NULL; - myargc = -1; - myargv = NULL; -#else #ifdef FORCESDLMAIN int SDL_main(int argc, char **argv) #else @@ -138,7 +131,6 @@ int main(int argc, char **argv) const char *logdir = NULL; myargc = argc; myargv = argv; /// \todo pull out path to exe from this string -#endif #ifdef HAVE_TTF #ifdef _PS3 @@ -197,7 +189,7 @@ int main(int argc, char **argv) //I_OutputMsg("I_StartupSystem() ...\n"); I_StartupSystem(); -#if defined (_WIN32) && !defined (_XBOX) +#ifdef _WIN32 #ifndef _WIN32_WCE { p_IsDebuggerPresent pfnIsDebuggerPresent = (p_IsDebuggerPresent)GetProcAddress(GetModuleHandleA("kernel32.dll"), "IsDebuggerPresent"); diff --git a/src/sdl12/i_system.c b/src/sdl12/i_system.c index fe79a564b..7fe3bc235 100644 --- a/src/sdl12/i_system.c +++ b/src/sdl12/i_system.c @@ -24,11 +24,7 @@ #include #endif -#ifdef _XBOX -#include "SRB2XBOX/xboxhelp.h" -#endif - -#if defined (_WIN32) && !defined (_XBOX) +#ifdef _WIN32 #define RPC_NO_WINDOWS_H #include #include "../doomtype.h" @@ -57,7 +53,7 @@ typedef BOOL (WINAPI *p_SetProcessAffinityMask) (HANDLE, DWORD_PTR); #endif #include -#if defined (_WIN32) && !defined (_WIN32_WCE) && !defined (_XBOX) +#if defined (_WIN32) && !defined (_WIN32_WCE) #include #endif @@ -121,7 +117,7 @@ typedef BOOL (WINAPI *p_SetProcessAffinityMask) (HANDLE, DWORD_PTR); #include #endif -#if defined (_WIN32) && !defined (_WIN32_WCE) && !defined (_XBOX) +#if defined (_WIN32) && !defined (_WIN32_WCE) #define HAVE_MUMBLE #define WINMUMBLE #elif defined (HAVE_SHM) @@ -176,18 +172,6 @@ typedef BOOL (WINAPI *p_SetProcessAffinityMask) (HANDLE, DWORD_PTR); #define DEFAULTSEARCHPATH1 "/usr/local/games" #define DEFAULTSEARCHPATH2 "/usr/games" #define DEFAULTSEARCHPATH3 "/usr/local" -#elif defined (_XBOX) -#define NOCWD -#ifdef __GNUC__ -#include -#endif -#define DEFAULTWADLOCATION1 "c:\\srb2" -#define DEFAULTWADLOCATION2 "d:\\srb2" -#define DEFAULTWADLOCATION3 "e:\\srb2" -#define DEFAULTWADLOCATION4 "f:\\srb2" -#define DEFAULTWADLOCATION5 "g:\\srb2" -#define DEFAULTWADLOCATION6 "h:\\srb2" -#define DEFAULTWADLOCATION7 "i:\\srb2" #elif defined (_WIN32_WCE) #define NOCWD #define NOHOME @@ -552,7 +536,7 @@ void I_GetConsoleEvents(void) (void)d; } -#elif defined (_WIN32) && !(defined (_XBOX) || defined (_WIN32_WCE)) +#elif defined (_WIN32) && !defined (_WIN32_WCE) static BOOL I_ReadyConsole(HANDLE ci) { DWORD gotinput; @@ -751,7 +735,7 @@ void I_OutputMsg(const char *fmt, ...) DEFAULTFONTBGR, DEFAULTFONTBGG, DEFAULTFONTBGB, DEFAULTFONTBGA, txt); #endif -#if defined (_WIN32) && !defined (_XBOX) && defined (_MSC_VER) +#if defined (_WIN32) && defined (_MSC_VER) OutputDebugStringA(txt); #endif @@ -766,7 +750,7 @@ void I_OutputMsg(const char *fmt, ...) } #endif -#if defined (_WIN32) && !defined (_XBOX) && !defined(_WIN32_WCE) +#if defined (_WIN32) && !defined(_WIN32_WCE) #ifdef DEBUGFILE if (debugfile != stderr) #endif @@ -1745,7 +1729,7 @@ static void I_ShutdownMouse2(void) if (fdmouse2 != -1) close(fdmouse2); mouse2_started = 0; } -#elif defined (_WIN32) && !defined (_XBOX) +#elif defined (_WIN32) static HANDLE mouse2filehandle = INVALID_HANDLE_VALUE; @@ -1943,7 +1927,7 @@ void I_StartupMouse2(void) } mouse2_started = 1; I_AddExitFunc(I_ShutdownMouse2); -#elif defined (_WIN32) && !defined (_XBOX) +#elif defined (_WIN32) DCB dcb; if (mouse2filehandle != INVALID_HANDLE_VALUE) @@ -2038,7 +2022,7 @@ ticcmd_t *I_BaseTiccmd2(void) return &emptycmd2; } -#if (defined (_WIN32) && !defined (_WIN32_WCE)) && !defined (_XBOX) +#if defined (_WIN32) && !defined (_WIN32_WCE) static HMODULE winmm = NULL; static DWORD starttickcount = 0; // hack for win2k time bug static p_timeGetTime pfntimeGetTime = NULL; @@ -2133,7 +2117,7 @@ tic_t I_GetTime (void) // void I_StartupTimer(void) { -#if (defined (_WIN32) && !defined (_WIN32_WCE)) && !defined (_XBOX) +#if defined (_WIN32) && !defined (_WIN32_WCE) // for win2k time bug if (M_CheckParm("-gettickcount")) { @@ -2159,26 +2143,14 @@ void I_StartupTimer(void) void I_Sleep(void) { -#if !(defined (_XBOX)) if (cv_sleep.value != -1) SDL_Delay(cv_sleep.value); -#endif } INT32 I_StartupSystem(void) { SDL_version SDLcompiled; const SDL_version *SDLlinked; -#ifdef _XBOX -#ifdef __GNUC__ - char DP[] =" Sonic Robo Blast 2!\n"; - debugPrint(DP); -#endif - unlink("e:/Games/SRB2/stdout.txt"); - freopen("e:/Games/SRB2/stdout.txt", "w+", stdout); - unlink("e:/Games/SRB2/stderr.txt"); - freopen("e:/Games/SRB2/stderr.txt", "w+", stderr); -#endif SDL_VERSION(&SDLcompiled) SDLlinked = SDL_Linked_Version(); I_StartupConsole(); @@ -2276,7 +2248,7 @@ static boolean shutdowning = false; void I_Error(const char *error, ...) { va_list argptr; -#if (defined (MAC_ALERT) || defined (_WIN32) || (defined (_WIN32_WCE) && !defined (__GNUC__))) && !defined (_XBOX) +#if defined (MAC_ALERT) || defined (_WIN32) || (defined (_WIN32_WCE) && !defined (__GNUC__)) char buffer[8192]; #endif @@ -2314,7 +2286,7 @@ void I_Error(const char *error, ...) va_end(argptr); // 2004-03-03 AJR Since the Mac user is most likely double clicking to run the game, give them a panel. MacShowAlert("Recursive Error", buffer, "Quit", NULL, NULL); -#elif (defined (_WIN32) || (defined (_WIN32_WCE)) && !defined (__GNUC__)) && !defined (_XBOX) +#elif defined (_WIN32) || (defined (_WIN32_WCE)) && !defined (__GNUC__) va_start(argptr,error); vsprintf(buffer, error, argptr); va_end(argptr); @@ -2489,7 +2461,7 @@ void I_GetDiskFreeSpace(INT64 *freespace) } *freespace = stfs.f_bavail * stfs.f_bsize; #endif -#elif (defined (_WIN32) && !defined (_WIN32_WCE)) && !defined (_XBOX) +#elif defined (_WIN32) && !defined (_WIN32_WCE) static p_GetDiskFreeSpaceExA pfnGetDiskFreeSpaceEx = NULL; static boolean testwin95 = false; ULARGE_INTEGER usedbytes, lfreespace; @@ -2526,7 +2498,7 @@ char *I_GetUserName(void) #elif defined (PSP) static char username[MAXPLAYERNAME] = "PSPUSER"; return username; -#elif !(defined (_WIN32_WCE) || defined (_XBOX)) +#elif !defined (_WIN32_WCE) static char username[MAXPLAYERNAME]; char *p; #ifdef _WIN32 @@ -2567,7 +2539,7 @@ INT32 I_mkdir(const char *dirname, INT32 unixright) //[segabor] #if defined (__unix__) || defined(__APPLE__) || defined (UNIXCOMMON) || defined (__CYGWIN__) || defined (__OS2__) return mkdir(dirname, unixright); -#elif (defined (_WIN32) || (defined (_WIN32_WCE) && !defined (__GNUC__))) && !defined (_XBOX) +#elif defined (_WIN32) || (defined (_WIN32_WCE) && !defined (__GNUC__)) UNREFERENCED_PARAMETER(unixright); /// \todo should implement ntright under nt... return CreateDirectoryA(dirname, NULL); #else @@ -2811,7 +2783,7 @@ const char *I_LocateWad(void) if (waddir) { // change to the directory where we found srb2.srb -#if (defined (_WIN32) && !defined (_WIN32_WCE)) && !defined (_XBOX) +#if defined (_WIN32) && !defined (_WIN32_WCE) SetCurrentDirectoryA(waddir); #elif !defined (_WIN32_WCE) && !defined (_PS3) if (chdir(waddir) == -1) @@ -2916,7 +2888,7 @@ UINT32 I_GetFreeMem(UINT32 *total) if (total) *total = totalKBytes << 10; return freeKBytes << 10; -#elif (defined (_WIN32) || (defined (_WIN32_WCE) && !defined (__GNUC__))) && !defined (_XBOX) +#elif defined (_WIN32) || (defined (_WIN32_WCE) && !defined (__GNUC__)) MEMORYSTATUS info; info.dwLength = sizeof (MEMORYSTATUS); @@ -2944,7 +2916,7 @@ UINT32 I_GetFreeMem(UINT32 *total) const CPUInfoFlags *I_CPUInfo(void) { -#if (defined (_WIN32) && !defined (_WIN32_WCE)) && !defined (_XBOX) +#if defined (_WIN32) && !defined (_WIN32_WCE) static CPUInfoFlags WIN_CPUInfo; SYSTEM_INFO SI; p_IsProcessorFeaturePresent pfnCPUID = (p_IsProcessorFeaturePresent)GetProcAddress(GetModuleHandleA("kernel32.dll"), "IsProcessorFeaturePresent"); @@ -3005,7 +2977,7 @@ const CPUInfoFlags *I_CPUInfo(void) #endif } -#if (defined (_WIN32) && !defined (_WIN32_WCE)) && !defined (_XBOX) +#if defined (_WIN32) && !defined (_WIN32_WCE) static void CPUAffinity_OnChange(void); static consvar_t cv_cpuaffinity = {"cpuaffinity", "-1", CV_SAVE | CV_CALL, NULL, CPUAffinity_OnChange, 0, NULL, NULL, 0, 0, NULL}; @@ -3048,7 +3020,7 @@ static void CPUAffinity_OnChange(void) void I_RegisterSysCommands(void) { -#if (defined (_WIN32) && !defined (_WIN32_WCE)) && !defined (_XBOX) +#if defined (_WIN32) && !defined (_WIN32_WCE) GetAffinityFuncs(); CV_RegisterVar(&cv_cpuaffinity); #endif diff --git a/src/sdl12/i_video.c b/src/sdl12/i_video.c index 1a90c8a84..245d8ab4a 100644 --- a/src/sdl12/i_video.c +++ b/src/sdl12/i_video.c @@ -66,14 +66,10 @@ #include "../doomdef.h" -#if defined (_WIN32) && !defined (_XBOX) +#ifdef _WIN32 #include "SDL_syswm.h" #endif -#if defined (_XBOX) && defined (__GNUC__) -#include -#endif - #include "../doomstat.h" #include "../i_system.h" #include "../v_video.h" diff --git a/src/sdl12/sdl_sound.c b/src/sdl12/sdl_sound.c index 00680010d..09aa1ba36 100644 --- a/src/sdl12/sdl_sound.c +++ b/src/sdl12/sdl_sound.c @@ -49,7 +49,7 @@ #define MIX_CHANNELS 8 #endif -#if defined (_WIN32) && !defined (_WIN32_WCE) && !defined (_XBOX) +#if defined (_WIN32) && !defined (_WIN32_WCE) #include #elif defined (__GNUC__) #include @@ -174,7 +174,7 @@ static SDL_bool canlooping = SDL_TRUE; #if SDL_MIXER_VERSION_ATLEAST(1,2,7) #define USE_RWOPS // ok, USE_RWOPS is in here -#if defined (_WIN32_WCE) || defined (_XBOX) //|| defined(_WIN32) || defined(GP2X) +#if defined (_WIN32_WCE) //|| defined(_WIN32) || defined(GP2X) #undef USE_RWOPS #endif #endif @@ -1284,7 +1284,7 @@ void I_StartupSound(void) snddev.bps = 16; snddev.sample_rate = audio.freq; snddev.numsfxs = NUMSFX; -#if defined (_WIN32) && !defined (_XBOX) +#ifdef _WIN32 snddev.cooplevel = 0x00000002; snddev.hWnd = vid.WndParent; #endif From 49542cdaa18ebda13faccd35d5fb4910fa995136 Mon Sep 17 00:00:00 2001 From: Monster Iestyn Date: Fri, 29 Sep 2017 19:46:23 +0100 Subject: [PATCH 051/111] Remove XBOXSTATIC and FILESTAMP, since only the XBOX port needed them --- src/command.c | 4 +-- src/console.c | 10 ++++---- src/d_clisrv.c | 58 +++++++++++++++++++++---------------------- src/d_netcmd.c | 52 +++++++++++++++++++------------------- src/dehacked.c | 4 +-- src/doomtype.h | 6 ----- src/hu_stuff.c | 6 ++--- src/lua_consolelib.c | 2 +- src/m_menu.c | 2 +- src/sdl/i_system.c | 2 +- src/sdl/sdl_sound.c | 6 ++--- src/sdl12/i_system.c | 2 +- src/sdl12/sdl_sound.c | 6 ++--- 13 files changed, 76 insertions(+), 84 deletions(-) diff --git a/src/command.c b/src/command.c index 3ffde94ad..fc81a362d 100644 --- a/src/command.c +++ b/src/command.c @@ -1236,7 +1236,7 @@ static void Got_NetVar(UINT8 **p, INT32 playernum) if (server) { - XBOXSTATIC UINT8 buf[2]; + UINT8 buf[2]; buf[0] = (UINT8)playernum; buf[1] = KICK_MSG_CON_FAIL; @@ -1356,7 +1356,7 @@ static void CV_SetCVar(consvar_t *var, const char *value, boolean stealth) if (var->flags & CV_NETVAR) { // send the value of the variable - XBOXSTATIC UINT8 buf[128]; + UINT8 buf[128]; UINT8 *p = buf; if (!(server || (adminplayer == consoleplayer))) { diff --git a/src/console.c b/src/console.c index 89c0a2d01..7dd82e282 100644 --- a/src/console.c +++ b/src/console.c @@ -1029,10 +1029,10 @@ boolean CON_Responder(event_t *ev) // allow people to use keypad in console (good for typing IP addresses) - Calum if (key >= KEY_KEYPAD7 && key <= KEY_KPADDEL) { - XBOXSTATIC char keypad_translation[] = {'7','8','9','-', - '4','5','6','+', - '1','2','3', - '0','.'}; + char keypad_translation[] = {'7','8','9','-', + '4','5','6','+', + '1','2','3', + '0','.'}; key = keypad_translation[key - KEY_KEYPAD7]; } @@ -1168,7 +1168,7 @@ static void CON_Print(char *msg) void CON_LogMessage(const char *msg) { - XBOXSTATIC char txt[8192], *t; + char txt[8192], *t; const char *p = msg, *e = txt+sizeof (txt)-2; for (t = txt; *p != '\0'; p++) diff --git a/src/d_clisrv.c b/src/d_clisrv.c index 26b303cb7..81b84a54d 100644 --- a/src/d_clisrv.c +++ b/src/d_clisrv.c @@ -389,7 +389,7 @@ static void ExtraDataTicker(void) { if (server) { - XBOXSTATIC UINT8 buf[3]; + UINT8 buf[3]; buf[0] = (UINT8)i; buf[1] = KICK_MSG_CON_FAIL; @@ -1023,7 +1023,7 @@ static void SV_SendResynch(INT32 node) if (resynch_score[node] > (unsigned)cv_resynchattempts.value*250) { - XBOXSTATIC UINT8 buf[2]; + UINT8 buf[2]; buf[0] = (UINT8)nodetoplayer[node]; buf[1] = KICK_MSG_CON_FAIL; SendNetXCmd(XD_KICK, &buf, 2); @@ -1499,7 +1499,7 @@ static void SV_SavedGame(void) { size_t length; UINT8 *savebuffer; - XBOXSTATIC char tmpsave[256]; + char tmpsave[256]; if (!cv_dumpconsistency.value) return; @@ -1541,7 +1541,7 @@ static void CL_LoadReceivedSavegame(void) { UINT8 *savebuffer = NULL; size_t length, decompressedlen; - XBOXSTATIC char tmpsave[256]; + char tmpsave[256]; sprintf(tmpsave, "%s" PATHSEP TMPSAVENAME, srb2home); @@ -1999,7 +1999,7 @@ static void CL_ConnectToServer(boolean viams) tic_t asksent; #endif #ifdef JOININGAME - XBOXSTATIC char tmpsave[256]; + char tmpsave[256]; sprintf(tmpsave, "%s" PATHSEP TMPSAVENAME, srb2home); #endif @@ -2556,7 +2556,7 @@ static void Command_Ban(void) if (server || adminplayer == consoleplayer) { - XBOXSTATIC UINT8 buf[3 + MAX_REASONLENGTH]; + UINT8 buf[3 + MAX_REASONLENGTH]; UINT8 *p = buf; const SINT8 pn = nametonum(COM_Argv(1)); const INT32 node = playernode[(INT32)pn]; @@ -2622,7 +2622,7 @@ static void Command_Kick(void) if (server || adminplayer == consoleplayer) { - XBOXSTATIC UINT8 buf[3 + MAX_REASONLENGTH]; + UINT8 buf[3 + MAX_REASONLENGTH]; UINT8 *p = buf; const SINT8 pn = nametonum(COM_Argv(1)); @@ -2671,7 +2671,7 @@ static void Command_Kick(void) static void Got_KickCmd(UINT8 **p, INT32 playernum) { INT32 pnum, msg; - XBOXSTATIC char buf[3 + MAX_REASONLENGTH]; + char buf[3 + MAX_REASONLENGTH]; char *reason = buf; pnum = READUINT8(*p); @@ -3062,7 +3062,7 @@ static void Got_AddPlayer(UINT8 **p, INT32 playernum) CONS_Alert(CONS_WARNING, M_GetText("Illegal add player command received from %s\n"), player_names[playernum]); if (server) { - XBOXSTATIC UINT8 buf[2]; + UINT8 buf[2]; buf[0] = (UINT8)playernum; buf[1] = KICK_MSG_CON_FAIL; @@ -3147,7 +3147,7 @@ static void Got_AddPlayer(UINT8 **p, INT32 playernum) static boolean SV_AddWaitingPlayers(void) { INT32 node, n, newplayer = false; - XBOXSTATIC UINT8 buf[2]; + UINT8 buf[2]; UINT8 newplayernum = 0; // What is the reason for this? Why can't newplayernum always be 0? @@ -3208,7 +3208,7 @@ void CL_AddSplitscreenPlayer(void) void CL_RemoveSplitscreenPlayer(void) { - XBOXSTATIC UINT8 buf[2]; + UINT8 buf[2]; if (cl_mode != CL_CONNECTED) return; @@ -3652,11 +3652,10 @@ static void HandlePacketFromAwayNode(SINT8 node) * */ static void HandlePacketFromPlayer(SINT8 node) -{FILESTAMP - XBOXSTATIC INT32 netconsole; - XBOXSTATIC tic_t realend, realstart; - XBOXSTATIC UINT8 *pak, *txtpak, numtxtpak; -FILESTAMP +{ + INT32 netconsole; + tic_t realend, realstart; + UINT8 *pak, *txtpak, numtxtpak; txtpak = NULL; @@ -3730,7 +3729,7 @@ FILESTAMP if (netcmds[maketic%BACKUPTICS][netconsole].forwardmove > MAXPLMOVE || netcmds[maketic%BACKUPTICS][netconsole].forwardmove < -MAXPLMOVE || netcmds[maketic%BACKUPTICS][netconsole].sidemove > MAXPLMOVE || netcmds[maketic%BACKUPTICS][netconsole].sidemove < -MAXPLMOVE) { - XBOXSTATIC char buf[2]; + char buf[2]; CONS_Alert(CONS_WARNING, M_GetText("Illegal movement value received from node %d\n"), netconsole); //D_Clearticcmd(k); @@ -3773,7 +3772,7 @@ FILESTAMP } else { - XBOXSTATIC UINT8 buf[3]; + UINT8 buf[3]; buf[0] = (UINT8)netconsole; buf[1] = KICK_MSG_CON_FAIL; @@ -3864,7 +3863,7 @@ FILESTAMP nodewaiting[node] = 0; if (netconsole != -1 && playeringame[netconsole]) { - XBOXSTATIC UINT8 buf[2]; + UINT8 buf[2]; buf[0] = (UINT8)netconsole; if (netbuffer->packettype == PT_NODETIMEOUT) buf[1] = KICK_MSG_TIMEOUT; @@ -3892,7 +3891,7 @@ FILESTAMP if (server) { - XBOXSTATIC UINT8 buf[2]; + UINT8 buf[2]; buf[0] = (UINT8)node; buf[1] = KICK_MSG_CON_FAIL; SendNetXCmd(XD_KICK, &buf, 2); @@ -3917,7 +3916,7 @@ FILESTAMP if (server) { - XBOXSTATIC UINT8 buf[2]; + UINT8 buf[2]; buf[0] = (UINT8)node; buf[1] = KICK_MSG_CON_FAIL; SendNetXCmd(XD_KICK, &buf, 2); @@ -3983,7 +3982,7 @@ FILESTAMP if (server) { - XBOXSTATIC char buf[2]; + char buf[2]; buf[0] = (char)node; buf[1] = KICK_MSG_CON_FAIL; SendNetXCmd(XD_KICK, &buf, 2); @@ -4003,7 +4002,7 @@ FILESTAMP if (server) { - XBOXSTATIC char buf[2]; + char buf[2]; buf[0] = (char)node; buf[1] = KICK_MSG_CON_FAIL; SendNetXCmd(XD_KICK, &buf, 2); @@ -4033,7 +4032,7 @@ FILESTAMP if (server) { - XBOXSTATIC UINT8 buf[2]; + UINT8 buf[2]; buf[0] = (UINT8)node; buf[1] = KICK_MSG_CON_FAIL; SendNetXCmd(XD_KICK, &buf, 2); @@ -4056,9 +4055,8 @@ FILESTAMP * */ static void GetPackets(void) -{FILESTAMP - XBOXSTATIC SINT8 node; // The packet sender -FILESTAMP +{ + SINT8 node; // The packet sender player_joining = false; @@ -4558,7 +4556,7 @@ static inline void PingUpdate(void) { if (playeringame[i] && laggers[i]) { - XBOXSTATIC char buf[2]; + char buf[2]; buf[0] = (char)i; buf[1] = KICK_MSG_PING_HIGH; @@ -4630,9 +4628,9 @@ void NetUpdate(void) if (server) CL_SendClientCmd(); // send it -FILESTAMP + GetPackets(); // get packet from client or from server -FILESTAMP + // client send the command after a receive of the server // the server send before because in single player is beter diff --git a/src/d_netcmd.c b/src/d_netcmd.c index 5fbd181a8..a234f3c0c 100644 --- a/src/d_netcmd.c +++ b/src/d_netcmd.c @@ -1044,7 +1044,7 @@ static void SetPlayerName(INT32 playernum, char *newname) CONS_Printf(M_GetText("Player %d sent a bad name change\n"), playernum+1); if (server && netgame) { - XBOXSTATIC UINT8 buf[2]; + UINT8 buf[2]; buf[0] = (UINT8)playernum; buf[1] = KICK_MSG_CON_FAIL; @@ -1124,7 +1124,7 @@ static INT32 snacpending = 0, snac2pending = 0, chmappending = 0; // static void SendNameAndColor(void) { - XBOXSTATIC char buf[MAXPLAYERNAME+2]; + char buf[MAXPLAYERNAME+2]; char *p; p = buf; @@ -1405,7 +1405,7 @@ static void Got_NameAndColor(UINT8 **cp, INT32 playernum) if (kick) { - XBOXSTATIC UINT8 buf[2]; + UINT8 buf[2]; CONS_Alert(CONS_WARNING, M_GetText("Illegal color change received from %s (team: %d), color: %d)\n"), player_names[playernum], p->ctfteam, p->skincolor); buf[0] = (UINT8)playernum; @@ -1432,7 +1432,7 @@ static void Got_NameAndColor(UINT8 **cp, INT32 playernum) void SendWeaponPref(void) { - XBOXSTATIC UINT8 buf[1]; + UINT8 buf[1]; buf[0] = 0; if (players[consoleplayer].pflags & PF_FLIPCAM) @@ -1448,7 +1448,7 @@ void SendWeaponPref(void) void SendWeaponPref2(void) { - XBOXSTATIC UINT8 buf[1]; + UINT8 buf[1]; buf[0] = 0; if (players[secondarydisplayplayer].pflags & PF_FLIPCAM) @@ -1843,7 +1843,7 @@ static void Got_Mapcmd(UINT8 **cp, INT32 playernum) CONS_Alert(CONS_WARNING, M_GetText("Illegal map change received from %s\n"), player_names[playernum]); if (server) { - XBOXSTATIC UINT8 buf[2]; + UINT8 buf[2]; buf[0] = (UINT8)playernum; buf[1] = KICK_MSG_CON_FAIL; @@ -1920,7 +1920,7 @@ static void Got_Mapcmd(UINT8 **cp, INT32 playernum) static void Command_Pause(void) { - XBOXSTATIC UINT8 buf[2]; + UINT8 buf[2]; UINT8 *cp = buf; if (COM_Argc() > 1) @@ -1956,7 +1956,7 @@ static void Got_Pause(UINT8 **cp, INT32 playernum) CONS_Alert(CONS_WARNING, M_GetText("Illegal pause command received from %s\n"), player_names[playernum]); if (server) { - XBOXSTATIC UINT8 buf[2]; + UINT8 buf[2]; buf[0] = (UINT8)playernum; buf[1] = KICK_MSG_CON_FAIL; @@ -1999,7 +1999,7 @@ static void Got_Pause(UINT8 **cp, INT32 playernum) // Command for stuck characters in netgames, griefing, etc. static void Command_Suicide(void) { - XBOXSTATIC UINT8 buf[4]; + UINT8 buf[4]; UINT8 *cp = buf; WRITEINT32(cp, consoleplayer); @@ -2036,7 +2036,7 @@ static void Got_Suicide(UINT8 **cp, INT32 playernum) CONS_Alert(CONS_WARNING, M_GetText("Illegal suicide command received from %s\n"), player_names[playernum]); if (server) { - XBOXSTATIC UINT8 buf[2]; + UINT8 buf[2]; buf[0] = (UINT8)playernum; buf[1] = KICK_MSG_CON_FAIL; @@ -2105,7 +2105,7 @@ static void Got_Clearscores(UINT8 **cp, INT32 playernum) CONS_Alert(CONS_WARNING, M_GetText("Illegal clear scores command received from %s\n"), player_names[playernum]); if (server) { - XBOXSTATIC UINT8 buf[2]; + UINT8 buf[2]; buf[0] = (UINT8)playernum; buf[1] = KICK_MSG_CON_FAIL; @@ -2458,7 +2458,7 @@ static void Got_Teamchange(UINT8 **cp, INT32 playernum) CONS_Alert(CONS_WARNING, M_GetText("Illegal team change received from player %s\n"), player_names[playernum]); if (server) { - XBOXSTATIC UINT8 buf[2]; + UINT8 buf[2]; buf[0] = (UINT8)playernum; buf[1] = KICK_MSG_CON_FAIL; @@ -2473,7 +2473,7 @@ static void Got_Teamchange(UINT8 **cp, INT32 playernum) CONS_Alert(CONS_WARNING, M_GetText("Illegal team change received from player %s\n"), player_names[playernum]); if (server) { - XBOXSTATIC UINT8 buf[2]; + UINT8 buf[2]; buf[0] = (UINT8)playernum; buf[1] = KICK_MSG_CON_FAIL; @@ -2512,7 +2512,7 @@ static void Got_Teamchange(UINT8 **cp, INT32 playernum) CONS_Alert(CONS_WARNING, M_GetText("Illegal team change received from player %s\n"), player_names[playernum]); if (server) { - XBOXSTATIC UINT8 buf[2]; + UINT8 buf[2]; buf[0] = (UINT8)playernum; buf[1] = KICK_MSG_CON_FAIL; @@ -2565,7 +2565,7 @@ static void Got_Teamchange(UINT8 **cp, INT32 playernum) if (server && ((NetPacket.packet.newteam < 0 || NetPacket.packet.newteam > 3) || error)) { - XBOXSTATIC UINT8 buf[2]; + UINT8 buf[2]; buf[0] = (UINT8)playernum; buf[1] = KICK_MSG_CON_FAIL; @@ -2716,7 +2716,7 @@ static void D_MD5PasswordPass(const UINT8 *buffer, size_t len, const char *salt, (void)salt; memset(dest, 0, 16); #else - XBOXSTATIC char tmpbuf[256]; + char tmpbuf[256]; const size_t sl = strlen(salt); if (len > 256-sl) @@ -2771,7 +2771,7 @@ static void Command_Login_f(void) // If we have no MD5 support then completely disable XD_LOGIN responses for security. CONS_Alert(CONS_NOTICE, "Remote administration commands are not supported in this build.\n"); #else - XBOXSTATIC UINT8 finalmd5[16]; + UINT8 finalmd5[16]; const char *pw; // If the server uses login, it will effectively just remove admin privileges @@ -2825,7 +2825,7 @@ static void Got_Login(UINT8 **cp, INT32 playernum) static void Command_Verify_f(void) { - XBOXSTATIC char buf[8]; // Should be plenty + char buf[8]; // Should be plenty char *temp; INT32 playernum; @@ -2862,7 +2862,7 @@ static void Got_Verification(UINT8 **cp, INT32 playernum) CONS_Alert(CONS_WARNING, M_GetText("Illegal verification received from %s (serverplayer is %s)\n"), player_names[playernum], player_names[serverplayer]); if (server) { - XBOXSTATIC UINT8 buf[2]; + UINT8 buf[2]; buf[0] = (UINT8)playernum; buf[1] = KICK_MSG_CON_FAIL; @@ -2942,7 +2942,7 @@ static void Got_MotD_f(UINT8 **cp, INT32 playernum) CONS_Alert(CONS_WARNING, M_GetText("Illegal motd change received from %s\n"), player_names[playernum]); if (server) { - XBOXSTATIC UINT8 buf[2]; + UINT8 buf[2]; buf[0] = (UINT8)playernum; buf[1] = KICK_MSG_CON_FAIL; @@ -2963,7 +2963,7 @@ static void Got_MotD_f(UINT8 **cp, INT32 playernum) static void Command_RunSOC(void) { const char *fn; - XBOXSTATIC char buf[255]; + char buf[255]; size_t length = 0; if (COM_Argc() != 2) @@ -3005,7 +3005,7 @@ static void Got_RunSOCcmd(UINT8 **cp, INT32 playernum) CONS_Alert(CONS_WARNING, M_GetText("Illegal runsoc command received from %s\n"), player_names[playernum]); if (server) { - XBOXSTATIC UINT8 buf[2]; + UINT8 buf[2]; buf[0] = (UINT8)playernum; buf[1] = KICK_MSG_CON_FAIL; @@ -3048,7 +3048,7 @@ static void Got_RunSOCcmd(UINT8 **cp, INT32 playernum) static void Command_Addfile(void) { const char *fn, *p; - XBOXSTATIC char buf[256]; + char buf[256]; char *buf_p = buf; INT32 i; int musiconly; // W_VerifyNMUSlumps isn't boolean @@ -3148,7 +3148,7 @@ static void Got_RequestAddfilecmd(UINT8 **cp, INT32 playernum) if ((playernum != serverplayer && playernum != adminplayer) || kick) { - XBOXSTATIC UINT8 buf[2]; + UINT8 buf[2]; CONS_Alert(CONS_WARNING, M_GetText("Illegal addfile command received from %s\n"), player_names[playernum]); @@ -3208,7 +3208,7 @@ static void Got_Addfilecmd(UINT8 **cp, INT32 playernum) CONS_Alert(CONS_WARNING, M_GetText("Illegal addfile command received from %s\n"), player_names[playernum]); if (server) { - XBOXSTATIC UINT8 buf[2]; + UINT8 buf[2]; buf[0] = (UINT8)playernum; buf[1] = KICK_MSG_CON_FAIL; @@ -3929,7 +3929,7 @@ static void Got_ExitLevelcmd(UINT8 **cp, INT32 playernum) CONS_Alert(CONS_WARNING, M_GetText("Illegal exitlevel command received from %s\n"), player_names[playernum]); if (server) { - XBOXSTATIC UINT8 buf[2]; + UINT8 buf[2]; buf[0] = (UINT8)playernum; buf[1] = KICK_MSG_CON_FAIL; diff --git a/src/dehacked.c b/src/dehacked.c index cddbd1a0e..c24113c16 100644 --- a/src/dehacked.c +++ b/src/dehacked.c @@ -1884,7 +1884,7 @@ static void readframe(MYFILE *f, INT32 num) { size_t z; boolean found = false; - XBOXSTATIC char actiontocompare[32]; + char actiontocompare[32]; memset(actiontocompare, 0x00, sizeof(actiontocompare)); strlcpy(actiontocompare, word2, sizeof (actiontocompare)); @@ -3032,7 +3032,7 @@ static void DEH_LoadDehackedFile(MYFILE *f) dbg_line = -1; // start at -1 so the first line is 0. while (!myfeof(f)) { - XBOXSTATIC char origpos[128]; + char origpos[128]; INT32 size = 0; char *traverse; diff --git a/src/doomtype.h b/src/doomtype.h index 5bfd57258..b94ac1fbd 100644 --- a/src/doomtype.h +++ b/src/doomtype.h @@ -357,10 +357,4 @@ typedef UINT32 tic_t; #ifndef ATTRNOINLINE #define ATTRNOINLINE #endif -#ifndef XBOXSTATIC -#define XBOXSTATIC -#endif -#ifndef FILESTAMP -#define FILESTAMP -#endif #endif //__DOOMTYPE__ diff --git a/src/hu_stuff.c b/src/hu_stuff.c index b49d3eb96..5372215f7 100644 --- a/src/hu_stuff.c +++ b/src/hu_stuff.c @@ -328,7 +328,7 @@ void HU_Start(void) */ static void DoSayCommand(SINT8 target, size_t usedargs, UINT8 flags) { - XBOXSTATIC char buf[254]; + char buf[254]; size_t numwords, ix; char *msg = &buf[2]; const size_t msgspace = sizeof buf - 2; @@ -473,7 +473,7 @@ static void Got_Saycmd(UINT8 **p, INT32 playernum) player_names[playernum]); if (server) { - XBOXSTATIC UINT8 buf[2]; + UINT8 buf[2]; buf[0] = (UINT8)playernum; buf[1] = KICK_MSG_CON_FAIL; @@ -493,7 +493,7 @@ static void Got_Saycmd(UINT8 **p, INT32 playernum) CONS_Alert(CONS_WARNING, M_GetText("Illegal say command received from %s containing invalid characters\n"), player_names[playernum]); if (server) { - XBOXSTATIC char buf[2]; + char buf[2]; buf[0] = (char)playernum; buf[1] = KICK_MSG_CON_FAIL; diff --git a/src/lua_consolelib.c b/src/lua_consolelib.c index 559c576f0..c82c39b46 100644 --- a/src/lua_consolelib.c +++ b/src/lua_consolelib.c @@ -89,7 +89,7 @@ deny: CONS_Alert(CONS_WARNING, M_GetText("Illegal lua command received from %s\n"), player_names[playernum]); if (server) { - XBOXSTATIC UINT8 bufn[2]; + UINT8 bufn[2]; bufn[0] = (UINT8)playernum; bufn[1] = KICK_MSG_CON_FAIL; diff --git a/src/m_menu.c b/src/m_menu.c index a74d510e1..6cc32e25c 100644 --- a/src/m_menu.c +++ b/src/m_menu.c @@ -8458,7 +8458,7 @@ static void M_HandleConnectIP(INT32 choice) } else if (choice >= 199 && choice <= 211 && choice != 202 && choice != 206) //numpad too! { - XBOXSTATIC char keypad_translation[] = {'7','8','9','-','4','5','6','+','1','2','3','0','.'}; + char keypad_translation[] = {'7','8','9','-','4','5','6','+','1','2','3','0','.'}; choice = keypad_translation[choice - 199]; S_StartSound(NULL,sfx_menu1); // Tails setupm_ip[l] = (char)choice; diff --git a/src/sdl/i_system.c b/src/sdl/i_system.c index 3ad57559d..d0f000b4e 100644 --- a/src/sdl/i_system.c +++ b/src/sdl/i_system.c @@ -670,7 +670,7 @@ void I_StartupKeyboard (void) void I_OutputMsg(const char *fmt, ...) { size_t len; - XBOXSTATIC char txt[8192]; + char txt[8192]; va_list argptr; va_start(argptr,fmt); diff --git a/src/sdl/sdl_sound.c b/src/sdl/sdl_sound.c index 1a2cabd23..6ca11c9ef 100644 --- a/src/sdl/sdl_sound.c +++ b/src/sdl/sdl_sound.c @@ -1723,7 +1723,7 @@ static void I_CleanupGME(void *userdata) static boolean I_StartGMESong(const char *musicname, boolean looping) { #ifdef HAVE_LIBGME - XBOXSTATIC char filename[9]; + char filename[9]; void *data; lumpnum_t lumpnum; size_t lumplength; @@ -1778,7 +1778,7 @@ static boolean I_StartGMESong(const char *musicname, boolean looping) boolean I_StartDigSong(const char *musicname, boolean looping) { #ifdef HAVE_MIXER - XBOXSTATIC char filename[9]; + char filename[9]; void *data; lumpnum_t lumpnum; size_t lumplength; @@ -1820,7 +1820,7 @@ boolean I_StartDigSong(const char *musicname, boolean looping) { size_t scan; const char *dataum = data; - XBOXSTATIC char looplength[64]; + char looplength[64]; UINT32 loopstart = 0; UINT8 newcount = 0; diff --git a/src/sdl12/i_system.c b/src/sdl12/i_system.c index 7fe3bc235..83625c658 100644 --- a/src/sdl12/i_system.c +++ b/src/sdl12/i_system.c @@ -723,7 +723,7 @@ void I_StartupKeyboard (void) void I_OutputMsg(const char *fmt, ...) { size_t len; - XBOXSTATIC char txt[8192]; + char txt[8192]; va_list argptr; va_start(argptr,fmt); diff --git a/src/sdl12/sdl_sound.c b/src/sdl12/sdl_sound.c index 09aa1ba36..990136ef7 100644 --- a/src/sdl12/sdl_sound.c +++ b/src/sdl12/sdl_sound.c @@ -1739,7 +1739,7 @@ static void I_CleanupGME(void *userdata) static boolean I_StartGMESong(const char *musicname, boolean looping) { #ifdef HAVE_LIBGME - XBOXSTATIC char filename[9]; + char filename[9]; void *data; lumpnum_t lumpnum; size_t lumplength; @@ -1792,7 +1792,7 @@ static boolean I_StartGMESong(const char *musicname, boolean looping) boolean I_StartDigSong(const char *musicname, boolean looping) { #ifdef HAVE_MIXER - XBOXSTATIC char filename[9]; + char filename[9]; void *data; lumpnum_t lumpnum; size_t lumplength; @@ -1834,7 +1834,7 @@ boolean I_StartDigSong(const char *musicname, boolean looping) { size_t scan; const char *dataum = data; - XBOXSTATIC char looplength[64]; + char looplength[64]; UINT32 loopstart = 0; UINT8 newcount = 0; From 9c6e739005db7fed0918cd7ff06c75d89b4330c4 Mon Sep 17 00:00:00 2001 From: Monster Iestyn Date: Fri, 29 Sep 2017 20:12:57 +0100 Subject: [PATCH 052/111] PS3 was deposed --- src/Makefile | 9 --- src/Makefile.cfg | 17 ---- src/d_main.c | 2 +- src/doomdef.h | 2 +- src/doomtype.h | 5 +- src/i_addrinfo.c | 7 -- src/i_addrinfo.h | 12 +-- src/i_tcp.c | 17 +--- src/m_misc.c | 4 +- src/mserv.c | 6 +- src/sdl12/Makefile.cfg | 4 - src/sdl12/SRB2PS3/ICON0.png | Bin 3678 -> 0 bytes src/sdl12/SRB2PS3/Makefile.cfg | 139 --------------------------------- src/sdl12/SRB2PS3/sfo.xml | 39 --------- src/sdl12/i_cdmus.c | 2 +- src/sdl12/i_main.c | 11 +-- src/sdl12/i_system.c | 20 ++--- src/sdl12/i_ttf.c | 12 +-- src/sdl12/i_ttf.h | 2 - src/sdl12/i_video.c | 7 -- 20 files changed, 17 insertions(+), 300 deletions(-) delete mode 100644 src/sdl12/SRB2PS3/ICON0.png delete mode 100644 src/sdl12/SRB2PS3/Makefile.cfg delete mode 100644 src/sdl12/SRB2PS3/sfo.xml diff --git a/src/Makefile b/src/Makefile index 1ae91da3d..f25d34ec2 100644 --- a/src/Makefile +++ b/src/Makefile @@ -160,11 +160,6 @@ NOHW=1 NOPOSTPROCESSING=1 endif -ifdef PS3N -NONX86=1 -NOHW=1 -endif - ifdef DJGPPDOS include djgppdos/Makefile.cfg endif @@ -525,10 +520,6 @@ ifdef DJGPPDOS all: pre-build $(BIN)/$(EXENAME) endif -ifdef PS3N -all: pre-build $(BIN)/$(PKGNAME) -endif - ifdef WII all: pre-build $(BIN)/$(DOLNAME) endif diff --git a/src/Makefile.cfg b/src/Makefile.cfg index ff0619790..679727c90 100644 --- a/src/Makefile.cfg +++ b/src/Makefile.cfg @@ -213,7 +213,6 @@ endif ifndef WINCE ifndef PSP ifndef WII -ifndef PS3N ifndef LINUX ifndef FREEBSD ifndef CYGWIN32 @@ -232,7 +231,6 @@ endif endif endif endif -endif #determine the interface directory (where you put all i_*.c) i_cdmus_o=$(OBJDIR)/i_cdmus.o @@ -332,20 +330,6 @@ ifdef WII BIN:=$(BIN)/Wii NOUPX=1 else -ifdef PS3N - INTERFACE=sdl12 - NONX86=1 - STATIC=1 - PREFIX?=ppu - SDL=1 - SDL12=1 - # unsure? - #SDLMAIN=1 - # can't compile SDL_mixer for ps3... - NOMIXER=1 - OBJDIR:=$(OBJDIR)/PS3 - BIN:=$(BIN)/PS3 -else ifdef MINGW INTERFACE=win32 NASMFORMAT=win32 @@ -387,7 +371,6 @@ endif endif endif endif -endif ifdef GP2X ifdef SDL diff --git a/src/d_main.c b/src/d_main.c index 7dab2430f..b2f586607 100644 --- a/src/d_main.c +++ b/src/d_main.c @@ -800,7 +800,7 @@ static void IdentifyVersion(void) } else { -#if !defined(_WIN32_WCE) && !defined(_PS3) +#ifndef _WIN32_WCE if (getcwd(srb2path, 256) != NULL) srb2waddir = srb2path; else diff --git a/src/doomdef.h b/src/doomdef.h index a38ce3ca4..2a9f7b1f3 100644 --- a/src/doomdef.h +++ b/src/doomdef.h @@ -381,7 +381,7 @@ enum { }; // Name of local directory for config files and savegames -#if !defined(_WIN32_WCE) && !defined(GP2X) && !defined(_WII) && !defined(_PS3) +#if !defined(_WIN32_WCE) && !defined(GP2X) && !defined(_WII) #if (((defined (__unix__) && !defined (MSDOS)) || defined (UNIXCOMMON)) && !defined (__CYGWIN__)) && !defined (__APPLE__) #define DEFAULTDIR ".srb2" #else diff --git a/src/doomtype.h b/src/doomtype.h index b94ac1fbd..d4ebbb92d 100644 --- a/src/doomtype.h +++ b/src/doomtype.h @@ -141,7 +141,7 @@ typedef long ssize_t; #endif #endif //macintosh -#if defined (PC_DOS) || defined (_WIN32) || defined (_WII) || defined (_PSP) || defined (__HAIKU__) || defined(_NDS) || defined(_PS3) +#if defined (PC_DOS) || defined (_WIN32) || defined (_WII) || defined (_PSP) || defined (__HAIKU__) || defined(_NDS) #define HAVE_DOSSTR_FUNCS #endif @@ -179,9 +179,6 @@ size_t strlcpy(char *dst, const char *src, size_t siz); #define boolean BOOL #elif defined(_NDS) #define boolean bool - #elif defined(_PS3) // defined(__GNUC__)? - #include //_bool_true_false_are_defined? - #define boolean bool #else typedef enum {false, true} boolean; #endif diff --git a/src/i_addrinfo.c b/src/i_addrinfo.c index 64a30ca70..4634917be 100644 --- a/src/i_addrinfo.c +++ b/src/i_addrinfo.c @@ -25,12 +25,8 @@ #ifndef _NDS #include #endif -#ifdef _PS3 -#include -#else #include #endif -#endif #include "i_addrinfo.h" @@ -262,9 +258,6 @@ int I_getaddrinfo(const char *node, const char *service, for (i = 0, j = 0; i < ailen; i++, j++) { ai = *res+i; -#ifdef _PS3 - addr[i].sin_len = famsize; -#endif addr[i].sin_port = htons((UINT16)sockport); if (nodename) { diff --git a/src/i_addrinfo.h b/src/i_addrinfo.h index 744ea0cf7..4cda8968b 100644 --- a/src/i_addrinfo.h +++ b/src/i_addrinfo.h @@ -39,17 +39,7 @@ #define EAI_NONAME -2 #endif -#ifdef _PS3 // PSL1GHT v2 -struct my_addrinfo { - int ai_flags; - int ai_family; - int ai_socktype; - int ai_protocol; - size_t ai_addrlen; - struct sockaddr *ai_addr; - struct my_addrinfo *ai_next; -}; -#elif defined (_WIN32) // already use the stub for Win32 +#ifdef _WIN32 // already use the stub for Win32 // w32api, ws2tcpip.h, r1.12 struct my_addrinfo { int ai_flags; diff --git a/src/i_tcp.c b/src/i_tcp.c index 90461a7d1..9254f5b45 100644 --- a/src/i_tcp.c +++ b/src/i_tcp.c @@ -23,10 +23,6 @@ #include #endif // __OS2__ -#ifdef _PS3 -#define NO_IPV6 // PSL1GHT v2 do not have IPv6 support -#endif - #ifndef NO_IPV6 #define HAVE_IPV6 #endif @@ -70,10 +66,7 @@ #include #endif //normal BSD API -#if defined (_PS3) -#include -#include -#elif !defined(USE_WINSOCK) +#ifndef USE_WINSOCK #include #include #endif //normal BSD API @@ -197,7 +190,7 @@ typedef SOCKET SOCKET_TYPE; #define BADSOCKET INVALID_SOCKET #define ERRSOCKET (SOCKET_ERROR) #else -#if (defined (__unix__) && !defined (MSDOS)) || defined (__APPLE__) || defined (__HAIKU__) || defined(_PS3) +#if (defined (__unix__) && !defined (MSDOS)) || defined (__APPLE__) || defined (__HAIKU__) typedef int SOCKET_TYPE; #else typedef unsigned long SOCKET_TYPE; @@ -1196,9 +1189,6 @@ boolean I_InitTcpDriver(void) CONS_Debug(DBG_NETPLAY, "No TCP/IP driver detected\n"); #endif // libsocket #endif // __DJGPP__ -#ifdef _PS3 - netInitialize(); -#endif #ifndef __DJGPP__ init_tcp_driver = true; #endif @@ -1255,9 +1245,6 @@ void I_ShutdownTcpDriver(void) __lsck_uninit(); #endif // libsocket #endif // __DJGPP__ -#ifdef _PS3 - netDeinitialize(); -#endif CONS_Printf("shut down\n"); init_tcp_driver = false; #endif diff --git a/src/m_misc.c b/src/m_misc.c index 25faf010e..a0efb8bf4 100644 --- a/src/m_misc.c +++ b/src/m_misc.c @@ -58,7 +58,7 @@ typedef off_t off64_t; #if defined (_WIN32) #define PRIdS "Iu" -#elif defined (_PSP) || defined (DJGPP) || defined (_WII) || defined (_NDS) || defined (_PS3) +#elif defined (_PSP) || defined (DJGPP) || defined (_WII) || defined (_NDS) #define PRIdS "u" #else #define PRIdS "zu" @@ -191,7 +191,7 @@ INT32 M_MapNumber(char first, char second) // ========================================================================== // some libcs has no access function, make our own -#if defined (_WIN32_WCE) || defined (_WII) || defined (_PS3) +#if defined (_WIN32_WCE) || defined (_WII) int access(const char *path, int amode) { int accesshandle = -1; diff --git a/src/mserv.c b/src/mserv.c index 00eef419f..deda97a5f 100644 --- a/src/mserv.c +++ b/src/mserv.c @@ -50,12 +50,8 @@ #endif #include // socket(),... #include // sockaddr_in -#ifdef _PS3 -#include -#else #include // getaddrinfo(),... #include -#endif #include // timeval,... (TIMEOUT) #include @@ -209,7 +205,7 @@ typedef SOCKET SOCKET_TYPE; #define BADSOCKET INVALID_SOCKET #define ERRSOCKET (SOCKET_ERROR) #else -#if (defined (__unix__) && !defined (MSDOS)) || defined (__APPLE__) || defined (__HAIKU__) || defined (_PS3) +#if (defined (__unix__) && !defined (MSDOS)) || defined (__APPLE__) || defined (__HAIKU__) typedef int SOCKET_TYPE; #else typedef unsigned long SOCKET_TYPE; diff --git a/src/sdl12/Makefile.cfg b/src/sdl12/Makefile.cfg index 0b488752e..cd7309c26 100644 --- a/src/sdl12/Makefile.cfg +++ b/src/sdl12/Makefile.cfg @@ -14,10 +14,6 @@ ifdef PANDORA include sdl12/SRB2Pandora/Makefile.cfg endif #ifdef PANDORA -ifdef PS3N -include sdl12/SRB2PS3/Makefile.cfg -endif #ifdef PS3N - ifdef PSP include sdl12/SRB2PSP/Makefile.cfg endif #ifdef PSP diff --git a/src/sdl12/SRB2PS3/ICON0.png b/src/sdl12/SRB2PS3/ICON0.png deleted file mode 100644 index 140230c1e17bcf341498374ede7feea16ac5b54c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3678 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 diff --git a/src/sdl12/SRB2PS3/Makefile.cfg b/src/sdl12/SRB2PS3/Makefile.cfg deleted file mode 100644 index 80f8db7bc..000000000 --- a/src/sdl12/SRB2PS3/Makefile.cfg +++ /dev/null @@ -1,139 +0,0 @@ -# -# Makefile.cfg for SRB2 for the PlayStation 3 using PSL1GHT -# - -# Check if PS3DEV and PSL1GHT is set in the environment. If so, continue with compilation. -.SUFFIXES: - -ifeq ($(strip $(PS3DEV)),) -$(error "Please set PS3DEV in your environment. export PS3DEV=ps3dev-toolchain") -endif - -ifeq ($(strip $(PSL1GHT)),) -$(error "Please set PSL1GHT in your environment. export PSL1GHT=PSL1GHT") -endif - -# Set compiler flags - -# Disable same warning flags -WFLAGS+=-Wno-shadow -Wno-char-subscripts -Wno-format - -ifdef JAILBREAK -EXENAME?=SRB2PS3-jb.elf -PKGNAME?=SRB2PS3-jb.pkg -else -EXENAME?=SRB2PS3.elf -PKGNAME?=SRB2PS3.pkg -endif -DGBNAME?=$(EXENAME).debug - -SRB2PS3DIR=sdl12/SRB2PS3 -ICON0?=$(SRB2PS3DIR)/ICON0.png -SFOXML?=sfo.xml -SRB2TTF?=sdl12/srb2.ttf - -TITLE=Sonic Robo Blast 2 v2.0.6 -APPID=SRB2-PS3 -CONTENTID=UP0001-$(APPID)_00-0000000000000000 - -FSELF=$(PS3DEV)/bin/fself.py -MAKE_SELF_NPDRM=$(PS3DEV)/ps3publictools/make_self_npdrm -FINALIZE=$(PS3DEV)/ps3publictools/package_finalize -SFO=$(PS3DEV)/bin/sfo.py -PKG=$(PS3DEV)/bin/pkg.py -PS3LOADEXE=$(PS3DEV)/ps3tools/ps3load -SED=sed -MV=mv -XARGS=xargs -FOR=for -SHXARGS:=$(XARGS) -SHSED:=$(SED) -SPRXLINKER=$(PS3DEV)/bin/sprxlinker - -ifdef JAILBREAK -PKGDIR=$(BIN)/pkg-jb -else -PKGDIR=$(BIN)/pkg -endif -USRDIR=$(PKGDIR)/USRDIR -ETCDIR=$(USRDIR)/etc -WGET=wget -P $(ETCDIR) -c -nc - -ifndef ECHO - FSELF:=@$(FSELF) - MAKE_SELF_NPDRM:=@$(MAKE_SELF_NPDRM) - FINALIZE:=@$(FINALIZE) - SFO:=@$(SFO) - PKG:=@$(PKG) - PS3LOADEXE:=@$(PS3LOADEXE) - SED:=@$(SED) - MV:=@$(MV) - SPRXLINKER:=@$(SPRXLINKER) - XARGS:=@$(XARGS) - FOR:=@(FOR) -endif - -# SRB2PS3 needs SDL_ttf to display any console text -SDL_TTF=1 - -# newlib has no support for networking -#NONET=1 - -# use absolute paths because changing PATH variable breaks distcc -PREFIX := $(PS3DEV)/ppu/bin/$(PREFIX) - -# PS3DEV toolchain libdir and includedir -PS3DEV_INC := $(PS3DEV)/ppu/include -PS3DEV_LIB := $(PS3DEV)/ppu/lib - -# PSL1GHT libdir and includedir -PSL1GHT_INC := $(PSL1GHT)/ppu/include -PSL1GHT_LIB := $(PSL1GHT)/ppu/lib - -PS3PORTS := $(PS3DEV)/portlibs -PS3PORTS_BIN := $(PS3PORTS)/ppu/bin -PS3PORTS_INC := $(PS3PORTS)/ppu/include - -PNG_CONFIG := $(PS3PORTS_BIN)/libpng-config -# static compilation -PNG_STATIC=1 - -SDL_CONFIG := $(PS3PORTS_BIN)/sdl-config - -INCLUDE := -I$(PSL1GHT_INC) -I$(PS3DEV_INC) -I$(PS3PORTS_INC) - -OPTS+=-D_PS3 -DUNIXCOMMON -CFLAGS+= -g $(INCLUDE) -L$(PSL1GHT_LIB) -L$(PS3DEV_LIB) -L$(PS3DEV)/lib -CXXFLAGS+=$(CFLAGS) -LDFLAGS+= -B$(PSL1GHT_LIB) -B$(PS3DEV_LIB) -B$(PS3DEV)/lib -LIBS+=-lrsx -ifndef NONET -LIBS+=-lnet -lsysmodule -endif - -$(BIN)/$(PKGNAME): $(OBJS) $(BIN)/$(EXENAME) - @echo Linking $(PKGNAME)... - -$(MKDIR) $(ETCDIR) - $(CP) $(ICON0) $(PKGDIR) - $(CP) $(SRB2TTF) $(ETCDIR) -ifdef WITHDATA - $(FOR) datafile in $(shell echo $(D_FILES) | $(SHSED) 's/\.srb/\.wad/' | $(SHXARGS) -n 1 basename); do \ - $(WGET) http://alam.srb2.org/SRB2/2.0.6-Final/Resources/$$datafile; \ - done -endif - $(SPRXLINKER) $(BIN)/$(EXENAME) -ifdef JAILBREAK - $(SED) 's/@@PS3_SYSTEM_VER@@/3.41/' $(SRB2PS3DIR)/$(SFOXML) > $(BIN)/$(SFOXML) - $(FSELF) -n $(BIN)/$(EXENAME) $(USRDIR)/EBOOT.BIN -else - $(SED) 's/@@PS3_SYSTEM_VER@@/3.55/' $(SRB2PS3DIR)/$(SFOXML) > $(BIN)/$(SFOXML) - $(MAKE_SELF_NPDRM) $(BIN)/$(EXENAME) $(USRDIR)/EBOOT.BIN $(CONTENTID) -endif - $(SFO) --title "$(TITLE)" --appid "$(APPID)" -f $(BIN)/$(SFOXML) $(PKGDIR)/PARAM.SFO - $(PKG) --contentid $(CONTENTID) $(PKGDIR)/ $(BIN)/$(PKGNAME) -ifndef JAILBREAK - $(FINALIZE) $(BIN)/$(PKGNAME) -endif - -run: $(BIN)/$(EXENAME) - $(PS3LOADEXE) $(USRDIR)/EBOOT.BIN diff --git a/src/sdl12/SRB2PS3/sfo.xml b/src/sdl12/SRB2PS3/sfo.xml deleted file mode 100644 index d7719b540..000000000 --- a/src/sdl12/SRB2PS3/sfo.xml +++ /dev/null @@ -1,39 +0,0 @@ - - - - 02.06 - - - 0 - - - 1 - - - HG - - - This application was created with the official non-official SDK called PSL1GHT, for more information visit http://www.psl1ght.com/ . This is in no way associated with Sony Computer Entertainment Inc., please do not contact them for help, they will not be able to provide it. - - - 0 - - - 0@@PS3_SYSTEM_VER@@00 - - - 63 - - - 279 - - - Sonic Robo Blast 2 - - - SRB200000 - - - 02.06 - - diff --git a/src/sdl12/i_cdmus.c b/src/sdl12/i_cdmus.c index 09b7233cb..3f7910b7d 100644 --- a/src/sdl12/i_cdmus.c +++ b/src/sdl12/i_cdmus.c @@ -19,7 +19,7 @@ #ifdef HAVE_SDL -#if defined (_WIN32_WCE) || defined(GP2X) || defined(_PS3) +#if defined (_WIN32_WCE) || defined(GP2X) #define NOSDLCD #endif diff --git a/src/sdl12/i_main.c b/src/sdl12/i_main.c index 0fda50ecf..930096373 100644 --- a/src/sdl12/i_main.c +++ b/src/sdl12/i_main.c @@ -133,22 +133,13 @@ int main(int argc, char **argv) myargv = argv; /// \todo pull out path to exe from this string #ifdef HAVE_TTF -#ifdef _PS3 - // apparently there is a bug in SDL_PSL1GHT which needs this to be set to work around - SDL_setenv("SDL_VIDEODRIVER", "psl1ght", 1); - I_StartupTTF(FONTPOINTSIZE, SDL_INIT_VIDEO, SDL_SWSURFACE|SDL_DOUBLEBUF); -#elif defined(_WIN32) +#ifdef _WIN32 I_StartupTTF(FONTPOINTSIZE, SDL_INIT_VIDEO|SDL_INIT_AUDIO, SDL_SWSURFACE); #else I_StartupTTF(FONTPOINTSIZE, SDL_INIT_VIDEO, SDL_SWSURFACE); #endif #endif -#ifdef _PS3 - // initialise controllers. - //ioPadInit(7); -#endif - // init Wii-specific stuff #ifdef _WII // Start network diff --git a/src/sdl12/i_system.c b/src/sdl12/i_system.c index 83625c658..1d577b742 100644 --- a/src/sdl12/i_system.c +++ b/src/sdl12/i_system.c @@ -80,7 +80,7 @@ typedef BOOL (WINAPI *p_SetProcessAffinityMask) (HANDLE, DWORD_PTR); #ifdef _PSP //#include -#elif !defined(_PS3) +#else #if defined (__unix__) || defined(__APPLE__) || (defined (UNIXCOMMON) && !defined (__HAIKU__) && !defined (_WII)) #if defined (__linux__) #include @@ -98,7 +98,6 @@ typedef BOOL (WINAPI *p_SetProcessAffinityMask) (HANDLE, DWORD_PTR); #endif #endif -#ifndef _PS3 #if defined (__linux__) || (defined (UNIXCOMMON) && !defined (_PSP) && !defined (__HAIKU__) && !defined (_WII)) #ifndef NOTERMIOS #include @@ -106,10 +105,9 @@ typedef BOOL (WINAPI *p_SetProcessAffinityMask) (HANDLE, DWORD_PTR); #define HAVE_TERMIOS #endif #endif -#endif #ifndef NOMUMBLE -#if defined (__linux__) && !defined(_PS3) // need -lrt +#ifdef __linux__ // need -lrt #include #ifdef MAP_FAILED #define HAVE_SHM @@ -149,14 +147,6 @@ typedef BOOL (WINAPI *p_SetProcessAffinityMask) (HANDLE, DWORD_PTR); #define DEFAULTWADLOCATION2 "usb:/srb2wii" #define DEFAULTSEARCHPATH1 "sd:/srb2wii" #define DEFAULTSEARCHPATH2 "usb:/srb2wii" -// PS3: TODO: this will need modification most likely -#elif defined (_PS3) -#define NOCWD -#define NOHOME -#define DEFAULTWADLOCATION1 "/dev_hdd0/game/SRB2-PS3_/USRDIR/etc" -#define DEFAULTWADLOCATION2 "/dev_usb/SRB2PS3" -#define DEFAULTSEARCHPATH1 "/dev_hdd0/game/SRB2-PS3_/USRDIR/etc" -#define DEFAULTSEARCHPATH2 "/dev_usb/SRB2PS3" #elif defined (_PSP) #define NOCWD #define NOHOME @@ -2449,7 +2439,7 @@ void I_GetDiskFreeSpace(INT64 *freespace) #if defined (_PSP) *freespace = 0; #elif defined (__unix__) || defined(__APPLE__) || defined (UNIXCOMMON) -#if defined (SOLARIS) || defined (__HAIKU__) || defined (_WII) || defined (_PS3) +#if defined (SOLARIS) || defined (__HAIKU__) || defined (_WII) *freespace = INT32_MAX; return; #else // Both Linux and BSD have this, apparently. @@ -2677,7 +2667,7 @@ static const char *locateWad(void) if (((envstr = I_GetEnv("SRB2WADDIR")) != NULL) && isWadPathOk(envstr)) return envstr; -#if defined(_WIN32_WCE) || defined(_PS3) || defined(_PSP) +#if defined(_WIN32_WCE) || defined(_PSP) // examine argv[0] strcpy(returnWadPath, myargv[0]); pathonly(returnWadPath); @@ -2785,7 +2775,7 @@ const char *I_LocateWad(void) // change to the directory where we found srb2.srb #if defined (_WIN32) && !defined (_WIN32_WCE) SetCurrentDirectoryA(waddir); -#elif !defined (_WIN32_WCE) && !defined (_PS3) +#elif !defined (_WIN32_WCE) if (chdir(waddir) == -1) I_OutputMsg("Couldn't change working directory\n"); #endif diff --git a/src/sdl12/i_ttf.c b/src/sdl12/i_ttf.c index 770a81d98..21f375a5f 100644 --- a/src/sdl12/i_ttf.c +++ b/src/sdl12/i_ttf.c @@ -26,10 +26,7 @@ #include "i_ttf.h" // Search directories to find aforementioned TTF file. -#ifdef _PS3 -#include -#define FONTSEARCHPATH1 "/dev_hdd0/game/SRB2-PS3_/USRDIR/etc" -#elif defined (__unix__) || defined(__APPLE__) || defined (UNIXCOMMON) +#if defined (__unix__) || defined(__APPLE__) || defined (UNIXCOMMON) #define FONTSEARCHPATH1 "/usr/share/fonts" #define FONTSEARCHPATH2 "/usr/local/share/fonts" #define FONTSEARCHPATH3 "/usr/games/SRB2" @@ -233,16 +230,9 @@ void I_StartupTTF(UINT32 fontpointsize, Uint32 initflags, Uint32 vidmodeflags) { char *fontpath = NULL; INT32 fontstatus = -1; -#ifdef _PS3 - videoState state; - videoGetState(0, 0, &state); - videoGetResolution(state.displayMode.resolution, &res); - bitsperpixel = 24; -#else res.width = 320; res.height = 200; bitsperpixel = 8; -#endif // what's the point of trying to display an error? // SDL_ttf is not started, can't display anything to screen (presumably)... diff --git a/src/sdl12/i_ttf.h b/src/sdl12/i_ttf.h index 929c8021c..d755defcb 100644 --- a/src/sdl12/i_ttf.h +++ b/src/sdl12/i_ttf.h @@ -57,13 +57,11 @@ int currentfonthinting; int currentfontoutline; #endif -#ifndef _PS3 typedef struct { UINT16 width; UINT16 height; } VideoResolution; -#endif UINT8 bitsperpixel; typedef enum diff --git a/src/sdl12/i_video.c b/src/sdl12/i_video.c index 245d8ab4a..00e1a1b3d 100644 --- a/src/sdl12/i_video.c +++ b/src/sdl12/i_video.c @@ -109,8 +109,6 @@ #define MAXWINMODES (1) #elif defined (WII) #define MAXWINMODES (8) -#elif defined (_PS3) -#define MAXWINMODES (26) #else #define MAXWINMODES (27) #endif @@ -184,9 +182,7 @@ static INT32 windowedModes[MAXWINMODES][2] = { #if !(defined (_WIN32_WCE) || defined (PSP) || defined (GP2X)) #ifndef WII -#ifndef _PS3 {1920,1200}, // 1.60,6.00 -#endif {1680,1050}, // 1.60,5.25 {1600,1200}, // 1.33,5.00 {1600,1000}, // 1.60,5.00 @@ -1977,9 +1973,6 @@ void I_StartupGraphics(void) #if defined(_WII) vid.width = 640; vid.height = 480; -#elif defined(_PS3) - vid.width = 720; - vid.height = 480; #else vid.width = BASEVIDWIDTH; vid.height = BASEVIDHEIGHT; From 41ae71db4ab9fb2a7c7083ac14860d05d91fc9b8 Mon Sep 17 00:00:00 2001 From: Monster Iestyn Date: Fri, 29 Sep 2017 20:34:16 +0100 Subject: [PATCH 053/111] postponed PSP --- src/Makefile | 8 - src/Makefile.cfg | 12 -- src/command.c | 2 +- src/d_main.c | 2 +- src/d_netcmd.c | 2 +- src/doomdef.h | 4 +- src/doomtype.h | 6 +- src/g_game.c | 16 -- src/g_input.c | 90 ++-------- src/g_input.h | 7 +- src/m_misc.c | 2 +- src/m_misc.h | 4 - src/s_sound.c | 6 +- src/screen.h | 4 +- src/sdl12/Makefile.cfg | 4 - src/sdl12/SRB2PSP/ICON0.png | Bin 3678 -> 0 bytes src/sdl12/SRB2PSP/Makefile.cfg | 126 ------------- src/sdl12/SRB2PSP/PIC1.png | Bin 20300 -> 0 bytes src/sdl12/SRB2PSP/psp-prxsign/.gitignore | 2 - src/sdl12/SRB2PSP/psp-prxsign/Makefile | 22 --- src/sdl12/SRB2PSP/psp-prxsign/cmac.c | 130 -------------- src/sdl12/SRB2PSP/psp-prxsign/cmac.h | 38 ---- src/sdl12/SRB2PSP/psp-prxsign/kirk_header.h | 25 --- src/sdl12/SRB2PSP/psp-prxsign/main.c | 190 -------------------- src/sdl12/SRB2PSP/psp-prxsign/psp_header.h | 29 --- src/sdl12/i_main.c | 9 - src/sdl12/i_system.c | 34 +--- src/sdl12/i_video.c | 38 +--- src/sdl12/ogl_sdl.c | 5 - src/sdl12/sdl_sound.c | 12 +- src/z_zone.c | 2 +- 31 files changed, 41 insertions(+), 790 deletions(-) delete mode 100644 src/sdl12/SRB2PSP/ICON0.png delete mode 100644 src/sdl12/SRB2PSP/Makefile.cfg delete mode 100644 src/sdl12/SRB2PSP/PIC1.png delete mode 100644 src/sdl12/SRB2PSP/psp-prxsign/.gitignore delete mode 100644 src/sdl12/SRB2PSP/psp-prxsign/Makefile delete mode 100644 src/sdl12/SRB2PSP/psp-prxsign/cmac.c delete mode 100644 src/sdl12/SRB2PSP/psp-prxsign/cmac.h delete mode 100644 src/sdl12/SRB2PSP/psp-prxsign/kirk_header.h delete mode 100644 src/sdl12/SRB2PSP/psp-prxsign/main.c delete mode 100644 src/sdl12/SRB2PSP/psp-prxsign/psp_header.h diff --git a/src/Makefile b/src/Makefile index f25d34ec2..3952c1743 100644 --- a/src/Makefile +++ b/src/Makefile @@ -528,18 +528,12 @@ ifdef PANDORA all: pre-build $(BIN)/$(PNDNAME) endif -ifdef PSP -all: pre-build $(BIN)/$(BINNAME) post-build -endif - -ifndef PSP ifdef MINGW ifndef SDL all: pre-build $(BIN)/$(EXENAME) dll endif endif -endif ifdef SDL all: pre-build $(BIN)/$(EXENAME) @@ -601,12 +595,10 @@ endif # mac os x lsdlsrb2 does not like objcopy ifndef MACOSX -ifndef PSP $(OBJCOPY) $(BIN)/$(EXENAME) $(BIN)/$(DBGNAME) $(OBJCOPY) --strip-debug $(BIN)/$(EXENAME) -$(OBJCOPY) --add-gnu-debuglink=$(BIN)/$(DBGNAME) $(BIN)/$(EXENAME) endif -endif ifndef NOUPX -$(UPX) $(UPX_OPTS) $(BIN)/$(EXENAME) endif diff --git a/src/Makefile.cfg b/src/Makefile.cfg index 679727c90..bf9aa5feb 100644 --- a/src/Makefile.cfg +++ b/src/Makefile.cfg @@ -211,7 +211,6 @@ endif #indicate platform and what interface use with ifndef WINCE -ifndef PSP ifndef WII ifndef LINUX ifndef FREEBSD @@ -230,7 +229,6 @@ endif endif endif endif -endif #determine the interface directory (where you put all i_*.c) i_cdmus_o=$(OBJDIR)/i_cdmus.o @@ -336,15 +334,6 @@ ifdef MINGW OBJDIR:=$(OBJDIR)/Mingw BIN:=$(BIN)/Mingw else -ifdef PSP - INTERFACE=sdl12 - NONX86=1 - SDL=1 - SDL12=1 - OBJDIR:=$(OBJDIR)/PSP - BIN:=$(BIN)/PSP - NOUPX=1 -else ifdef WINCE INTERFACE=sdl12 NONX86=1 @@ -370,7 +359,6 @@ endif endif endif endif -endif ifdef GP2X ifdef SDL diff --git a/src/command.c b/src/command.c index fc81a362d..8c275c23e 100644 --- a/src/command.c +++ b/src/command.c @@ -1255,7 +1255,7 @@ static void Got_NetVar(UINT8 **p, INT32 playernum) CONS_Alert(CONS_WARNING, "Netvar not found with netid %hu\n", netid); return; } -#if 0 //defined (GP2X) || defined (PSP) +#if 0 //defined (GP2X) CONS_Printf("Netvar received: %s [netid=%d] value %s\n", cvar->name, netid, svalue); #endif DEBFILE(va("Netvar received: %s [netid=%d] value %s\n", cvar->name, netid, svalue)); diff --git a/src/d_main.c b/src/d_main.c index b2f586607..39188d7cd 100644 --- a/src/d_main.c +++ b/src/d_main.c @@ -1005,7 +1005,7 @@ void D_SRB2Main(void) if (!userhome) { -#if ((defined (__unix__) && !defined (MSDOS)) || defined(__APPLE__) || defined (UNIXCOMMON)) && !defined (__CYGWIN__) && !defined (PSP) && !defined(GP2X) +#if ((defined (__unix__) && !defined (MSDOS)) || defined(__APPLE__) || defined (UNIXCOMMON)) && !defined (__CYGWIN__) && !defined(GP2X) I_Error("Please set $HOME to your home directory\n"); #elif defined (_WIN32_WCE) && 0 if (dedicated) diff --git a/src/d_netcmd.c b/src/d_netcmd.c index a234f3c0c..58c2d7acd 100644 --- a/src/d_netcmd.c +++ b/src/d_netcmd.c @@ -249,7 +249,7 @@ consvar_t cv_usejoystick = {"use_joystick", "1", CV_SAVE|CV_CALL, usejoystick_co I_InitJoystick, 0, NULL, NULL, 0, 0, NULL}; consvar_t cv_usejoystick2 = {"use_joystick2", "2", CV_SAVE|CV_CALL, usejoystick_cons_t, I_InitJoystick2, 0, NULL, NULL, 0, 0, NULL}; -#elif defined (PSP) || defined (GP2X) || defined (_NDS) //only one joystick +#elif defined (GP2X) || defined (_NDS) //only one joystick consvar_t cv_usejoystick = {"use_joystick", "1", CV_SAVE|CV_CALL, usejoystick_cons_t, I_InitJoystick, 0, NULL, NULL, 0, 0, NULL}; consvar_t cv_usejoystick2 = {"use_joystick2", "0", CV_SAVE|CV_CALL, usejoystick_cons_t, diff --git a/src/doomdef.h b/src/doomdef.h index 2a9f7b1f3..1d2b941e0 100644 --- a/src/doomdef.h +++ b/src/doomdef.h @@ -548,12 +548,12 @@ extern const char *compdate, *comptime, *comprevision, *compbranch; /// Most modifications should probably enable this. //#define SAVEGAME_OTHERVERSIONS -#if !defined (_NDS) && !defined (_PSP) +#if !defined (_NDS) /// Shuffle's incomplete OpenGL sorting code. #define SHUFFLE // This has nothing to do with sorting, why was it disabled? #endif -#if !defined (_NDS) && !defined (_PSP) +#if !defined (_NDS) /// Allow the use of the SOC RESETINFO command. /// \note Builds that are tight on memory should disable this. /// This stops the game from storing backups of the states, sprites, and mobjinfo tables. diff --git a/src/doomtype.h b/src/doomtype.h index d4ebbb92d..618e5665a 100644 --- a/src/doomtype.h +++ b/src/doomtype.h @@ -105,9 +105,7 @@ typedef long ssize_t; #define strncasecmp strnicmp #define strcasecmp strcmpi #endif -#ifdef _PSP - #include -#elif (defined (__unix__) && !defined (MSDOS)) || defined(__APPLE__) || defined (UNIXCOMMON) +#if (defined (__unix__) && !defined (MSDOS)) || defined(__APPLE__) || defined (UNIXCOMMON) #undef stricmp #define stricmp(x,y) strcasecmp(x,y) #undef strnicmp @@ -141,7 +139,7 @@ typedef long ssize_t; #endif #endif //macintosh -#if defined (PC_DOS) || defined (_WIN32) || defined (_WII) || defined (_PSP) || defined (__HAIKU__) || defined(_NDS) +#if defined (PC_DOS) || defined (_WIN32) || defined (_WII) || defined (__HAIKU__) || defined(_NDS) #define HAVE_DOSSTR_FUNCS #endif diff --git a/src/g_game.c b/src/g_game.c index 9d3933aaf..7e667cc05 100644 --- a/src/g_game.c +++ b/src/g_game.c @@ -395,21 +395,9 @@ consvar_t cv_fireaxis = {"joyaxis_fire", "LAnalog", CV_SAVE, joyaxis_cons_t, NUL consvar_t cv_firenaxis = {"joyaxis_firenormal", "RAnalog", CV_SAVE, joyaxis_cons_t, NULL, 0, NULL, NULL, 0, 0, NULL}; #else consvar_t cv_turnaxis = {"joyaxis_turn", "X-Axis", CV_SAVE, joyaxis_cons_t, NULL, 0, NULL, NULL, 0, 0, NULL}; -#ifdef PSP -consvar_t cv_moveaxis = {"joyaxis_move", "None", CV_SAVE, joyaxis_cons_t, NULL, 0, NULL, NULL, 0, 0, NULL}; -#else consvar_t cv_moveaxis = {"joyaxis_move", "Y-Axis", CV_SAVE, joyaxis_cons_t, NULL, 0, NULL, NULL, 0, 0, NULL}; -#endif -#ifdef PSP -consvar_t cv_sideaxis = {"joyaxis_side", "None", CV_SAVE, joyaxis_cons_t, NULL, 0, NULL, NULL, 0, 0, NULL}; -#else consvar_t cv_sideaxis = {"joyaxis_side", "Z-Axis", CV_SAVE, joyaxis_cons_t, NULL, 0, NULL, NULL, 0, 0, NULL}; -#endif -#ifdef PSP -consvar_t cv_lookaxis = {"joyaxis_look", "Y-Axis", CV_SAVE, joyaxis_cons_t, NULL, 0, NULL, NULL, 0, 0, NULL}; -#else consvar_t cv_lookaxis = {"joyaxis_look", "None", CV_SAVE, joyaxis_cons_t, NULL, 0, NULL, NULL, 0, 0, NULL}; -#endif consvar_t cv_fireaxis = {"joyaxis_fire", "None", CV_SAVE, joyaxis_cons_t, NULL, 0, NULL, NULL, 0, 0, NULL}; consvar_t cv_firenaxis = {"joyaxis_firenormal", "None", CV_SAVE, joyaxis_cons_t, NULL, 0, NULL, NULL, 0, 0, NULL}; #endif @@ -424,11 +412,7 @@ consvar_t cv_firenaxis2 = {"joyaxis2_firenormal", "RAnalog", CV_SAVE, joyaxis_co #else consvar_t cv_turnaxis2 = {"joyaxis2_turn", "X-Axis", CV_SAVE, joyaxis_cons_t, NULL, 0, NULL, NULL, 0, 0, NULL}; consvar_t cv_moveaxis2 = {"joyaxis2_move", "Y-Axis", CV_SAVE, joyaxis_cons_t, NULL, 0, NULL, NULL, 0, 0, NULL}; -#ifdef _PSP -consvar_t cv_sideaxis2 = {"joyaxis2_side", "None", CV_SAVE, joyaxis_cons_t, NULL, 0, NULL, NULL, 0, 0, NULL}; -#else consvar_t cv_sideaxis2 = {"joyaxis2_side", "Z-Axis", CV_SAVE, joyaxis_cons_t, NULL, 0, NULL, NULL, 0, 0, NULL}; -#endif consvar_t cv_lookaxis2 = {"joyaxis2_look", "None", CV_SAVE, joyaxis_cons_t, NULL, 0, NULL, NULL, 0, 0, NULL}; consvar_t cv_fireaxis2 = {"joyaxis2_fire", "None", CV_SAVE, joyaxis_cons_t, NULL, 0, NULL, NULL, 0, 0, NULL}; consvar_t cv_firenaxis2 = {"joyaxis2_firenormal", "None", CV_SAVE, joyaxis_cons_t, NULL, 0, NULL, NULL, 0, 0, NULL}; diff --git a/src/g_input.c b/src/g_input.c index d7e883735..3dcf01c00 100644 --- a/src/g_input.c +++ b/src/g_input.c @@ -268,7 +268,7 @@ static keyname_t keynames[] = {KEY_MOUSE1+0,"MOUSE1"}, {KEY_MOUSE1+1,"MOUSE2"}, {KEY_MOUSE1+2,"MOUSE3"}, -#if !defined (_PSP) && !defined (_WII) +#if !defined (_WII) {KEY_MOUSE1+3,"MOUSE4"}, {KEY_MOUSE1+4,"MOUSE5"}, {KEY_MOUSE1+5,"MOUSE6"}, @@ -278,7 +278,7 @@ static keyname_t keynames[] = {KEY_2MOUSE1+0,"SEC_MOUSE2"}, // BP: sorry my mouse handler swap button 1 and 2 {KEY_2MOUSE1+1,"SEC_MOUSE1"}, {KEY_2MOUSE1+2,"SEC_MOUSE3"}, -#if !defined (_PSP) && !defined (_WII) +#if !defined (_WII) {KEY_2MOUSE1+3,"SEC_MOUSE4"}, {KEY_2MOUSE1+4,"SEC_MOUSE5"}, {KEY_2MOUSE1+5,"SEC_MOUSE6"}, @@ -290,19 +290,7 @@ static keyname_t keynames[] = {KEY_2MOUSEWHEELUP, "Wheel 2 UP"}, {KEY_2MOUSEWHEELDOWN, "Wheel 2 Down"}, -#ifdef _PSP - {KEY_JOY1+0, "TRIANGLE"}, - {KEY_JOY1+1, "CIRCLE" }, - {KEY_JOY1+2, "CROSS" }, - {KEY_JOY1+3, "SQUARE" }, - {KEY_JOY1+4, "LTRIGGER"}, - {KEY_JOY1+5, "RTRIGGER"}, - {KEY_JOY1+6, "SELECT" }, - {KEY_JOY1+7, "START" }, - {KEY_JOY1+8, "HOME" }, - {KEY_JOY1+9, "HOLD" }, -#define NOMOREJOYBTN_1S -#elif defined (GP2X) +#if defined (GP2X) {KEY_JOY1+0, "JOYA"}, {KEY_JOY1+1, "JOYY"}, {KEY_JOY1+2, "JOYB"}, @@ -420,7 +408,7 @@ static keyname_t keynames[] = {KEY_HAT1+1, "HATDOWN"}, {KEY_HAT1+2, "HATLEFT"}, {KEY_HAT1+3, "HATRIGHT"}, -#if !defined (_PSP) && !defined (_WII) +#if !defined (_WII) {KEY_HAT1+4, "HATUP2"}, {KEY_HAT1+5, "HATDOWN2"}, {KEY_HAT1+6, "HATLEFT2"}, @@ -438,7 +426,7 @@ static keyname_t keynames[] = {KEY_DBLMOUSE1+0, "DBLMOUSE1"}, {KEY_DBLMOUSE1+1, "DBLMOUSE2"}, {KEY_DBLMOUSE1+2, "DBLMOUSE3"}, -#if !defined (_PSP) && !defined (_WII) +#if !defined (_WII) {KEY_DBLMOUSE1+3, "DBLMOUSE4"}, {KEY_DBLMOUSE1+4, "DBLMOUSE5"}, {KEY_DBLMOUSE1+5, "DBLMOUSE6"}, @@ -448,7 +436,7 @@ static keyname_t keynames[] = {KEY_DBL2MOUSE1+0, "DBLSEC_MOUSE2"}, // BP: sorry my mouse handler swap button 1 and 2 {KEY_DBL2MOUSE1+1, "DBLSEC_MOUSE1"}, {KEY_DBL2MOUSE1+2, "DBLSEC_MOUSE3"}, -#if !defined (_PSP) && !defined (_WII) +#if !defined (_WII) {KEY_DBL2MOUSE1+3, "DBLSEC_MOUSE4"}, {KEY_DBL2MOUSE1+4, "DBLSEC_MOUSE5"}, {KEY_DBL2MOUSE1+5, "DBLSEC_MOUSE6"}, @@ -456,18 +444,7 @@ static keyname_t keynames[] = {KEY_DBL2MOUSE1+7, "DBLSEC_MOUSE8"}, #endif -#ifdef _PSP - {KEY_DBLJOY1+0, "DBLTRIANGLE"}, - {KEY_DBLJOY1+1, "DBLCIRCLE" }, - {KEY_DBLJOY1+2, "DBLCROSS" }, - {KEY_DBLJOY1+3, "DBLSQUARE" }, - {KEY_DBLJOY1+4, "DBLLTRIGGER"}, - {KEY_DBLJOY1+5, "DBLRTRIGGER"}, - {KEY_DBLJOY1+6, "DBLSELECT" }, - {KEY_DBLJOY1+7, "DBLSTART" }, - {KEY_DBLJOY1+8, "DBLHOME" }, - {KEY_DBLJOY1+9, "DBLHOLD" }, -#elif defined (GP2X) +#if defined (GP2X) {KEY_DBLJOY1+0, "DBLJOYA"}, {KEY_DBLJOY1+1, "DBLJOYY"}, {KEY_DBLJOY1+2, "DBLJOYB"}, @@ -584,7 +561,7 @@ static keyname_t keynames[] = {KEY_DBLHAT1+1, "DBLHATDOWN"}, {KEY_DBLHAT1+2, "DBLHATLEFT"}, {KEY_DBLHAT1+3, "DBLHATRIGHT"}, -#if !defined (_PSP) && !defined (_WII) +#if !defined (_WII) {KEY_DBLHAT1+4, "DBLHATUP2"}, {KEY_DBLHAT1+5, "DBLHATDOWN2"}, {KEY_DBLHAT1+6, "DBLHATLEFT2"}, @@ -599,19 +576,7 @@ static keyname_t keynames[] = {KEY_DBLHAT1+15, "DBLHATRIGHT4"}, #endif -#ifdef _PSP - {KEY_2JOY1+0, "SEC_TRIANGLE"}, - {KEY_2JOY1+1, "SEC_CIRCLE" }, - {KEY_2JOY1+2, "SEC_CROSS" }, - {KEY_2JOY1+3, "SEC_SQUARE" }, - {KEY_2JOY1+4, "SEC_LTRIGGER"}, - {KEY_2JOY1+5, "SEC_RTRIGGER"}, - {KEY_2JOY1+6, "SEC_SELECT" }, - {KEY_2JOY1+7, "SEC_START" }, - {KEY_2JOY1+8, "SEC_HOME" }, - {KEY_2JOY1+9, "SEC_HOLD" }, -#define NOMOREJOYBTN_2S -#elif defined (WMINPUT) +#if defined (WMINPUT) {KEY_2JOY1+0, "SEC_JOYB"}, {KEY_2JOY1+1, "SEC_JOYA"}, {KEY_2JOY1+2, "SEC_JOYUP"}, @@ -709,7 +674,7 @@ static keyname_t keynames[] = {KEY_2HAT1+1, "SEC_HATDOWN"}, {KEY_2HAT1+2, "SEC_HATLEFT"}, {KEY_2HAT1+3, "SEC_HATRIGHT"}, -#if !defined (_PSP) && !defined (_WII) +#if !defined (_WII) {KEY_2HAT1+4, "SEC_HATUP2"}, {KEY_2HAT1+5, "SEC_HATDOWN2"}, {KEY_2HAT1+6, "SEC_HATLEFT2"}, @@ -724,19 +689,7 @@ static keyname_t keynames[] = {KEY_2HAT1+15, "SEC_HATRIGHT4"}, #endif -#ifdef _PSP - {KEY_DBL2JOY1+0, "DBLSEC_TRIANGLE"}, - {KEY_DBL2JOY1+1, "DBLSEC_CIRCLE" }, - {KEY_DBL2JOY1+2, "DBLSEC_CROSS" }, - {KEY_DBL2JOY1+3, "DBLSEC_SQUARE" }, - {KEY_DBL2JOY1+4, "DBLSEC_LTRIGGER"}, - {KEY_DBL2JOY1+5, "DBLSEC_RTRIGGER"}, - {KEY_DBL2JOY1+6, "DBLSEC_SELECT" }, - {KEY_DBL2JOY1+7, "DBLSEC_START" }, - {KEY_DBL2JOY1+8, "DBLSEC_HOME" }, - {KEY_DBL2JOY1+9, "DBLSEC_HOLD" }, -#define NOMOREJOYBTN_2DBL -#elif defined (WMINPUT) +#if defined (WMINPUT) {KEY_DBL2JOY1+0, "DBLSEC_JOYB"}, {KEY_DBL2JOY1+1, "DBLSEC_JOYA"}, {KEY_DBL2JOY1+2, "DBLSEC_JOYUP"}, @@ -832,7 +785,7 @@ static keyname_t keynames[] = {KEY_DBL2HAT1+1, "DBLSEC_HATDOWN"}, {KEY_DBL2HAT1+2, "DBLSEC_HATLEFT"}, {KEY_DBL2HAT1+3, "DBLSEC_HATRIGHT"}, -#if !defined (_PSP) && !defined (_WII) +#if !defined (_WII) {KEY_DBL2HAT1+4, "DBLSEC_HATUP2"}, {KEY_DBL2HAT1+5, "DBLSEC_HATDOWN2"}, {KEY_DBL2HAT1+6, "DBLSEC_HATLEFT2"}, @@ -947,24 +900,7 @@ INT32 G_KeyStringtoNum(const char *keystr) return 0; } -#ifdef _PSP -void G_Controldefault(void) -{ - gamecontrol[gc_forward ][0] = KEY_HAT1+0; // Up - gamecontrol[gc_backward ][0] = KEY_HAT1+1; // Down - gamecontrol[gc_turnleft ][0] = KEY_HAT1+2; // Left - gamecontrol[gc_turnright ][0] = KEY_HAT1+3; // Right - gamecontrol[gc_strafeleft ][0] = KEY_JOY1+4; // L - gamecontrol[gc_straferight][0] = KEY_JOY1+5; // R - gamecontrol[gc_tossflag ][0] = KEY_JOY1+0; // Triangle - gamecontrol[gc_use ][0] = KEY_JOY1+1; // Circle - gamecontrol[gc_camtoggle ][0] = KEY_JOY1+6; // Select - gamecontrol[gc_camreset ][0] = KEY_JOY1+3; // Square - gamecontrol[gc_centerview ][0] = KEY_JOY1+9; // Hold - gamecontrol[gc_pause ][0] = KEY_JOY1+8; // Start - gamecontrol[gc_jump ][0] = KEY_JOY1+2; // Cross -} -#elif defined (GP2X) +#if defined (GP2X) void G_Controldefault(void) { gamecontrol[gc_fire ][0] = KEY_JOY1+0; //A diff --git a/src/g_input.h b/src/g_input.h index a2697c9db..892ef9c7a 100644 --- a/src/g_input.h +++ b/src/g_input.h @@ -23,12 +23,7 @@ #define NUMKEYS 256 -#ifdef _PSP -#define MOUSEBUTTONS 3 -#define JOYBUTTONS 14 // 10 buttons -#define JOYHATS 1 // 1 hat -#define JOYAXISSET 1 // 1 Set of 2 axises -#elif defined (_WII) +#if defined (_WII) #define MOUSEBUTTONS 3 #define JOYBUTTONS 20 // 20 buttons #define JOYHATS 1 // 1 hat diff --git a/src/m_misc.c b/src/m_misc.c index a0efb8bf4..8928494c8 100644 --- a/src/m_misc.c +++ b/src/m_misc.c @@ -58,7 +58,7 @@ typedef off_t off64_t; #if defined (_WIN32) #define PRIdS "Iu" -#elif defined (_PSP) || defined (DJGPP) || defined (_WII) || defined (_NDS) +#elif defined (DJGPP) || defined (_WII) || defined (_NDS) #define PRIdS "u" #else #define PRIdS "zu" diff --git a/src/m_misc.h b/src/m_misc.h index 4f1256764..14f590516 100644 --- a/src/m_misc.h +++ b/src/m_misc.h @@ -40,11 +40,7 @@ void M_SaveFrame(void); void M_StopMovie(void); // the file where game vars and settings are saved -#ifdef PSP -#define CONFIGFILENAME "srb2psp.cfg" -#else #define CONFIGFILENAME "config.cfg" -#endif INT32 M_MapNumber(char first, char second); diff --git a/src/s_sound.c b/src/s_sound.c index 07f5e18f0..53279729c 100644 --- a/src/s_sound.c +++ b/src/s_sound.c @@ -64,7 +64,7 @@ consvar_t sndserver_arg = {"sndserver_arg", "-quiet", CV_SAVE, NULL, 0, NULL, NU #if defined (_WIN32_WCE) || defined(GP2X) consvar_t cv_samplerate = {"samplerate", "11025", 0, CV_Unsigned, NULL, 11025, NULL, NULL, 0, 0, NULL}; //Alam: For easy hacking? -#elif defined(_PSP) || defined(_WINDOWS) +#elif defined(_WINDOWS) consvar_t cv_samplerate = {"samplerate", "44100", 0, CV_Unsigned, NULL, 44100, NULL, NULL, 0, 0, NULL}; //Alam: For easy hacking? #elif defined(_WII) consvar_t cv_samplerate = {"samplerate", "32000", 0, CV_Unsigned, NULL, 32000, NULL, NULL, 0, 0, NULL}; //Alam: For easy hacking? @@ -93,7 +93,7 @@ static void Captioning_OnChange(void) consvar_t cv_closedcaptioning = {"closedcaptioning", "Off", CV_SAVE|CV_CALL, CV_OnOff, Captioning_OnChange, 0, NULL, NULL, 0, 0, NULL}; // number of channels available -#if defined (_WIN32_WCE) || defined (PSP) || defined(GP2X) +#if defined (_WIN32_WCE) || defined(GP2X) consvar_t cv_numChannels = {"snd_channels", "8", CV_SAVE|CV_CALL, CV_Unsigned, SetChannelsNum, 0, NULL, NULL, 0, 0, NULL}; #else consvar_t cv_numChannels = {"snd_channels", "32", CV_SAVE|CV_CALL, CV_Unsigned, SetChannelsNum, 0, NULL, NULL, 0, 0, NULL}; @@ -1379,7 +1379,7 @@ static boolean S_DigMusic(const char *mname, boolean looping) void S_ChangeMusic(const char *mmusic, UINT16 mflags, boolean looping) { -#if defined (_WIN32_WCE) || defined (PSP) || defined(GP2X) +#if defined (_WIN32_WCE) || defined(GP2X) S_ClearSfx(); #endif diff --git a/src/screen.h b/src/screen.h index 5f1f4bee3..79f8e5cf0 100644 --- a/src/screen.h +++ b/src/screen.h @@ -28,7 +28,7 @@ #endif // quickhack for V_Init()... to be cleaned up -#if defined (_WIN32_WCE) || defined (PSP) || defined (NOPOSTPROCESSING) +#if defined (_WIN32_WCE) || defined (NOPOSTPROCESSING) #define NUMSCREENS 2 #else #define NUMSCREENS 5 @@ -43,7 +43,7 @@ // we try to re-allocate a minimum of buffers for stability of the memory, // so all the small-enough tables based on screen size, are allocated once // and for all at the maximum size. -#if defined (_WIN32_WCE) || defined (_PSP) || defined (_NDS) +#if defined (_WIN32_WCE) || defined (_NDS) #define MAXVIDWIDTH 320 #define MAXVIDHEIGHT 200 #elif defined (GP2X) diff --git a/src/sdl12/Makefile.cfg b/src/sdl12/Makefile.cfg index cd7309c26..8c2eb7bd0 100644 --- a/src/sdl12/Makefile.cfg +++ b/src/sdl12/Makefile.cfg @@ -14,10 +14,6 @@ ifdef PANDORA include sdl12/SRB2Pandora/Makefile.cfg endif #ifdef PANDORA -ifdef PSP -include sdl12/SRB2PSP/Makefile.cfg -endif #ifdef PSP - ifdef WINCE include sdl12/SRB2CE/Makefile.cfg endif #ifef WINCE diff --git a/src/sdl12/SRB2PSP/ICON0.png b/src/sdl12/SRB2PSP/ICON0.png deleted file mode 100644 index 140230c1e17bcf341498374ede7feea16ac5b54c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3678 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 diff --git a/src/sdl12/SRB2PSP/Makefile.cfg b/src/sdl12/SRB2PSP/Makefile.cfg deleted file mode 100644 index 5e4c0ba2f..000000000 --- a/src/sdl12/SRB2PSP/Makefile.cfg +++ /dev/null @@ -1,126 +0,0 @@ -# -# Makefile.cfg for SRB2/PSP -# - -# -#hmmm, the PSP -# - - PSPSDK=$(shell psp-config -p) - PSPDEV=$(shell psp-config -d) - PSPPREFIX=$(shell psp-config -P) - STRIP=psp-strip - MKSFO?=mksfoex -d MEMSIZE=1 - #MKSFO=mksfo - PACK_PBP=pack-pbp - FIXUP=psp-fixup-imports - HOSTCC:=$(CC) - CC=$(PSPDEV)/bin/psp-gcc - OBJCOPY=psp-objcopy - OBJDUMP=psp-objdump -ifdef FIXEDPRX - PRXGEN=psp-prxgen -else - PRXGEN=$(OBJCOPY) -endif -ifndef PRXSIGN - SIGNER:=$(PSPDEV)/bin/$(OBJCOPY) -endif - -ifndef ECHO - MKSFO:=@$(MKSFO) - PACK_PBP:=@$(PACK_PBP) - FIXUP:=@$(FIXUP) - PRXGEN:=@$(PRXGEN) -endif - - PSP_EBOOT_TITLE=SRB2-PSP vME - PSP_EBOOT_SFO=$(BIN)/PARAM.SFO - PSP_EBOOT_ICON=sdl12/SRB2PSP/ICON0.png - PSP_EBOOT_ICON1=NULL - PSP_EBOOT_UNKPNG=NULL - PSP_EBOOT_PIC1=sdl12/SRB2PSP/PIC1.png - PSP_EBOOT_SND0=NULL - PSP_EBOOT_PSAR=NULL - - SIGNER?=sdl12/SRB2PSP/psp-prxsign/psp-prxsign - - SDL=1 - PREFIX=psp - NONX86=1 - #NOHW=1 - NOHS=1 - NOMD5=1 - NONET=1 #No TCPIP code - NOPNG=1 #No Screenshot - - OPTS=-I$(PSPPREFIX)/include -I$(PSPSDK)/include - OPTS+=-DUNIXCOMMON -DFORCESDLMAIN -G0 - WFLAGS+=-Wno-undef - WFLAGS+=-O1 - LIBS=-lm - SDL_CONFIG?=$(PSPPREFIX)/bin/sdl-config - #SDL_CFLAGS?=-I$(PSPDEV)/psp/include/SDL - #SDL_LDFLAGS?=-lSDLmain -lSDL -lglut -lGLU -lGL -lpspgu -lpspaudiolib -lpspaudio -lpsphprm -lpspvfpu -lpsprtc -ifndef NOMIXER - LIBS:=-liberty -lvorbisfile -lvorbis -logg -lSDL $(LIBS) -endif -ifndef NOHW - OPTS+=-DSTATIC_OPENGL -DMINI_GL_COMPATIBILITY - LIBS+=-lGLU -lGL -lm -endif - #PSPSDK_LIBS=-L$(PSPSDK)/lib -lpspdebug -lpspdisplay -lpspge -lpspctrl -lpspsdk - #LIBS+=$(PSPSDK_LIBS) -lc -lpspnet -lpspnet_inet -lpspnet_apctl -lpspnet_resolver -lpsputility -lpspuser -lpspkernel -ifdef FIXEDPRX - LDFLAGS := -specs=$(PSPSDK)/lib/prxspecs -Wl,-q,-T$(PSPSDK)/lib/linkfile.prx $(LDFLAGS) - LIBS+=$(PSPSDK)/lib/prxexports.o -endif - -ifeq ($(PSP_FW_VERSION),) -PSP_FW_VERSION=150 -endif - - CPPFLAGS:=-D_PSP_FW_VERSION=$(PSP_FW_VERSION) $(CPPFLAGS) - - - # name of the exefile - EXENAME?=SRB2PSP.elf - PRXNAME?=SRB2PSP.prx - DBGNAME?=SRB2PSP.debug - -post-build: $(BIN)/EBOOT.PBP - -kxploit: $(BIN)/$(EXENAME) $(PSP_EBOOT_SFO) - -$(MKDIR) "$(BIN)/kxploit/srb2" - @echo emitting kxploit/srb2/ - $(STRIP) $(BIN)/$(EXENAME) -o $(BIN)/kxploit/srb2/EBOOT.PBP - @echo emitting kxploit/srb2% - -$(MKDIR) "$(BIN)/kxploit/srb2%/" - $(PACK_PBP) "$(BIN)/kxploit/srb2%/EBOOT.PBP" $(PSP_EBOOT_SFO) $(PSP_EBOOT_ICON) \ - $(PSP_EBOOT_ICON1) $(PSP_EBOOT_UNKPNG) $(PSP_EBOOT_PIC1) \ - $(PSP_EBOOT_SND0) NULL $(PSP_EBOOT_PSAR) - -sdl12/SRB2PSP/psp-prxsign/psp-prxsign: - -$(MAKE) -C sdl12/SRB2PSP/psp-prxsign CFLAGS=-pipe CC="$(HOSTCC)" - -fix-up: $(BIN)/$(EXENAME) - @echo Running psp-fixup-imports on $(EXENAME) - $(FIXUP) $(BIN)/$(EXENAME) - -$(BIN)/$(PRXNAME): $(BIN)/$(EXENAME) fix-up - @echo Building $(PRXNAME) out of $(EXENAME) - $(PRXGEN) $(BIN)/$(EXENAME) $@ - -$(BIN)/EBOOT.PBP: $(BIN)/$(PRXNAME) $(SIGNER) $(PSP_EBOOT_SFO) - @echo Signing and running pack-pbp to make PBP - $(SIGNER) $(BIN)/$(PRXNAME) $(BIN)/$(PRXNAME).sign - $(PACK_PBP) $@ $(PSP_EBOOT_SFO) $(PSP_EBOOT_ICON) \ - $(PSP_EBOOT_ICON1) $(PSP_EBOOT_UNKPNG) $(PSP_EBOOT_PIC1) \ - $(PSP_EBOOT_SND0) $(BIN)/$(PRXNAME).sign $(PSP_EBOOT_PSAR) - $(REMOVE) $(BIN)/$(PRXNAME).sign - -$(PSP_EBOOT_SFO): - -$(MKDIR) $(BIN) - $(MKSFO) '$(PSP_EBOOT_TITLE)' $@ - -#include $(PSPSDK)/lib/build.mak diff --git a/src/sdl12/SRB2PSP/PIC1.png b/src/sdl12/SRB2PSP/PIC1.png deleted file mode 100644 index 0722a96bc78ce4c82edaed348bc6f86826e5690a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 20300 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 diff --git a/src/sdl12/SRB2PSP/psp-prxsign/.gitignore b/src/sdl12/SRB2PSP/psp-prxsign/.gitignore deleted file mode 100644 index 6a07f1a5a..000000000 --- a/src/sdl12/SRB2PSP/psp-prxsign/.gitignore +++ /dev/null @@ -1,2 +0,0 @@ -/psp-prxsign -/psp-prxsign.exe diff --git a/src/sdl12/SRB2PSP/psp-prxsign/Makefile b/src/sdl12/SRB2PSP/psp-prxsign/Makefile deleted file mode 100644 index 4a9b7da0f..000000000 --- a/src/sdl12/SRB2PSP/psp-prxsign/Makefile +++ /dev/null @@ -1,22 +0,0 @@ -EXE=psp-prxsign -SRC=main.c cmac.c -OBJ=$(SRC:.c=.o)# replaces the .c from SRC with .o - -OPENSSL_PKGCONFIG?=openssl -OPENSSL_CFLAGS?=$(shell pkg-config $(OPENSSL_PKGCONFIG) --cflags) -OPENSSL_LDFLAGS?=$(shell pkg-config $(OPENSSL_PKGCONFIG) --libs) - -CFLAGS+=$(OPENSSL_CFLAGS) -LDFLAGS+=$(OPENSSL_LDFLAGS) - -.PHONY : all # .PHONY ignores files named all - -all: $(EXE) # all is dependent on $(BIN) to be complete - - -$(EXE): $(OBJ) # $(EXE) is dependent on all of the files in $(OBJ) to exist - $(CC) $^ $(LDFLAGS) -o $@ - -.PHONY : clean # .PHONY ignores files named clean -clean: - -$(RM) $(OBJ) $(EXE) diff --git a/src/sdl12/SRB2PSP/psp-prxsign/cmac.c b/src/sdl12/SRB2PSP/psp-prxsign/cmac.c deleted file mode 100644 index f527f7a71..000000000 --- a/src/sdl12/SRB2PSP/psp-prxsign/cmac.c +++ /dev/null @@ -1,130 +0,0 @@ -#include "cmac.h" - -#define AES_128 0 -unsigned char const_Rb[16] = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x87 -}; -unsigned char const_Zero[16] = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 -}; - -void xor_128(unsigned char *a, unsigned char *b, unsigned char *out) -{ - int i; - for (i=0;i<16; i++) - { - out[i] = a[i] ^ b[i]; - } -} - -/* AES-CMAC Generation Function */ - -static inline void leftshift_onebit(unsigned char *input,unsigned char *output) -{ - int i; - unsigned char overflow = 0; - - for ( i=15; i>=0; i-- ) - { - output[i] = input[i] << 1; - output[i] |= overflow; - overflow = (input[i] & 0x80)?1:0; - } -} - -void generate_subkey(unsigned char *key, unsigned char *K1, unsigned char *K2) -{ - unsigned char L[16]; - unsigned char Z[16]; - unsigned char tmp[16]; - int i; - - for ( i=0; i<16; i++ ) Z[i] = 0; - - AES_KEY aes; - AES_set_encrypt_key(key, 128, &aes); - - AES_encrypt(Z, L, &aes); - - if ( (L[0] & 0x80) == 0 ) /* If MSB(L) = 0, then K1 = L << 1 */ - { - leftshift_onebit(L,K1); - } else { /* Else K1 = ( L << 1 ) (+) Rb */ - leftshift_onebit(L,tmp); - xor_128(tmp,const_Rb,K1); - } - - if ( (K1[0] & 0x80) == 0 ) - { - leftshift_onebit(K1,K2); - } else { - leftshift_onebit(K1,tmp); - xor_128(tmp,const_Rb,K2); - } -} - -static inline void padding ( unsigned char *lastb, unsigned char *pad, int length ) -{ - int j; - - /* original last block */ - for ( j=0; j<16; j++ ) - { - if ( j < length ) - { - pad[j] = lastb[j]; - } else if ( j == length ) { - pad[j] = 0x80; - } else { - pad[j] = 0x00; - } - } -} - -void AES_CMAC ( unsigned char *key, unsigned char *input, int length, unsigned char *mac ) -{ - unsigned char X[16],Y[16], M_last[16], padded[16]; - unsigned char K1[16], K2[16]; - int n, i, flag; - generate_subkey(key,K1,K2); - - n = (length+15) / 16; /* n is number of rounds */ - - if ( n == 0 ) - { - n = 1; - flag = 0; - } else { - if ( (length%16) == 0 ) { /* last block is a complete block */ - flag = 1; - } else { /* last block is not complete block */ - flag = 0; - } - - } - - if ( flag ) { /* last block is complete block */ - xor_128(&input[16*(n-1)],K1,M_last); - } else { - padding(&input[16*(n-1)],padded,length%16); - xor_128(padded,K2,M_last); - } - AES_KEY aes; - AES_set_encrypt_key(key, 128, &aes); - - for ( i=0; i<16; i++ ) X[i] = 0; - for ( i=0; i -#include - -void xor_128(unsigned char *a, unsigned char *b, unsigned char *out); -void generate_subkey(unsigned char *key, unsigned char *K1, unsigned char *K2); -void AES_CMAC(unsigned char *key, unsigned char *input, int length, unsigned char *mac); - -#endif diff --git a/src/sdl12/SRB2PSP/psp-prxsign/kirk_header.h b/src/sdl12/SRB2PSP/psp-prxsign/kirk_header.h deleted file mode 100644 index 76c921ef0..000000000 --- a/src/sdl12/SRB2PSP/psp-prxsign/kirk_header.h +++ /dev/null @@ -1,25 +0,0 @@ -#ifndef __kirk_header__ -#define __kirk_header__ - -static unsigned int size_kirk_header = 272; -static unsigned char kirk_header[] __attribute__((aligned(16))) = { - 0x2a, 0x4f, 0x3c, 0x49, 0x8a, 0x73, 0x4e, 0xd1, 0xf4, 0x55, 0x93, 0x0b, 0x9b, 0x69, 0xdc, 0x65, - 0x73, 0x22, 0x69, 0xd3, 0x73, 0x96, 0x7a, 0x60, 0x66, 0x8c, 0x88, 0xcf, 0x2f, 0x83, 0x58, 0xbc, - 0xb2, 0x00, 0x0a, 0x11, 0x72, 0x43, 0xc5, 0xde, 0xef, 0xbb, 0x2c, 0xbf, 0x97, 0x79, 0x6b, 0x9c, - 0x10, 0x1e, 0x7c, 0x57, 0x0e, 0xdb, 0x1d, 0x61, 0x6e, 0xb5, 0xf9, 0x3d, 0x35, 0xe9, 0x5c, 0xd8, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x33, 0x55, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x7e, 0x50, 0x53, 0x50, 0x00, 0x02, 0x00, 0x00, 0x01, 0x01, 0x22, 0x74, 0x69, 0x66, 0x70, 0x73, - 0x70, 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x33, 0x55, 0x00, 0x50, 0x34, 0x55, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x40, 0x67, 0x3d, 0x00, 0x50, 0x55, 0x0a, 0x01, 0x10, 0x00, 0x40, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x6b, 0x3d, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x4c, 0x6b, 0x3d, 0x00, 0xcc, 0xbb, 0x11, 0x01, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0d, 0x00, 0x00, 0x00, -}; - -#endif diff --git a/src/sdl12/SRB2PSP/psp-prxsign/main.c b/src/sdl12/SRB2PSP/psp-prxsign/main.c deleted file mode 100644 index a970ae6c1..000000000 --- a/src/sdl12/SRB2PSP/psp-prxsign/main.c +++ /dev/null @@ -1,190 +0,0 @@ -#include -#include -#include -#include -#include -#include "cmac.h" -#include "kirk_header.h" -#include "psp_header.h" - -typedef unsigned char byte; - -typedef struct { - byte key[16]; - byte ckey[16]; - byte head_hash[16]; - byte data_hash[16]; - byte unused[32]; - int unk1; // 1 - int unk2; // 0 - int unk3[2]; - int datasize; - int dataoffset; - int unk4[6]; -} kirk1head_t; - -// secret kirk command 1 key -byte kirk_key[] = { - 0x98, 0xc9, 0x40, 0x97, 0x5c, 0x1d, 0x10, 0xe8, 0x7f, 0xe6, 0x0e, 0xa3, 0xfd, 0x03, 0xa8, 0xba -}; - -int main(int argc, char **argv) -{ - int i, relrem, size, fullsize, blocks, datasize; - size_t j; - kirk1head_t kirk; - byte iv[16]; - byte cmac[32]; - byte subk[32]; - byte psph[0x150]; - byte *datablob; - byte *filebuff; - FILE *f; - AES_KEY aesKey; - Elf32_Ehdr *ehdr; - Elf32_Shdr *shdr; - Elf32_Rel *relo; - - if(argc < 3) { - printf("Usage: %s unsigned.prx signed.prx\n", argv[0]); - return 1; - } - - // clean kirk header, use modified PRXdecrypter to get it - /*f = fopen(argv[1], "rb"); - if(!f) { - printf("failed to open %s\n", argv[1]); - return 1; - } - fread(&kirk, 1, sizeof(kirk1head_t), f); - fclose(f);*/ - //memcpy(&kirk, kirk_header, size_kirk_header); - memcpy(&kirk, kirk_header, sizeof(kirk1head_t)); - - datasize = kirk.datasize; - if(datasize % 16) datasize += 16 - (datasize % 16); - - // original ~PSP header - /*f = fopen(argv[2], "rb"); - if(!f) { - free(datablob); - printf("failed to open %s\n", argv[2]); - return 1; - } - fread(psph, 1, 0x150, f); - fclose(f);*/ - memcpy(&psph, psp_header, size_psp_header); - - // file to encrypt - f = fopen(argv[1], "rb"); - if(!f) { - printf("psp-prxsign: Unable to open PRX\n"); - return 1; - } - fseek(f, 0, SEEK_END); - size = ftell(f); - if(size > datasize - 16) { - fclose(f); - printf("psp-prxsign: PRX is too large\n"); - return 1; - } - printf("%s : %i\n", argv[1], size); - fseek(f, 0, SEEK_SET); - - fullsize = datasize + 0x30 + kirk.dataoffset; - - // datablob holds everything needed to calculate data HASH - datablob = malloc(fullsize); - if(!datablob) { - fclose(f); - printf("psp-prxsign: Failed to allocate memory for blob\n"); - return 1; - } - memset(datablob, 0, fullsize); - memcpy(datablob, &kirk.unk1, 0x30); - memcpy(datablob + 0x30, psph, kirk.dataoffset); - filebuff = datablob + 0x30 + kirk.dataoffset; - - int whocares = fread(filebuff, 1, size, f); - (void)whocares; - fclose(f); - - // remove relocations type 7 - relrem = 0; - ehdr = (void *)filebuff; - if(!memcmp(ehdr->e_ident, ELFMAG, 4) && ehdr->e_shnum) { - shdr = (void *)(filebuff + ehdr->e_shoff); - for(i = 0; i < ehdr->e_shnum; i++) { - if(shdr[i].sh_type == 0x700000A0) { - relo = (void *)(filebuff + shdr[i].sh_offset); - for(j = 0; j < shdr[i].sh_size / sizeof(Elf32_Rel); j++) { - if((relo[j].r_info & 0xFF) == 7) { - relo[j].r_info = 0; - relrem++; - } - } - } - } - } - //printf("%i relocations type 7 removed\ncalculating ...\n", relrem); - - // get AES/CMAC key - AES_set_decrypt_key(kirk_key, 128, &aesKey); - memset(iv, 0, 16); - AES_cbc_encrypt(kirk.key, kirk.key, 32, &aesKey, iv, AES_DECRYPT); - - // check header hash, optional - // if you take correct kirk header, hash is always correct -/* AES_CMAC(kirk.ckey, datablob, 0x30, cmac); - if(memcmp(cmac, kirk.head_hash, 16)) { - free(datablob); - printf("header hash invalid\n"); - return 1; - } -*/ - - // encrypt input file - AES_set_encrypt_key(kirk.key, 128, &aesKey); - memset(iv, 0, 16); - AES_cbc_encrypt(filebuff, filebuff, datasize, &aesKey, iv, AES_ENCRYPT); - - // make CMAC correct - generate_subkey(kirk.ckey, subk, subk + 16); - AES_set_encrypt_key(kirk.ckey, 128, &aesKey); - blocks = fullsize / 16; - memset(cmac, 0, 16); - for(i = 0; i < blocks - 1; i++) { - xor_128(cmac, &datablob[16 * i], cmac + 16); - AES_encrypt(cmac + 16, cmac, &aesKey); - } - - AES_set_decrypt_key(kirk.ckey, 128, &aesKey); - AES_decrypt(kirk.data_hash, iv, &aesKey); - xor_128(cmac, iv, iv); - xor_128(iv, subk, &datablob[16 * (blocks-1)]); - // check it, optional - // it works, this is only if you want to change something -/* AES_CMAC(kirk.ckey, datablob, fullsize, cmac); - if(memcmp(cmac, kirk.data_hash, 16)) { - fclose(f); - free(datablob); - printf("data hash calculation error\n"); - return 1; - } -*/ - f = fopen(argv[2], "wb"); - if(!f) { - free(datablob); - printf("psp-prxsign: Failed to write signed PRX\n"); - return 1; - } - //printf("saving ...\n"); - // save ~PSP header - fwrite(psph, 1, 0x150, f); - // save encrypted file - fwrite(filebuff, 1, fullsize - 0x30 - kirk.dataoffset, f); - fclose(f); - free(datablob); - //printf("everything done\n"); - return 0; -} diff --git a/src/sdl12/SRB2PSP/psp-prxsign/psp_header.h b/src/sdl12/SRB2PSP/psp-prxsign/psp_header.h deleted file mode 100644 index 7faef832c..000000000 --- a/src/sdl12/SRB2PSP/psp-prxsign/psp_header.h +++ /dev/null @@ -1,29 +0,0 @@ -#ifndef __psp_header__ -#define __psp_header__ - -static unsigned int size_psp_header = 336; -static unsigned char psp_header[] __attribute__((aligned(16))) = { - 0x7e, 0x50, 0x53, 0x50, 0x00, 0x02, 0x00, 0x00, 0x01, 0x01, 0x22, 0x74, 0x69, 0x66, 0x70, 0x73, - 0x70, 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x33, 0x55, 0x00, 0x50, 0x34, 0x55, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x40, 0x67, 0x3d, 0x00, 0x50, 0x55, 0x0a, 0x01, 0x10, 0x00, 0x40, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x6b, 0x3d, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x4c, 0x6b, 0x3d, 0x00, 0xcc, 0xbb, 0x11, 0x01, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0d, 0x00, 0x00, 0x00, - 0x90, 0x82, 0x4c, 0x48, 0xa3, 0x53, 0xb2, 0x1b, 0x13, 0x95, 0x2f, 0xf1, 0x0b, 0x90, 0x9c, 0x11, - 0x61, 0x40, 0x20, 0x67, 0xf8, 0xdb, 0xfc, 0x95, 0x5c, 0xbe, 0x8c, 0x80, 0xf3, 0x92, 0x03, 0x01, - 0xb0, 0xbe, 0xf5, 0xf8, 0xa1, 0xaf, 0xaf, 0xa8, 0x38, 0x26, 0x63, 0x09, 0x26, 0x0e, 0xb7, 0xd5, - 0x00, 0x33, 0x55, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x5c, 0x3e, 0x03, 0x22, 0xe5, 0x7d, 0xb9, 0xd1, 0x13, 0x67, 0x97, 0xa3, 0x5b, 0xd8, 0x77, 0x1f, - 0xf0, 0x05, 0xf3, 0xad, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x87, 0x4a, 0xd7, 0x37, - 0xc2, 0x8f, 0x15, 0x43, 0x33, 0x93, 0x4d, 0x5b, 0xc0, 0x6e, 0xe4, 0x00, 0xc6, 0x0a, 0x71, 0x11, - 0x98, 0xb6, 0xc3, 0xb7, 0x59, 0x66, 0x21, 0xa8, 0x65, 0xf6, 0x53, 0xa9, 0x7a, 0x48, 0x17, 0xb6, -}; - -#endif diff --git a/src/sdl12/i_main.c b/src/sdl12/i_main.c index 930096373..180be311e 100644 --- a/src/sdl12/i_main.c +++ b/src/sdl12/i_main.c @@ -39,15 +39,6 @@ static char gateway[16] = {0}; static char netmask[16] = {0}; #endif -#ifdef _PSP -#include -#include -PSP_HEAP_SIZE_KB(24*1024); -PSP_MAIN_THREAD_ATTR(PSP_THREAD_ATTR_USER | PSP_THREAD_ATTR_VFPU); -PSP_MAIN_THREAD_NAME("SRB2"); -PSP_MAIN_THREAD_STACK_SIZE_KB(256); -#endif - #ifdef HAVE_SDL #ifdef HAVE_TTF diff --git a/src/sdl12/i_system.c b/src/sdl12/i_system.c index 1d577b742..1b62e81e4 100644 --- a/src/sdl12/i_system.c +++ b/src/sdl12/i_system.c @@ -78,9 +78,6 @@ typedef BOOL (WINAPI *p_SetProcessAffinityMask) (HANDLE, DWORD_PTR); #define HAVE_SDLCPUINFO #endif -#ifdef _PSP -//#include -#else #if defined (__unix__) || defined(__APPLE__) || (defined (UNIXCOMMON) && !defined (__HAIKU__) && !defined (_WII)) #if defined (__linux__) #include @@ -96,9 +93,8 @@ typedef BOOL (WINAPI *p_SetProcessAffinityMask) (HANDLE, DWORD_PTR); #include #endif #endif -#endif -#if defined (__linux__) || (defined (UNIXCOMMON) && !defined (_PSP) && !defined (__HAIKU__) && !defined (_WII)) +#if defined (__linux__) || (defined (UNIXCOMMON) && !defined (__HAIKU__) && !defined (_WII)) #ifndef NOTERMIOS #include #include // ioctl @@ -147,13 +143,6 @@ typedef BOOL (WINAPI *p_SetProcessAffinityMask) (HANDLE, DWORD_PTR); #define DEFAULTWADLOCATION2 "usb:/srb2wii" #define DEFAULTSEARCHPATH1 "sd:/srb2wii" #define DEFAULTSEARCHPATH2 "usb:/srb2wii" -#elif defined (_PSP) -#define NOCWD -#define NOHOME -#define DEFAULTWADLOCATION1 "host0:/bin/Resources" -#define DEFAULTWADLOCATION2 "ms0:/PSP/GAME/SRB2PSP" -#define DEFAULTSEARCHPATH1 "host0:/" -#define DEFAULTSEARCHPATH2 "ms0:/PSP/GAME/SRB2PSP" #elif defined (__unix__) || defined(__APPLE__) || defined (UNIXCOMMON) #define DEFAULTWADLOCATION1 "/usr/local/share/games/SRB2" #define DEFAULTWADLOCATION2 "/usr/local/games/SRB2" @@ -972,11 +961,6 @@ void I_GetJoystickEvents(void) event.type = ev_keydown; else event.type = ev_keyup; -#ifdef _PSP - if (i == 12) - event.data1 = KEY_ESCAPE; - else -#endif event.data1 = KEY_JOY1 + i; D_PostEvent(&event); } @@ -2436,9 +2420,7 @@ void I_ShutdownSystem(void) void I_GetDiskFreeSpace(INT64 *freespace) { -#if defined (_PSP) - *freespace = 0; -#elif defined (__unix__) || defined(__APPLE__) || defined (UNIXCOMMON) +#if defined (__unix__) || defined(__APPLE__) || defined (UNIXCOMMON) #if defined (SOLARIS) || defined (__HAIKU__) || defined (_WII) *freespace = INT32_MAX; return; @@ -2485,9 +2467,6 @@ char *I_GetUserName(void) #ifdef GP2X static char username[MAXPLAYERNAME] = "GP2XUSER"; return username; -#elif defined (PSP) - static char username[MAXPLAYERNAME] = "PSPUSER"; - return username; #elif !defined (_WIN32_WCE) static char username[MAXPLAYERNAME]; char *p; @@ -2667,7 +2646,7 @@ static const char *locateWad(void) if (((envstr = I_GetEnv("SRB2WADDIR")) != NULL) && isWadPathOk(envstr)) return envstr; -#if defined(_WIN32_WCE) || defined(_PSP) +#if defined(_WIN32_WCE) // examine argv[0] strcpy(returnWadPath, myargv[0]); pathonly(returnWadPath); @@ -2792,12 +2771,7 @@ const char *I_LocateWad(void) // quick fix for compil UINT32 I_GetFreeMem(UINT32 *total) { -#if defined (_PSP) - // PSP - if (total) - *total = 32<<20; - return 16<<20; -#elif defined (FREEBSD) +#if defined (FREEBSD) struct vmmeter sum; kvm_t *kd; struct nlist namelist[] = diff --git a/src/sdl12/i_video.c b/src/sdl12/i_video.c index 00e1a1b3d..8ddec5804 100644 --- a/src/sdl12/i_video.c +++ b/src/sdl12/i_video.c @@ -54,7 +54,7 @@ #ifdef HAVE_IMAGE #include "SDL_image.h" -#elseif !(defined (_WIN32_WCE) || defined (PSP) || defined(GP2X)) +#elseif !(defined (_WIN32_WCE) || defined(GP2X)) #define LOAD_XPM //I want XPM! #include "IMG_xpm.c" //Alam: I don't want to add SDL_Image.dll/so #define HAVE_IMAGE //I have SDL_Image, sortof @@ -105,7 +105,7 @@ #endif // maximum number of windowed modes (see windowedModes[][]) -#if defined (_WIN32_WCE) || defined (PSP) || defined(GP2X) +#if defined (_WIN32_WCE) || defined(GP2X) #define MAXWINMODES (1) #elif defined (WII) #define MAXWINMODES (8) @@ -163,14 +163,10 @@ static const Uint32 surfaceFlagsW = SDL_HWPALETTE; //Can't handle WinCE cha #else static const Uint32 surfaceFlagsW = SDL_HWPALETTE/*|SDL_RESIZABLE*/; #endif -#ifdef _PSP -static const Uint32 surfaceFlagsF = SDL_HWSURFACE|SDL_FULLSCREEN; -#else static const Uint32 surfaceFlagsF = SDL_HWPALETTE|SDL_FULLSCREEN; -#endif static SDL_bool mousegrabok = SDL_TRUE; #define HalfWarpMouse(x,y) SDL_WarpMouse((Uint16)(x/2),(Uint16)(y/2)) -#if defined (_WIN32_WCE) || defined (PSP) || defined(GP2X) +#if defined (_WIN32_WCE) || defined(GP2X) static SDL_bool videoblitok = SDL_TRUE; #else static SDL_bool videoblitok = SDL_FALSE; @@ -180,7 +176,7 @@ static SDL_bool exposevideo = SDL_FALSE; // windowed video modes from which to choose from. static INT32 windowedModes[MAXWINMODES][2] = { -#if !(defined (_WIN32_WCE) || defined (PSP) || defined (GP2X)) +#if !(defined (_WIN32_WCE) || defined (GP2X)) #ifndef WII {1920,1200}, // 1.60,6.00 {1680,1050}, // 1.60,5.25 @@ -223,9 +219,6 @@ static void SDLSetMode(INT32 width, INT32 height, INT32 bpp, Uint32 flags) #ifdef _WII bpp = 16; // 8-bit mode poo #endif -#ifdef PSP - bpp = 16; -#endif #ifdef GP2X bpp = 16; #ifdef HAVE_GP2XSDL @@ -628,7 +621,7 @@ static void VID_Command_Info_f (void) static void VID_Command_ModeList_f(void) { -#if !defined (_WIN32_WCE) && !defined (_PSP) && !defined(GP2X) +#if !defined (_WIN32_WCE) && !defined(GP2X) INT32 i; #ifdef HWRENDER if (rendermode == render_opengl) @@ -901,21 +894,6 @@ static inline void SDLJoyRemap(event_t *event) } //I_OutputMsg("Button %i: event key %i and type: %i\n", button, event->data1, event->type); } -#elif defined(_PSP) - if (event->data1 > KEY_JOY1 + 9 + 2) // All button after D-Pad and Select/Start - event->data1 -= 4; // remap D-pad to Hats, offset of -4 - else if (event->data1 == KEY_JOY1 + 6) // Down - event->data1 = KEY_HAT1+1; - else if (event->data1 == KEY_JOY1 + 7) // Left - event->data1 = KEY_HAT1+2; - else if (event->data1 == KEY_JOY1 + 8) // Up - event->data1 = KEY_HAT1+0; - else if (event->data1 == KEY_JOY1 + 9) // Right - event->data1 = KEY_HAT1+3; - else if (event->data1 == KEY_JOY1 + 10) // Select - event->data1 = KEY_TAB; - else if (event->data1 == KEY_JOY1 + 11) // Start - event->data1 = KEY_ESCAPE; #else (void)event; #endif @@ -1262,7 +1240,7 @@ static inline boolean I_SkipFrame(void) skip = !skip; -#if 0 //(defined (GP2X) || defined (PSP)) +#if 0 //defined (GP2X) return skip; #endif @@ -1833,11 +1811,7 @@ void I_StartupGraphics(void) #ifdef FILTERS CV_RegisterVar (&cv_filter); #endif -#ifdef _PSP // pitch is 0, mod of 0 crash - disable_mouse = true; -#else disable_mouse = M_CheckParm("-nomouse"); -#endif if (disable_mouse) I_PutEnv(SDLNOMOUSE); if (!I_GetEnv("SDL_VIDEO_CENTERED")) diff --git a/src/sdl12/ogl_sdl.c b/src/sdl12/ogl_sdl.c index 8fda4aeb6..0790d5eff 100644 --- a/src/sdl12/ogl_sdl.c +++ b/src/sdl12/ogl_sdl.c @@ -62,13 +62,8 @@ PFNglGetIntegerv pglGetIntegerv; PFNglGetString pglGetString; #endif -#ifdef _PSP -static const Uint32 WOGLFlags = SDL_HWSURFACE|SDL_OPENGL/*|SDL_RESIZABLE*/; -static const Uint32 FOGLFlags = SDL_HWSURFACE|SDL_OPENGL|SDL_FULLSCREEN; -#else static const Uint32 WOGLFlags = SDL_OPENGL/*|SDL_RESIZABLE*/; static const Uint32 FOGLFlags = SDL_OPENGL|SDL_FULLSCREEN; -#endif /** \brief SDL video display surface */ diff --git a/src/sdl12/sdl_sound.c b/src/sdl12/sdl_sound.c index 990136ef7..261d7f622 100644 --- a/src/sdl12/sdl_sound.c +++ b/src/sdl12/sdl_sound.c @@ -85,7 +85,7 @@ // mixing buffer, and the samplerate of the raw data. // Needed for calling the actual sound output. -#if defined (_WIN32_WCE) || defined (PSP) || defined(GP2X) +#if defined (_WIN32_WCE) || defined(GP2X) #define NUM_CHANNELS MIX_CHANNELS #else #define NUM_CHANNELS MIX_CHANNELS*4 @@ -93,7 +93,7 @@ #define INDEXOFSFX(x) ((sfxinfo_t *)x - S_sfx) -#if defined (_WIN32_WCE) || defined (PSP) +#if defined (_WIN32_WCE) static Uint16 samplecount = 512; //Alam: .5KB samplecount at 11025hz is 46.439909297052154195011337868481ms of buffer #elif defined(GP2X) static Uint16 samplecount = 128; @@ -1225,13 +1225,7 @@ void I_StartupSound(void) audio.samples /= 2; } -#if defined (_PSP) && defined (HAVE_MIXER) // Bug in PSP's SDL_OpenAudio, can not open twice - I_SetChannels(); - sound_started = true; - Snd_Mutex = SDL_CreateMutex(); -#else if (nosound) -#endif return; #ifdef HW3SOUND @@ -1513,7 +1507,7 @@ void I_InitMusic(void) #endif I_OutputMsg("Linked with SDL_mixer version: %d.%d.%d\n", MIXlinked->major, MIXlinked->minor, MIXlinked->patch); -#if !(defined (PSP) || defined(GP2X) || defined (WII)) +#if !(defined(GP2X) || defined (WII)) if (audio.freq < 44100 && !M_CheckParm ("-freq")) //I want atleast 44Khz { audio.samples = (Uint16)(audio.samples*(INT32)(44100/audio.freq)); diff --git a/src/z_zone.c b/src/z_zone.c index eecb6e808..a30b160a3 100644 --- a/src/z_zone.c +++ b/src/z_zone.c @@ -220,7 +220,7 @@ static void *xm(size_t size) if (p == NULL) { -#if defined (_NDS) | defined (_PSP) +#if defined (_NDS) // Temporary-ish debugging measure Command_Memfree_f(); #endif From 7481ffef2aa59328fb6d5a7608ea5304ee2512de Mon Sep 17 00:00:00 2001 From: Monster Iestyn Date: Fri, 29 Sep 2017 21:03:28 +0100 Subject: [PATCH 054/111] Wiped out Wii (and Wii Linux) --- src/Makefile | 23 --- src/Makefile.cfg | 15 -- src/console.c | 5 - src/console.h | 4 - src/d_main.c | 5 - src/d_netcmd.c | 7 +- src/doomdef.h | 2 +- src/doomtype.h | 2 +- src/g_game.c | 55 ------ src/g_input.c | 316 --------------------------------- src/g_input.h | 8 - src/i_addrinfo.c | 2 +- src/m_argv.c | 5 - src/m_misc.c | 6 +- src/s_sound.c | 2 - src/screen.c | 10 +- src/screen.h | 3 - src/sdl12/Makefile.cfg | 6 - src/sdl12/SRB2WII/Makefile.cfg | 124 ------------- src/sdl12/SRB2WII/icon.png | Bin 11247 -> 0 bytes src/sdl12/SRB2WII/meta.xml | 18 -- src/sdl12/i_main.c | 38 ---- src/sdl12/i_system.c | 14 +- src/sdl12/i_video.c | 27 --- src/sdl12/mixer_sound.c | 2 - src/sdl12/sdl_sound.c | 4 +- src/win32/win_snd.c | 2 - 27 files changed, 12 insertions(+), 693 deletions(-) delete mode 100644 src/sdl12/SRB2WII/Makefile.cfg delete mode 100644 src/sdl12/SRB2WII/icon.png delete mode 100644 src/sdl12/SRB2WII/meta.xml diff --git a/src/Makefile b/src/Makefile index 3952c1743..4ecd26b4c 100644 --- a/src/Makefile +++ b/src/Makefile @@ -91,10 +91,6 @@ D_FILES=$(D_DIR)/srb2.srb \ PKG_CONFIG?=pkg-config -ifdef WIILINUX -LINUX=1 -endif - ifdef PANDORA LINUX=1 endif @@ -139,27 +135,12 @@ PNG_CFLAGS?= PNG_LDFLAGS?=-lpng endif -ifdef WIILINUX -NONX86=1 -NOTERMIOS=1 -NOHW=1 -CFLAGS+=-DWMINPUT -NOTERMIOS=1 -NOPOSTPROCESSING=1 -endif - ifdef PANDORA NONX86=1 NOHW=1 NOHS=1 endif -ifdef WII -NONX86=1 -NOHW=1 -NOPOSTPROCESSING=1 -endif - ifdef DJGPPDOS include djgppdos/Makefile.cfg endif @@ -520,10 +501,6 @@ ifdef DJGPPDOS all: pre-build $(BIN)/$(EXENAME) endif -ifdef WII -all: pre-build $(BIN)/$(DOLNAME) -endif - ifdef PANDORA all: pre-build $(BIN)/$(PNDNAME) endif diff --git a/src/Makefile.cfg b/src/Makefile.cfg index bf9aa5feb..3b90bd05a 100644 --- a/src/Makefile.cfg +++ b/src/Makefile.cfg @@ -211,7 +211,6 @@ endif #indicate platform and what interface use with ifndef WINCE -ifndef WII ifndef LINUX ifndef FREEBSD ifndef CYGWIN32 @@ -228,7 +227,6 @@ endif endif endif endif -endif #determine the interface directory (where you put all i_*.c) i_cdmus_o=$(OBJDIR)/i_cdmus.o @@ -316,18 +314,6 @@ ifdef MINGW64 OBJDIR:=$(OBJDIR)/Mingw64 BIN:=$(BIN)/Mingw64 else -ifdef WII - INTERFACE=sdl12 - NONX86=1 - STATIC=1 - PREFIX?=powerpc-eabi - SDL=1 - SDL12=1 - SDLMAIN=1 - OBJDIR:=$(OBJDIR)/Wii - BIN:=$(BIN)/Wii - NOUPX=1 -else ifdef MINGW INTERFACE=win32 NASMFORMAT=win32 @@ -358,7 +344,6 @@ endif endif endif endif -endif ifdef GP2X ifdef SDL diff --git a/src/console.c b/src/console.c index 7dd82e282..ed3edbc55 100644 --- a/src/console.c +++ b/src/console.c @@ -326,12 +326,7 @@ static void CON_SetupColormaps(void) // Setup the console text buffer // -// for WII, libogc already has a CON_Init function, we must rename it here -#ifdef _WII -void CON_InitWii(void) -#else void CON_Init(void) -#endif { INT32 i; diff --git a/src/console.h b/src/console.h index 8cf6483ff..1e510e89a 100644 --- a/src/console.h +++ b/src/console.h @@ -13,11 +13,7 @@ #include "d_event.h" #include "command.h" -#ifdef _WII -void CON_InitWii(void); -#else void CON_Init(void); -#endif boolean CON_Responder(event_t *ev); diff --git a/src/d_main.c b/src/d_main.c index 39188d7cd..1d8934ca9 100644 --- a/src/d_main.c +++ b/src/d_main.c @@ -1182,12 +1182,7 @@ void D_SRB2Main(void) HU_Init(); COM_Init(); - // libogc has a CON_Init function, we must rename SRB2's CON_Init in WII/libogc -#ifndef _WII CON_Init(); -#else - CON_InitWii(); -#endif D_RegisterServerCommands(); D_RegisterClientCommands(); // be sure that this is called before D_CheckNetGame diff --git a/src/d_netcmd.c b/src/d_netcmd.c index 58c2d7acd..f7390c6b8 100644 --- a/src/d_netcmd.c +++ b/src/d_netcmd.c @@ -244,12 +244,7 @@ INT32 cv_debug; consvar_t cv_usemouse = {"use_mouse", "On", CV_SAVE|CV_CALL,usemouse_cons_t, I_StartupMouse, 0, NULL, NULL, 0, 0, NULL}; consvar_t cv_usemouse2 = {"use_mouse2", "Off", CV_SAVE|CV_CALL,usemouse_cons_t, I_StartupMouse2, 0, NULL, NULL, 0, 0, NULL}; -#if defined (WMINPUT) || defined (_WII) //joystick 1 and 2 -consvar_t cv_usejoystick = {"use_joystick", "1", CV_SAVE|CV_CALL, usejoystick_cons_t, - I_InitJoystick, 0, NULL, NULL, 0, 0, NULL}; -consvar_t cv_usejoystick2 = {"use_joystick2", "2", CV_SAVE|CV_CALL, usejoystick_cons_t, - I_InitJoystick2, 0, NULL, NULL, 0, 0, NULL}; -#elif defined (GP2X) || defined (_NDS) //only one joystick +#if defined (GP2X) || defined (_NDS) //only one joystick consvar_t cv_usejoystick = {"use_joystick", "1", CV_SAVE|CV_CALL, usejoystick_cons_t, I_InitJoystick, 0, NULL, NULL, 0, 0, NULL}; consvar_t cv_usejoystick2 = {"use_joystick2", "0", CV_SAVE|CV_CALL, usejoystick_cons_t, diff --git a/src/doomdef.h b/src/doomdef.h index 1d2b941e0..26bbea985 100644 --- a/src/doomdef.h +++ b/src/doomdef.h @@ -381,7 +381,7 @@ enum { }; // Name of local directory for config files and savegames -#if !defined(_WIN32_WCE) && !defined(GP2X) && !defined(_WII) +#if !defined(_WIN32_WCE) && !defined(GP2X) #if (((defined (__unix__) && !defined (MSDOS)) || defined (UNIXCOMMON)) && !defined (__CYGWIN__)) && !defined (__APPLE__) #define DEFAULTDIR ".srb2" #else diff --git a/src/doomtype.h b/src/doomtype.h index 618e5665a..bbaa08783 100644 --- a/src/doomtype.h +++ b/src/doomtype.h @@ -139,7 +139,7 @@ typedef long ssize_t; #endif #endif //macintosh -#if defined (PC_DOS) || defined (_WIN32) || defined (_WII) || defined (__HAIKU__) || defined(_NDS) +#if defined (PC_DOS) || defined (_WIN32) || defined (__HAIKU__) || defined(_NDS) #define HAVE_DOSSTR_FUNCS #endif diff --git a/src/g_game.c b/src/g_game.c index 7e667cc05..991a828cb 100644 --- a/src/g_game.c +++ b/src/g_game.c @@ -302,35 +302,6 @@ void SendWeaponPref2(void); static CV_PossibleValue_t crosshair_cons_t[] = {{0, "Off"}, {1, "Cross"}, {2, "Angle"}, {3, "Point"}, {0, NULL}}; static CV_PossibleValue_t joyaxis_cons_t[] = {{0, "None"}, -#ifdef _WII -{1, "LStick.X"}, {2, "LStick.Y"}, {-1, "LStick.X-"}, {-2, "LStick.Y-"}, -#if JOYAXISSET > 1 -{3, "RStick.X"}, {4, "RStick.Y"}, {-3, "RStick.X-"}, {-4, "RStick.Y-"}, -#endif -#if JOYAXISSET > 2 -{5, "RTrigger"}, {6, "LTrigger"}, {-5, "RTrigger-"}, {-6, "LTrigger-"}, -#endif -#if JOYAXISSET > 3 -{7, "Pitch"}, {8, "Roll"}, {-7, "Pitch-"}, {-8, "Roll-"}, -#endif -#if JOYAXISSET > 4 -{7, "Yaw"}, {8, "Dummy"}, {-7, "Yaw-"}, {-8, "Dummy-"}, -#endif -#if JOYAXISSET > 4 -{9, "LAnalog"}, {10, "RAnalog"}, {-9, "LAnalog-"}, {-10, "RAnalog-"}, -#endif -#elif defined (WMINPUT) -{1, "LStick.X"}, {2, "LStick.Y"}, {-1, "LStick.X-"}, {-2, "LStick.Y-"}, -#if JOYAXISSET > 1 -{3, "RStick.X"}, {4, "RStick.Y"}, {-3, "RStick.X-"}, {-4, "RStick.Y-"}, -#endif -#if JOYAXISSET > 2 -{5, "NStick.X"}, {6, "NStick.Y"}, {-5, "NStick.X-"}, {-6, "NStick.Y-"}, -#endif -#if JOYAXISSET > 3 -{7, "LAnalog"}, {8, "RAnalog"}, {-7, "LAnalog-"}, {-8, "RAnalog-"}, -#endif -#else {1, "X-Axis"}, {2, "Y-Axis"}, {-1, "X-Axis-"}, {-2, "Y-Axis-"}, #if JOYAXISSET > 1 {3, "Z-Axis"}, {4, "X-Rudder"}, {-3, "Z-Axis-"}, {-4, "X-Rudder-"}, @@ -340,18 +311,11 @@ static CV_PossibleValue_t joyaxis_cons_t[] = {{0, "None"}, #endif #if JOYAXISSET > 3 {7, "U-Axis"}, {8, "V-Axis"}, {-7, "U-Axis-"}, {-8, "V-Axis-"}, -#endif #endif {0, NULL}}; -#ifdef _WII -#if JOYAXISSET > 5 -"More Axis Sets" -#endif -#else #if JOYAXISSET > 4 "More Axis Sets" #endif -#endif consvar_t cv_crosshair = {"crosshair", "Cross", CV_SAVE, crosshair_cons_t, NULL, 0, NULL, NULL, 0, 0, NULL}; consvar_t cv_crosshair2 = {"crosshair2", "Cross", CV_SAVE, crosshair_cons_t, NULL, 0, NULL, NULL, 0, 0, NULL}; @@ -386,38 +350,19 @@ typedef enum AXISFIRENORMAL, } axis_input_e; -#if defined (_WII) || defined (WMINPUT) -consvar_t cv_turnaxis = {"joyaxis_turn", "LStick.X", CV_SAVE, joyaxis_cons_t, NULL, 0, NULL, NULL, 0, 0, NULL}; -consvar_t cv_moveaxis = {"joyaxis_move", "LStick.Y", CV_SAVE, joyaxis_cons_t, NULL, 0, NULL, NULL, 0, 0, NULL}; -consvar_t cv_sideaxis = {"joyaxis_side", "RStick.X", CV_SAVE, joyaxis_cons_t, NULL, 0, NULL, NULL, 0, 0, NULL}; -consvar_t cv_lookaxis = {"joyaxis_look", "RStick.Y", CV_SAVE, joyaxis_cons_t, NULL, 0, NULL, NULL, 0, 0, NULL}; -consvar_t cv_fireaxis = {"joyaxis_fire", "LAnalog", CV_SAVE, joyaxis_cons_t, NULL, 0, NULL, NULL, 0, 0, NULL}; -consvar_t cv_firenaxis = {"joyaxis_firenormal", "RAnalog", CV_SAVE, joyaxis_cons_t, NULL, 0, NULL, NULL, 0, 0, NULL}; -#else consvar_t cv_turnaxis = {"joyaxis_turn", "X-Axis", CV_SAVE, joyaxis_cons_t, NULL, 0, NULL, NULL, 0, 0, NULL}; consvar_t cv_moveaxis = {"joyaxis_move", "Y-Axis", CV_SAVE, joyaxis_cons_t, NULL, 0, NULL, NULL, 0, 0, NULL}; consvar_t cv_sideaxis = {"joyaxis_side", "Z-Axis", CV_SAVE, joyaxis_cons_t, NULL, 0, NULL, NULL, 0, 0, NULL}; consvar_t cv_lookaxis = {"joyaxis_look", "None", CV_SAVE, joyaxis_cons_t, NULL, 0, NULL, NULL, 0, 0, NULL}; consvar_t cv_fireaxis = {"joyaxis_fire", "None", CV_SAVE, joyaxis_cons_t, NULL, 0, NULL, NULL, 0, 0, NULL}; consvar_t cv_firenaxis = {"joyaxis_firenormal", "None", CV_SAVE, joyaxis_cons_t, NULL, 0, NULL, NULL, 0, 0, NULL}; -#endif -#if defined (_WII) || defined (WMINPUT) -consvar_t cv_turnaxis2 = {"joyaxis2_turn", "LStick.X", CV_SAVE, joyaxis_cons_t, NULL, 0, NULL, NULL, 0, 0, NULL}; -consvar_t cv_moveaxis2 = {"joyaxis2_move", "LStick.Y", CV_SAVE, joyaxis_cons_t, NULL, 0, NULL, NULL, 0, 0, NULL}; -consvar_t cv_sideaxis2 = {"joyaxis2_side", "RStick.X", CV_SAVE, joyaxis_cons_t, NULL, 0, NULL, NULL, 0, 0, NULL}; -consvar_t cv_lookaxis2 = {"joyaxis2_look", "RStick.Y", CV_SAVE, joyaxis_cons_t, NULL, 0, NULL, NULL, 0, 0, NULL}; -consvar_t cv_fireaxis2 = {"joyaxis2_fire", "LAnalog", CV_SAVE, joyaxis_cons_t, NULL, 0, NULL, NULL, 0, 0, NULL}; -consvar_t cv_firenaxis2 = {"joyaxis2_firenormal", "RAnalog", CV_SAVE, joyaxis_cons_t, NULL, 0, NULL, NULL, 0, 0, NULL}; -#else consvar_t cv_turnaxis2 = {"joyaxis2_turn", "X-Axis", CV_SAVE, joyaxis_cons_t, NULL, 0, NULL, NULL, 0, 0, NULL}; consvar_t cv_moveaxis2 = {"joyaxis2_move", "Y-Axis", CV_SAVE, joyaxis_cons_t, NULL, 0, NULL, NULL, 0, 0, NULL}; consvar_t cv_sideaxis2 = {"joyaxis2_side", "Z-Axis", CV_SAVE, joyaxis_cons_t, NULL, 0, NULL, NULL, 0, 0, NULL}; consvar_t cv_lookaxis2 = {"joyaxis2_look", "None", CV_SAVE, joyaxis_cons_t, NULL, 0, NULL, NULL, 0, 0, NULL}; consvar_t cv_fireaxis2 = {"joyaxis2_fire", "None", CV_SAVE, joyaxis_cons_t, NULL, 0, NULL, NULL, 0, 0, NULL}; consvar_t cv_firenaxis2 = {"joyaxis2_firenormal", "None", CV_SAVE, joyaxis_cons_t, NULL, 0, NULL, NULL, 0, 0, NULL}; -#endif - #if MAXPLAYERS > 32 #error "please update player_name table using the new value for MAXPLAYERS" diff --git a/src/g_input.c b/src/g_input.c index 3dcf01c00..39e59f9d8 100644 --- a/src/g_input.c +++ b/src/g_input.c @@ -268,23 +268,19 @@ static keyname_t keynames[] = {KEY_MOUSE1+0,"MOUSE1"}, {KEY_MOUSE1+1,"MOUSE2"}, {KEY_MOUSE1+2,"MOUSE3"}, -#if !defined (_WII) {KEY_MOUSE1+3,"MOUSE4"}, {KEY_MOUSE1+4,"MOUSE5"}, {KEY_MOUSE1+5,"MOUSE6"}, {KEY_MOUSE1+6,"MOUSE7"}, {KEY_MOUSE1+7,"MOUSE8"}, -#endif {KEY_2MOUSE1+0,"SEC_MOUSE2"}, // BP: sorry my mouse handler swap button 1 and 2 {KEY_2MOUSE1+1,"SEC_MOUSE1"}, {KEY_2MOUSE1+2,"SEC_MOUSE3"}, -#if !defined (_WII) {KEY_2MOUSE1+3,"SEC_MOUSE4"}, {KEY_2MOUSE1+4,"SEC_MOUSE5"}, {KEY_2MOUSE1+5,"SEC_MOUSE6"}, {KEY_2MOUSE1+6,"SEC_MOUSE7"}, {KEY_2MOUSE1+7,"SEC_MOUSE8"}, -#endif {KEY_MOUSEWHEELUP, "Wheel 1 UP"}, {KEY_MOUSEWHEELDOWN, "Wheel 1 Down"}, {KEY_2MOUSEWHEELUP, "Wheel 2 UP"}, @@ -310,62 +306,6 @@ static keyname_t keynames[] = {KEY_JOY1+6, "JOYSTART"}, {KEY_JOY1+7, "JOYSELECT"}, #define NOMOREJOYBTN_1S -#elif defined (WMINPUT) - {KEY_JOY1+0, "JOYB"}, - {KEY_JOY1+1, "JOYA"}, - {KEY_JOY1+2, "JOYUP"}, - {KEY_JOY1+3, "JOYDOWN"}, - {KEY_JOY1+4, "JOYLEFT"}, - {KEY_JOY1+5, "JOYRIGHT"}, - {KEY_JOY1+6, "JOYAA"}, - {KEY_JOY1+7, "JOYBB"}, - {KEY_JOY1+8, "JOYCC"}, - {KEY_JOY1+9, "JOYXX"}, - {KEY_JOY1+10, "JOYYY"}, - {KEY_JOY1+11, "JOYZZ"}, - {KEY_JOY1+12, "JOYL"}, - {KEY_JOY1+13, "JOYR"}, - {KEY_JOY1+14, "JOYZL"}, - {KEY_JOY1+15, "JOYZR"}, - {KEY_JOY1+16, "JOYSELECT"}, - {KEY_JOY1+17, "JOYSTART"}, - {KEY_JOY1+18, "JOYHOME"}, - {KEY_JOY1+19, "JOYMINUS"}, - {KEY_JOY1+20, "JOYPLUS"}, - {KEY_JOY1+21, "JOY_1"}, - {KEY_JOY1+22, "JOY_2"}, - {KEY_JOY1+23, "JOY24"}, - {KEY_JOY1+24, "JOY25"}, - {KEY_JOY1+25, "JOY26"}, - {KEY_JOY1+26, "JOY27"}, - {KEY_JOY1+27, "JOY28"}, - {KEY_JOY1+28, "JOY29"}, - {KEY_JOY1+29, "JOY30"}, - {KEY_JOY1+30, "JOY31"}, - {KEY_JOY1+31, "JOY32"}, -#define NOMOREJOYBTN_1S -#elif defined (_WII) - {KEY_JOY1+0, "JOYA"}, - {KEY_JOY1+1, "JOYB"}, - {KEY_JOY1+2, "JOY1"}, - {KEY_JOY1+3, "JOY2"}, - {KEY_JOY1+4, "JOYMINUS"}, - {KEY_JOY1+5, "JOYPLUS"}, - {KEY_JOY1+6, "JOYHOME"}, - {KEY_JOY1+7, "JOYZ"}, - {KEY_JOY1+8, "JOYC"}, - {KEY_JOY1+9, "JOYA_CC"}, - {KEY_JOY1+10, "JOYB_CC"}, - {KEY_JOY1+11, "JOYX"}, - {KEY_JOY1+12, "JOYY"}, - {KEY_JOY1+13, "JOYL"}, - {KEY_JOY1+14, "JOYR"}, - {KEY_JOY1+15, "JOYZL"}, - {KEY_JOY1+16, "JOYZR"}, - {KEY_JOY1+17, "JOYMINUS_CC"}, - {KEY_JOY1+18, "JOYHPLUS_CC"}, - {KEY_JOY1+19, "JOYMHOME_CC"}, -#define NOMOREJOYBTN_1S #else {KEY_JOY1+0, "JOY1"}, {KEY_JOY1+1, "JOY2"}, @@ -408,7 +348,6 @@ static keyname_t keynames[] = {KEY_HAT1+1, "HATDOWN"}, {KEY_HAT1+2, "HATLEFT"}, {KEY_HAT1+3, "HATRIGHT"}, -#if !defined (_WII) {KEY_HAT1+4, "HATUP2"}, {KEY_HAT1+5, "HATDOWN2"}, {KEY_HAT1+6, "HATLEFT2"}, @@ -421,28 +360,23 @@ static keyname_t keynames[] = {KEY_HAT1+13, "HATDOWN4"}, {KEY_HAT1+14, "HATLEFT4"}, {KEY_HAT1+15, "HATRIGHT4"}, -#endif {KEY_DBLMOUSE1+0, "DBLMOUSE1"}, {KEY_DBLMOUSE1+1, "DBLMOUSE2"}, {KEY_DBLMOUSE1+2, "DBLMOUSE3"}, -#if !defined (_WII) {KEY_DBLMOUSE1+3, "DBLMOUSE4"}, {KEY_DBLMOUSE1+4, "DBLMOUSE5"}, {KEY_DBLMOUSE1+5, "DBLMOUSE6"}, {KEY_DBLMOUSE1+6, "DBLMOUSE7"}, {KEY_DBLMOUSE1+7, "DBLMOUSE8"}, -#endif {KEY_DBL2MOUSE1+0, "DBLSEC_MOUSE2"}, // BP: sorry my mouse handler swap button 1 and 2 {KEY_DBL2MOUSE1+1, "DBLSEC_MOUSE1"}, {KEY_DBL2MOUSE1+2, "DBLSEC_MOUSE3"}, -#if !defined (_WII) {KEY_DBL2MOUSE1+3, "DBLSEC_MOUSE4"}, {KEY_DBL2MOUSE1+4, "DBLSEC_MOUSE5"}, {KEY_DBL2MOUSE1+5, "DBLSEC_MOUSE6"}, {KEY_DBL2MOUSE1+6, "DBLSEC_MOUSE7"}, {KEY_DBL2MOUSE1+7, "DBLSEC_MOUSE8"}, -#endif #if defined (GP2X) {KEY_DBLJOY1+0, "DBLJOYA"}, @@ -465,62 +399,6 @@ static keyname_t keynames[] = {KEY_DBLJOY1+6, "DBLJOYSTART"}, {KEY_DBLJOY1+7, "DBLJOYSELECT"}, #define NOMOREJOYBTN_1DBL -#elif defined (WMINPUT) - {KEY_DBLJOY1+0, "DBLJOYB"}, - {KEY_DBLJOY1+1, "DBLJOYA"}, - {KEY_DBLJOY1+2, "DBLJOYUP"}, - {KEY_DBLJOY1+3, "DBLJOYDOWN"}, - {KEY_DBLJOY1+4, "DBLJOYLEFT"}, - {KEY_DBLJOY1+5, "DBLJOYRIGHT"}, - {KEY_DBLJOY1+6, "DBLJOYAA"}, - {KEY_DBLJOY1+7, "DBLJOYBB"}, - {KEY_DBLJOY1+8, "DBLJOYCC"}, - {KEY_DBLJOY1+9, "DBLJOYXX"}, - {KEY_DBLJOY1+10, "DBLJOYYY"}, - {KEY_DBLJOY1+11, "DBLJOYZZ"}, - {KEY_DBLJOY1+12, "DBLJOYL"}, - {KEY_DBLJOY1+13, "DBLJOYR"}, - {KEY_DBLJOY1+14, "DBLJOYZL"}, - {KEY_DBLJOY1+15, "DBLJOYZR"}, - {KEY_DBLJOY1+16, "DBLJOYSELECT"}, - {KEY_DBLJOY1+17, "DBLJOYSTART"}, - {KEY_DBLJOY1+18, "DBLJOYHOME"}, - {KEY_DBLJOY1+19, "DBLJOYMINUS"}, - {KEY_DBLJOY1+20, "DBLJOYPLUS"}, - {KEY_DBLJOY1+21, "DBLJOY_1"}, - {KEY_DBLJOY1+22, "DBLJOY_2"}, - {KEY_DBLJOY1+23, "DBLJOY24"}, - {KEY_DBLJOY1+24, "DBLJOY25"}, - {KEY_DBLJOY1+25, "DBLJOY26"}, - {KEY_DBLJOY1+26, "DBLJOY27"}, - {KEY_DBLJOY1+27, "DBLJOY28"}, - {KEY_DBLJOY1+28, "DBLJOY29"}, - {KEY_DBLJOY1+29, "DBLJOY30"}, - {KEY_DBLJOY1+30, "DBLJOY31"}, - {KEY_DBLJOY1+31, "DBLJOY32"}, -#define NOMOREJOYBTN_1DBL -#elif defined (_WII) - {KEY_DBLJOY1+0, "DBLJOYA"}, - {KEY_DBLJOY1+1, "DBLJOYB"}, - {KEY_DBLJOY1+2, "DBLJOY1"}, - {KEY_DBLJOY1+3, "DBLJOY2"}, - {KEY_DBLJOY1+4, "DBLJOYMINUS"}, - {KEY_DBLJOY1+5, "DBLJOYPLUS"}, - {KEY_DBLJOY1+6, "DBLJOYHOME"}, - {KEY_DBLJOY1+7, "DBLJOYZ"}, - {KEY_DBLJOY1+8, "DBLJOYC"}, - {KEY_DBLJOY1+9, "DBLJOYA_CC"}, - {KEY_DBLJOY1+10, "DBLJOYB_CC"}, - {KEY_DBLJOY1+11, "DBLJOYX"}, - {KEY_DBLJOY1+12, "DBLJOYY"}, - {KEY_DBLJOY1+13, "DBLJOYL"}, - {KEY_DBLJOY1+14, "DBLJOYR"}, - {KEY_DBLJOY1+15, "DBLJOYZL"}, - {KEY_DBLJOY1+16, "DBLJOYZR"}, - {KEY_DBLJOY1+17, "DBLJOYMINUS_CC"}, - {KEY_DBLJOY1+18, "DBLJOYHPLUS_CC"}, - {KEY_DBLJOY1+19, "DBLJOYMHOME_CC"}, -#define NOMOREJOYBTN_1DBL #else {KEY_DBLJOY1+0, "DBLJOY1"}, {KEY_DBLJOY1+1, "DBLJOY2"}, @@ -561,7 +439,6 @@ static keyname_t keynames[] = {KEY_DBLHAT1+1, "DBLHATDOWN"}, {KEY_DBLHAT1+2, "DBLHATLEFT"}, {KEY_DBLHAT1+3, "DBLHATRIGHT"}, -#if !defined (_WII) {KEY_DBLHAT1+4, "DBLHATUP2"}, {KEY_DBLHAT1+5, "DBLHATDOWN2"}, {KEY_DBLHAT1+6, "DBLHATLEFT2"}, @@ -574,65 +451,7 @@ static keyname_t keynames[] = {KEY_DBLHAT1+13, "DBLHATDOWN4"}, {KEY_DBLHAT1+14, "DBLHATLEFT4"}, {KEY_DBLHAT1+15, "DBLHATRIGHT4"}, -#endif -#if defined (WMINPUT) - {KEY_2JOY1+0, "SEC_JOYB"}, - {KEY_2JOY1+1, "SEC_JOYA"}, - {KEY_2JOY1+2, "SEC_JOYUP"}, - {KEY_2JOY1+3, "SEC_JOYDOWN"}, - {KEY_2JOY1+4, "SEC_JOYLEFT"}, - {KEY_2JOY1+5, "SEC_JOYRIGHT"}, - {KEY_2JOY1+6, "SEC_JOYAA"}, - {KEY_2JOY1+7, "SEC_JOYBB"}, - {KEY_2JOY1+8, "SEC_JOYCC"}, - {KEY_2JOY1+9, "SEC_JOYXX"}, - {KEY_2JOY1+10, "SEC_JOYYY"}, - {KEY_2JOY1+11, "SEC_JOYZZ"}, - {KEY_2JOY1+12, "SEC_JOYL"}, - {KEY_2JOY1+13, "SEC_JOYR"}, - {KEY_2JOY1+14, "SEC_JOYZL"}, - {KEY_2JOY1+15, "SEC_JOYZR"}, - {KEY_2JOY1+16, "SEC_JOYSELECT"}, - {KEY_2JOY1+17, "SEC_JOYSTART"}, - {KEY_2JOY1+18, "SEC_JOYHOME"}, - {KEY_2JOY1+19, "SEC_JOYMINUS"}, - {KEY_2JOY1+20, "SEC_JOYPLUS"}, - {KEY_2JOY1+21, "SEC_JOY_1"}, - {KEY_2JOY1+22, "SEC_JOY_2"}, - {KEY_2JOY1+23, "SEC_JOY24"}, - {KEY_2JOY1+24, "SEC_JOY25"}, - {KEY_2JOY1+25, "SEC_JOY26"}, - {KEY_2JOY1+26, "SEC_JOY27"}, - {KEY_2JOY1+27, "SEC_JOY28"}, - {KEY_2JOY1+28, "SEC_JOY29"}, - {KEY_2JOY1+29, "SEC_JOY30"}, - {KEY_2JOY1+30, "SEC_JOY31"}, - {KEY_2JOY1+31, "SEC_JOY32"}, -#define NOMOREJOYBTN_2S -#elif defined (_WII) - {KEY_2JOY1+0, "SEC_JOYA"}, - {KEY_2JOY1+1, "SEC_JOYB"}, - {KEY_2JOY1+2, "SEC_JOY1"}, - {KEY_2JOY1+3, "SEC_JOY2"}, - {KEY_2JOY1+4, "SEC_JOYMINUS"}, - {KEY_2JOY1+5, "SEC_JOYPLUS"}, - {KEY_2JOY1+6, "SEC_JOYHOME"}, - {KEY_2JOY1+7, "SEC_JOYZ"}, - {KEY_2JOY1+8, "SEC_JOYC"}, - {KEY_2JOY1+9, "SEC_JOYA_CC"}, - {KEY_2JOY1+10, "SEC_JOYB_CC"}, - {KEY_2JOY1+11, "SEC_JOYX"}, - {KEY_2JOY1+12, "SEC_JOYY"}, - {KEY_2JOY1+13, "SEC_JOYL"}, - {KEY_2JOY1+14, "SEC_JOYR"}, - {KEY_2JOY1+15, "SEC_JOYZL"}, - {KEY_2JOY1+16, "SEC_JOYZR"}, - {KEY_2JOY1+17, "SEC_JOYMINUS_CC"}, - {KEY_2JOY1+18, "SEC_JOYHPLUS_CC"}, - {KEY_2JOY1+19, "SEC_JOYMHOME_CC"}, -#define NOMOREJOYBTN_2S -#else {KEY_2JOY1+0, "SEC_JOY1"}, {KEY_2JOY1+1, "SEC_JOY2"}, {KEY_2JOY1+2, "SEC_JOY3"}, @@ -641,7 +460,6 @@ static keyname_t keynames[] = {KEY_2JOY1+5, "SEC_JOY6"}, {KEY_2JOY1+6, "SEC_JOY7"}, {KEY_2JOY1+7, "SEC_JOY8"}, -#endif #if !defined (NOMOREJOYBTN_2S) // we use up to 32 buttons in DirectInput {KEY_2JOY1+8, "SEC_JOY9"}, @@ -674,7 +492,6 @@ static keyname_t keynames[] = {KEY_2HAT1+1, "SEC_HATDOWN"}, {KEY_2HAT1+2, "SEC_HATLEFT"}, {KEY_2HAT1+3, "SEC_HATRIGHT"}, -#if !defined (_WII) {KEY_2HAT1+4, "SEC_HATUP2"}, {KEY_2HAT1+5, "SEC_HATDOWN2"}, {KEY_2HAT1+6, "SEC_HATLEFT2"}, @@ -687,65 +504,7 @@ static keyname_t keynames[] = {KEY_2HAT1+13, "SEC_HATDOWN4"}, {KEY_2HAT1+14, "SEC_HATLEFT4"}, {KEY_2HAT1+15, "SEC_HATRIGHT4"}, -#endif -#if defined (WMINPUT) - {KEY_DBL2JOY1+0, "DBLSEC_JOYB"}, - {KEY_DBL2JOY1+1, "DBLSEC_JOYA"}, - {KEY_DBL2JOY1+2, "DBLSEC_JOYUP"}, - {KEY_DBL2JOY1+3, "DBLSEC_JOYDOWN"}, - {KEY_DBL2JOY1+4, "DBLSEC_JOYLEFT"}, - {KEY_DBL2JOY1+5, "DBLSEC_JOYRIGHT"}, - {KEY_DBL2JOY1+6, "DBLSEC_JOYAA"}, - {KEY_DBL2JOY1+7, "DBLSEC_JOYBB"}, - {KEY_DBL2JOY1+8, "DBLSEC_JOYCC"}, - {KEY_DBL2JOY1+9, "DBLSEC_JOYXX"}, - {KEY_DBL2JOY1+10, "DBLSEC_JOYYY"}, - {KEY_DBL2JOY1+11, "DBLSEC_JOYZZ"}, - {KEY_DBL2JOY1+12, "DBLSEC_JOYL"}, - {KEY_DBL2JOY1+13, "DBLSEC_JOYR"}, - {KEY_DBL2JOY1+14, "DBLSEC_JOYZL"}, - {KEY_DBL2JOY1+15, "DBLSEC_JOYZR"}, - {KEY_DBL2JOY1+16, "DBLSEC_JOYSELECT"}, - {KEY_DBL2JOY1+17, "DBLSEC_JOYSTART"}, - {KEY_DBL2JOY1+18, "DBLSEC_JOYHOME"}, - {KEY_DBL2JOY1+19, "DBLSEC_JOYMINUS"}, - {KEY_DBL2JOY1+20, "DBLSEC_JOYPLUS"}, - {KEY_DBL2JOY1+21, "DBLSEC_JOY_1"}, - {KEY_DBL2JOY1+22, "DBLSEC_JOY_2"}, - {KEY_DBL2JOY1+23, "DBLSEC_JOY24"}, - {KEY_DBL2JOY1+24, "DBLSEC_JOY25"}, - {KEY_DBL2JOY1+25, "DBLSEC_JOY26"}, - {KEY_DBL2JOY1+26, "DBLSEC_JOY27"}, - {KEY_DBL2JOY1+27, "DBLSEC_JOY28"}, - {KEY_DBL2JOY1+28, "DBLSEC_JOY29"}, - {KEY_DBL2JOY1+29, "DBLSEC_JOY30"}, - {KEY_DBL2JOY1+30, "DBLSEC_JOY31"}, - {KEY_DBL2JOY1+31, "DBLSEC_JOY32"}, -#define NOMOREJOYBTN_2SDBL -#elif defined (_WII) - {KEY_DBL2JOY1+0, "DBLSEC_JOYA"}, - {KEY_DBL2JOY1+1, "DBLSEC_JOYB"}, - {KEY_DBL2JOY1+2, "DBLSEC_JOY1"}, - {KEY_DBL2JOY1+3, "DBLSEC_JOY2"}, - {KEY_DBL2JOY1+4, "DBLSEC_JOYMINUS"}, - {KEY_DBL2JOY1+5, "DBLSEC_JOYPLUS"}, - {KEY_DBL2JOY1+6, "DBLSEC_JOYHOME"}, - {KEY_DBL2JOY1+7, "DBLSEC_JOYZ"}, - {KEY_DBL2JOY1+8, "DBLSEC_JOYC"}, - {KEY_DBL2JOY1+9, "DBLSEC_JOYA_CC"}, - {KEY_DBL2JOY1+10, "DBLSEC_JOYB_CC"}, - {KEY_DBL2JOY1+11, "DBLSEC_JOYX"}, - {KEY_DBL2JOY1+12, "DBLSEC_JOYY"}, - {KEY_DBL2JOY1+13, "DBLSEC_JOYL"}, - {KEY_DBL2JOY1+14, "DBLSEC_JOYR"}, - {KEY_DBL2JOY1+15, "DBLSEC_JOYZL"}, - {KEY_DBL2JOY1+16, "DBLSEC_JOYZR"}, - {KEY_DBL2JOY1+17, "DBLSEC_JOYMINUS_CC"}, - {KEY_DBL2JOY1+18, "DBLSEC_JOYHPLUS_CC"}, - {KEY_DBL2JOY1+19, "DBLSEC_JOYMHOME_CC"}, -#define NOMOREJOYBTN_2DBL -#else {KEY_DBL2JOY1+0, "DBLSEC_JOY1"}, {KEY_DBL2JOY1+1, "DBLSEC_JOY2"}, {KEY_DBL2JOY1+2, "DBLSEC_JOY3"}, @@ -754,7 +513,6 @@ static keyname_t keynames[] = {KEY_DBL2JOY1+5, "DBLSEC_JOY6"}, {KEY_DBL2JOY1+6, "DBLSEC_JOY7"}, {KEY_DBL2JOY1+7, "DBLSEC_JOY8"}, -#endif #if !defined (NOMOREJOYBTN_2DBL) {KEY_DBL2JOY1+8, "DBLSEC_JOY9"}, {KEY_DBL2JOY1+9, "DBLSEC_JOY10"}, @@ -785,7 +543,6 @@ static keyname_t keynames[] = {KEY_DBL2HAT1+1, "DBLSEC_HATDOWN"}, {KEY_DBL2HAT1+2, "DBLSEC_HATLEFT"}, {KEY_DBL2HAT1+3, "DBLSEC_HATRIGHT"}, -#if !defined (_WII) {KEY_DBL2HAT1+4, "DBLSEC_HATUP2"}, {KEY_DBL2HAT1+5, "DBLSEC_HATDOWN2"}, {KEY_DBL2HAT1+6, "DBLSEC_HATLEFT2"}, @@ -798,7 +555,6 @@ static keyname_t keynames[] = {KEY_DBL2HAT1+13, "DBLSEC_HATDOWN4"}, {KEY_DBL2HAT1+14, "DBLSEC_HATLEFT4"}, {KEY_DBL2HAT1+15, "DBLSEC_HATRIGHT4"}, -#endif }; @@ -965,78 +721,6 @@ void G_Controldefault(void) gamecontrol[gc_jump ][0] = KEY_SPACE; gamecontrol[gc_console ][0] = KEY_CONSOLE; gamecontrol[gc_pause ][0] = KEY_PAUSE; -#ifdef WMINPUT - gamecontrol[gc_forward ][0] = KEY_JOY1+02; //UP - gamecontrol[gc_backward ][0] = KEY_JOY1+03; //DOWN - gamecontrol[gc_turnleft ][0] = KEY_JOY1+04; //LEFT - gamecontrol[gc_turnright ][0] = KEY_JOY1+05; //RIGHT - gamecontrol[gc_weaponnext ][0] = KEY_JOY1+10; //y - gamecontrol[gc_weaponprev ][0] = KEY_JOY1+9; //x - gamecontrol[gc_fire ][0] = KEY_JOY1+12; //L - gamecontrol[gc_firenormal ][0] = KEY_JOY1+13; //R - gamecontrol[gc_use ][0] = KEY_JOY1+00; //B - gamecontrol[gc_use ][1] = KEY_JOY1+07; //b - gamecontrol[gc_jump ][0] = KEY_JOY1+01; //A - gamecontrol[gc_jump ][1] = KEY_JOY1+06; //a - gamecontrol[gc_pause ][0] = KEY_JOY1+18; //Home - gamecontrolbis[gc_forward ][0] = KEY_2JOY1+02; //UP - gamecontrolbis[gc_backward ][0] = KEY_2JOY1+03; //DOWN - gamecontrolbis[gc_turnleft ][0] = KEY_2JOY1+04; //LEFT - gamecontrolbis[gc_turnright ][0] = KEY_2JOY1+05; //RIGHT - gamecontrolbis[gc_weaponnext ][0] = KEY_2JOY1+10; //y - gamecontrolbis[gc_weaponprev ][0] = KEY_2JOY1+9; //x - gamecontrolbis[gc_fire ][0] = KEY_2JOY1+12; //L - gamecontrolbis[gc_firenormal ][0] = KEY_2JOY1+13; //R - gamecontrolbis[gc_use ][0] = KEY_2JOY1+00; //B - gamecontrolbis[gc_use ][1] = KEY_2JOY1+07; //b - gamecontrolbis[gc_jump ][0] = KEY_2JOY1+01; //A - gamecontrolbis[gc_jump ][1] = KEY_2JOY1+06; //a - gamecontrolbis[gc_pause ][0] = KEY_2JOY1+18; //Home -#endif -#ifdef _WII - gamecontrol[gc_forward ][1] = KEY_HAT1+00; //UP - gamecontrol[gc_backward ][1] = KEY_HAT1+01; //DOWN - gamecontrol[gc_straferight][1] = KEY_JOY1+16; //ZR - gamecontrol[gc_strafeleft ][1] = KEY_JOY1+15; //ZL - gamecontrol[gc_turnleft ][1] = KEY_HAT1+02; //LEFT - gamecontrol[gc_turnright ][1] = KEY_HAT1+03; //RIGHT - gamecontrol[gc_weaponnext ][1] = KEY_JOY1+11; //x - gamecontrol[gc_fire ][0] = KEY_JOY1+12; //y - gamecontrol[gc_fire ][1] = KEY_JOY1+01; //B - gamecontrol[gc_firenormal ][0] = KEY_JOY1+13; //L - gamecontrol[gc_firenormal ][1] = KEY_JOY1+00; //A - gamecontrol[gc_tossflag ][1] = KEY_JOY1+17; //Plus CC - gamecontrol[gc_use ][0] = KEY_JOY1+9; //a - gamecontrol[gc_use ][1] = KEY_JOY1+02; //1 - gamecontrol[gc_centerview ][1] = KEY_JOY1+14; //R - gamecontrol[gc_scores ][0] = KEY_JOY1+04; //Minus - gamecontrol[gc_scores ][1] = KEY_JOY1+18; //Minus - gamecontrol[gc_jump ][0] = KEY_JOY1+10; //b - gamecontrol[gc_jump ][1] = KEY_JOY1+3; //2 - gamecontrol[gc_pause ][0] = KEY_JOY1+06; //Home - gamecontrol[gc_pause ][1] = KEY_JOY1+19; //Home - gamecontrolbis[gc_forward ][1] = KEY_2HAT1+00; //UP - gamecontrolbis[gc_backward ][1] = KEY_2HAT1+01; //DOWN - gamecontrolbis[gc_straferight][1] = KEY_2JOY1+16; //ZR - gamecontrolbis[gc_strafeleft ][1] = KEY_2JOY1+15; //ZL - gamecontrolbis[gc_turnleft ][1] = KEY_2HAT1+02; //LEFT - gamecontrolbis[gc_turnright ][1] = KEY_2HAT1+03; //RIGHT - gamecontrolbis[gc_weaponnext ][1] = KEY_2JOY1+11; //x - gamecontrolbis[gc_fire ][0] = KEY_2JOY1+12; //y - gamecontrolbis[gc_fire ][1] = KEY_2JOY1+01; //B - gamecontrolbis[gc_firenormal ][0] = KEY_2JOY1+13; //L - gamecontrolbis[gc_firenormal ][1] = KEY_2JOY1+00; //A - gamecontrolbis[gc_tossflag ][1] = KEY_2JOY1+17; //Plus CC - gamecontrolbis[gc_use ][0] = KEY_2JOY1+9; //a - gamecontrolbis[gc_use ][1] = KEY_2JOY1+02; //1 - gamecontrolbis[gc_centerview ][1] = KEY_2JOY1+14; //R - gamecontrolbis[gc_scores ][0] = KEY_2JOY1+04; //Minus - gamecontrolbis[gc_scores ][1] = KEY_2JOY1+18; //Minus - gamecontrolbis[gc_jump ][0] = KEY_2JOY1+10; //b - gamecontrolbis[gc_jump ][1] = KEY_2JOY1+3; //2 - gamecontrolbis[gc_pause ][0] = KEY_2JOY1+06; //Home - gamecontrolbis[gc_pause ][1] = KEY_2JOY1+19; //Home -#endif } #endif diff --git a/src/g_input.h b/src/g_input.h index 892ef9c7a..2a447c683 100644 --- a/src/g_input.h +++ b/src/g_input.h @@ -22,18 +22,10 @@ // keys (mousebuttons and joybuttons becomes keys) #define NUMKEYS 256 - -#if defined (_WII) -#define MOUSEBUTTONS 3 -#define JOYBUTTONS 20 // 20 buttons -#define JOYHATS 1 // 1 hat -#define JOYAXISSET 5 // 5 Sets of 2 axises -#else #define MOUSEBUTTONS 8 #define JOYBUTTONS 32 // 32 buttons #define JOYHATS 4 // 4 hats #define JOYAXISSET 4 // 4 Sets of 2 axises -#endif // // mouse and joystick buttons are handled as 'virtual' keys diff --git a/src/i_addrinfo.c b/src/i_addrinfo.c index 4634917be..712559ae6 100644 --- a/src/i_addrinfo.c +++ b/src/i_addrinfo.c @@ -20,7 +20,7 @@ #else #include #endif -#elif !defined (__DJGPP__) && !defined(_WII) +#elif !defined (__DJGPP__) #include #ifndef _NDS #include diff --git a/src/m_argv.c b/src/m_argv.c index e9b465991..213577e76 100644 --- a/src/m_argv.c +++ b/src/m_argv.c @@ -123,12 +123,7 @@ void M_PushSpecialParameters(void) } /// \brief max args - -#ifdef _WII -#define MAXARGVS 1 -#else #define MAXARGVS 256 -#endif /** \brief the M_FindResponseFile function Find a response file diff --git a/src/m_misc.c b/src/m_misc.c index 8928494c8..27d51736d 100644 --- a/src/m_misc.c +++ b/src/m_misc.c @@ -58,7 +58,7 @@ typedef off_t off64_t; #if defined (_WIN32) #define PRIdS "Iu" -#elif defined (DJGPP) || defined (_WII) || defined (_NDS) +#elif defined (DJGPP) || defined (_NDS) #define PRIdS "u" #else #define PRIdS "zu" @@ -67,12 +67,10 @@ typedef off_t off64_t; #ifdef HAVE_PNG #ifndef _MSC_VER -#ifndef _WII #ifndef _LARGEFILE64_SOURCE #define _LARGEFILE64_SOURCE #endif #endif -#endif #ifndef _LFS64_LARGEFILE #define _LFS64_LARGEFILE @@ -191,7 +189,7 @@ INT32 M_MapNumber(char first, char second) // ========================================================================== // some libcs has no access function, make our own -#if defined (_WIN32_WCE) || defined (_WII) +#if defined (_WIN32_WCE) int access(const char *path, int amode) { int accesshandle = -1; diff --git a/src/s_sound.c b/src/s_sound.c index 53279729c..69277fe9f 100644 --- a/src/s_sound.c +++ b/src/s_sound.c @@ -66,8 +66,6 @@ consvar_t sndserver_arg = {"sndserver_arg", "-quiet", CV_SAVE, NULL, 0, NULL, NU consvar_t cv_samplerate = {"samplerate", "11025", 0, CV_Unsigned, NULL, 11025, NULL, NULL, 0, 0, NULL}; //Alam: For easy hacking? #elif defined(_WINDOWS) consvar_t cv_samplerate = {"samplerate", "44100", 0, CV_Unsigned, NULL, 44100, NULL, NULL, 0, 0, NULL}; //Alam: For easy hacking? -#elif defined(_WII) -consvar_t cv_samplerate = {"samplerate", "32000", 0, CV_Unsigned, NULL, 32000, NULL, NULL, 0, 0, NULL}; //Alam: For easy hacking? #else consvar_t cv_samplerate = {"samplerate", "22050", 0, CV_Unsigned, NULL, 22050, NULL, NULL, 0, 0, NULL}; //Alam: For easy hacking? #endif diff --git a/src/screen.c b/src/screen.c index 4a4947069..fd0d8ab52 100644 --- a/src/screen.c +++ b/src/screen.c @@ -63,15 +63,9 @@ INT32 setmodeneeded; //video mode change needed if > 0 (the mode number to set + static CV_PossibleValue_t scr_depth_cons_t[] = {{8, "8 bits"}, {16, "16 bits"}, {24, "24 bits"}, {32, "32 bits"}, {0, NULL}}; //added : 03-02-98: default screen mode, as loaded/saved in config -#ifdef WII -consvar_t cv_scr_width = {"scr_width", "640", CV_SAVE, CV_Unsigned, NULL, 0, NULL, NULL, 0, 0, NULL}; -consvar_t cv_scr_height = {"scr_height", "480", CV_SAVE, CV_Unsigned, NULL, 0, NULL, NULL, 0, 0, NULL}; -consvar_t cv_scr_depth = {"scr_depth", "16 bits", CV_SAVE, scr_depth_cons_t, NULL, 0, NULL, NULL, 0, 0, NULL}; -#else consvar_t cv_scr_width = {"scr_width", "1280", CV_SAVE, CV_Unsigned, NULL, 0, NULL, NULL, 0, 0, NULL}; consvar_t cv_scr_height = {"scr_height", "800", CV_SAVE, CV_Unsigned, NULL, 0, NULL, NULL, 0, 0, NULL}; consvar_t cv_scr_depth = {"scr_depth", "16 bits", CV_SAVE, scr_depth_cons_t, NULL, 0, NULL, NULL, 0, 0, NULL}; -#endif consvar_t cv_renderview = {"renderview", "On", 0, CV_OnOff, NULL, 0, NULL, NULL, 0, 0, NULL}; #ifdef DIRECTFULLSCREEN @@ -169,10 +163,10 @@ void SCR_SetMode(void) }*/ else I_Error("unknown bytes per pixel mode %d\n", vid.bpp); -/*#if !defined (WII) +/* if (SCR_IsAspectCorrect(vid.width, vid.height)) CONS_Alert(CONS_WARNING, M_GetText("Resolution is not aspect-correct!\nUse a multiple of %dx%d\n"), BASEVIDWIDTH, BASEVIDHEIGHT); -#endif*/ +*/ wallcolfunc = walldrawerfunc; diff --git a/src/screen.h b/src/screen.h index 79f8e5cf0..d53221493 100644 --- a/src/screen.h +++ b/src/screen.h @@ -49,9 +49,6 @@ #elif defined (GP2X) #define MAXVIDWIDTH 320 //720 #define MAXVIDHEIGHT 240 //576 -#elif defined (WII) // Wii, VGA/640x480 -#define MAXVIDWIDTH 640 -#define MAXVIDHEIGHT 480 #else #define MAXVIDWIDTH 1920 // don't set this too high because actually #define MAXVIDHEIGHT 1200 // lots of tables are allocated with the MAX size. diff --git a/src/sdl12/Makefile.cfg b/src/sdl12/Makefile.cfg index 8c2eb7bd0..a29b95d6b 100644 --- a/src/sdl12/Makefile.cfg +++ b/src/sdl12/Makefile.cfg @@ -133,15 +133,9 @@ endif endif endif -# FIXME: DevkitPPC and ready-compiled SDL Wii require these things to be in a silly order -ifdef WII -include sdl12/SRB2WII/Makefile.cfg -endif #ifdef WII CFLAGS+=$(SDL_CFLAGS) LIBS:=$(SDL_LDFLAGS) $(LIBS) -ifndef WII ifdef STATIC LIBS+=$(shell $(SDL_CONFIG) --static-libs) endif -endif diff --git a/src/sdl12/SRB2WII/Makefile.cfg b/src/sdl12/SRB2WII/Makefile.cfg deleted file mode 100644 index 778d2c3d6..000000000 --- a/src/sdl12/SRB2WII/Makefile.cfg +++ /dev/null @@ -1,124 +0,0 @@ -# -# Makefile.cfg for SRB2Wii native using libogc -# - -# Check if DEVKITPPC is set in the environment. If so, continue with compilation. -.SUFFIXES: - -ifeq ($(strip $(DEVKITPPC)),) -$(error "Please set DEVKITPPC in your environment. export DEVKITPPC=devkitPPC") -endif - -# Set compiler flags - -SRB2NAME?=srb2wii -EXENAME?=$(SRB2NAME).elf -DBGNAME?=$(SRB2NAME).elf.debug -DOLNAME?=$(SRB2NAME).dol - -ICONPNG?=sdl12/SRB2WII/icon.png -METAXML?=sdl12/SRB2WII/meta.xml - -APPDIR=apps/$(SRB2NAME) -ZIPNAME=$(SRB2NAME).zip - -ELF2DOL=$(DEVKITPPC)/bin/elf2dol -WIILOADEXE=$(DEVKITPPC)/bin/wiiload -ZIP=zip -r -9 -WGET=wget -P srb2wii -c -nc -SED=sed -XARGS=xargs -SHXARGS:=$(XARGS) -SHSED:=$(SED) -FOR=for - -ifndef ECHO - ELF2DOL:=@$(ELF2DOL) - WIILOADEXE:=@$(WIILOADEXE) - ZIP:=@$(ZIP) - SED:=@$(SED) - XARGS:=@$(XARGS) - FOR:=@$(FOR) -endif - -# Disable same warning flags -WFLAGS+=-Wno-shadow -Wno-char-subscripts -Wno-old-style-definition -Wno-unsuffixed-float-constants - -# newlib has no support for networking -NONET=1 - -# use pkgconfig for PKG -PNG_PKGCONFIG=libpng - -# use absolute paths because changing PATH variable breaks distcc -PREFIX := $(DEVKITPPC)/bin/$(PREFIX) - -# FIXME: DevkitPPC and ready-compiled SDL Wii require these things to be in a silly order -# libogc/DevkitPro required stuff -LIBOGC := $(DEVKITPRO)/libogc -LIBOGC_INC := $(LIBOGC)/include -LIBOGC_LIB := $(LIBOGC)/lib - -PORTLIBS := $(DEVKITPRO)/portlibs/ppc -PORTLIBS_INC := $(PORTLIBS)/include -PORTLIBS_LIB := $(PORTLIBS)/lib - -SDL_CPPFLAGS := -I$(LIBOGC_INC)/SDL -SDL_LIB := $(DEVKITPRO)/libogc/lib/wii -INCLUDE := -I$(LIBOGC_INC) $(SDL_CPPFLAGS) -I$(PORTLIBS_INC) - -PKG_CONFIG_PATH := $(PORTLIBS)/lib/pkgconfig -PKG_BROKEN_SWTICH := --static --define-variable=DEVKITPRO=$(DEVKITPRO) -PNG_PKGCONFIG := $(PKG_CONFIG_PATH)/libpng.pc $(PKG_BROKEN_SWTICH) -ZLIB_PKGCONFIG := $(PKG_CONFIG_PATH)/zlib.pc $(PKG_BROKEN_SWTICH) - -ZLIB_CFLAGS?=$(shell $(PKG_CONFIG) $(ZLIB_PKGCONFIG) --cflags) -ZLIB_LDFLAGS?=$(shell $(PKG_CONFIG) $(ZLIB_PKGCONFIG) --libs) - -ifdef RDB - LIBS+=-ldb - OPTS+=-DREMOTE_DEBUGGING=$(RDB) -endif - -LIBS+= -L$(SDL_LIB) -ifndef NOMIXER - LD=$(CXX) - LIBS+=-lSDL_mixer -lvorbisidec -lsmpeg -endif -LIBS+=-lSDL - -LIBS+=$(ZLIB_LDFLAGS) -lfat -lwiiuse -lbte -logc -lm -lwiikeyboard -L$(LIBOGC_LIB) - -MACHDEP = -DGEKKO -mrvl -mcpu=750 -meabi -mhard-float -OPTS+=-DWII -D_WII -DUNIXCOMMON -CFLAGS+=-D__BIG_ENDIAN__ -g -O3 -fsigned-char $(MACHDEP) $(INCLUDE) -CXXFLAGS+=$(CFLAGS) -LDFLAGS+=-g $(MACHDEP) -Wl,-Map,$(notdir $@).map - -SDL_CONFIG=/bin/true -SDL_CFLAGS= -SDL_LDFLAGS= - -$(BIN)/$(DOLNAME): $(BIN)/$(EXENAME) - @echo Linking $(DOLNAME)... - $(ELF2DOL) $(BIN)/$(EXENAME) $(BIN)/$(DOLNAME) - @echo Creating /apps/$(SRB2NAME)... - $(MKDIR) $(APPDIR) - $(CP) $(BIN)/$(DOLNAME) $(APPDIR)/boot.dol - $(CP) $(ICONPNG) $(APPDIR) - $(CP) $(METAXML) $(APPDIR) -ifdef WITHDATA - $(MKDIR) srb2wii - $(FOR) datafile in $(shell echo $(D_FILES) | $(SHSED) -e 's/\.srb/\.wad/' -e 's/music.dta//' | $(SHXARGS) -n 1 basename); do \ - $(WGET) http://alam.srb2.org/SRB2/2.0.6-Final/Resources/$$datafile; \ - done - # downsampled music.dta specially for SRB2Wii - $(WGET) http://repos.srb2.org/srb2ports/music.dta - $(ZIP) $(BIN)/$(ZIPNAME) $(APPDIR) srb2wii -else - $(ZIP) $(BIN)/$(ZIPNAME) $(APPDIR) -endif - $(REMOVE) -r $(APPDIR) - -run: $(BIN)/$(EXENAME) - $(WIILOADEXE) $(BIN)/$(DBGNAME) diff --git a/src/sdl12/SRB2WII/icon.png b/src/sdl12/SRB2WII/icon.png deleted file mode 100644 index d22324bc6a9e51dac5c2e82cb2d78ca73d277c23..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 11247 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 Z{vWl3$A6Dk3OWD)002ovPDHLkV1k2@h&uoP diff --git a/src/sdl12/SRB2WII/meta.xml b/src/sdl12/SRB2WII/meta.xml deleted file mode 100644 index 843176d3a..000000000 --- a/src/sdl12/SRB2WII/meta.xml +++ /dev/null @@ -1,18 +0,0 @@ - - - SRB2Wii - Callum - 2.0.6 - 20101207 - A 3D Sonic fangame - Sonic Robo Blast 2 is a 3D fangame by a small group called -Sonic Team Junior, using the Doom engine as a base. -The game has been worked on for almost 11 years so far, and -it is still being very much developed today, with a huge -fanbase developing custom content, including characters, -levels, and even large-scale modifications that play out -a brand new adventure. -Based on the Doom II engine, SRB2's system requirements -are very low, even the oldest computers can play it at a -decent speed. - diff --git a/src/sdl12/i_main.c b/src/sdl12/i_main.c index 180be311e..ec285cfd0 100644 --- a/src/sdl12/i_main.c +++ b/src/sdl12/i_main.c @@ -26,19 +26,6 @@ #include #endif -#ifdef _WII -#include -#include -#include -#ifdef REMOTE_DEBUGGING -#include -#endif -static char wiicwd[PATH_MAX] = "sd:/"; -static char localip[16] = {0}; -static char gateway[16] = {0}; -static char netmask[16] = {0}; -#endif - #ifdef HAVE_SDL #ifdef HAVE_TTF @@ -131,36 +118,11 @@ int main(int argc, char **argv) #endif #endif -// init Wii-specific stuff -#ifdef _WII - // Start network - if_config(localip, netmask, gateway, TRUE); - -#ifdef REMOTE_DEBUGGING -#if REMOTE_DEBUGGING == 0 - DEBUG_Init(GDBSTUB_DEVICE_TCP, GDBSTUB_DEF_TCPPORT); // Port 2828 -#elif REMOTE_DEBUGGING > 2 - DEBUG_Init(GDBSTUB_DEVICE_TCP, REMOTE_DEBUGGING); // Custom Port -#elif REMOTE_DEBUGGING < 0 - DEBUG_Init(GDBSTUB_DEVICE_USB, GDBSTUB_DEF_CHANNEL); // Slot 1 -#else - DEBUG_Init(GDBSTUB_DEVICE_USB, REMOTE_DEBUGGING-1); // Custom Slot -#endif -#endif - // Start FAT filesystem - fatInitDefault(); - - if (getcwd(wiicwd, PATH_MAX)) - I_PutEnv(va("HOME=%ssrb2wii", wiicwd)); -#endif - logdir = D_Home(); #ifdef LOGMESSAGES #if defined(_WIN32_WCE) || defined(GP2X) logstream = fopen(va("%s.log",argv[0]), "a"); -#elif defined (_WII) - logstream = fopen(va("%s/srb2log.txt",logdir), "a"); #elif defined (DEFAULTDIR) if (logdir) logstream = fopen(va("%s/"DEFAULTDIR"/srb2log.txt",logdir), "a"); diff --git a/src/sdl12/i_system.c b/src/sdl12/i_system.c index 1b62e81e4..295fb2a01 100644 --- a/src/sdl12/i_system.c +++ b/src/sdl12/i_system.c @@ -78,7 +78,7 @@ typedef BOOL (WINAPI *p_SetProcessAffinityMask) (HANDLE, DWORD_PTR); #define HAVE_SDLCPUINFO #endif -#if defined (__unix__) || defined(__APPLE__) || (defined (UNIXCOMMON) && !defined (__HAIKU__) && !defined (_WII)) +#if defined (__unix__) || defined(__APPLE__) || (defined (UNIXCOMMON) && !defined (__HAIKU__)) #if defined (__linux__) #include #else @@ -94,7 +94,7 @@ typedef BOOL (WINAPI *p_SetProcessAffinityMask) (HANDLE, DWORD_PTR); #endif #endif -#if defined (__linux__) || (defined (UNIXCOMMON) && !defined (__HAIKU__) && !defined (_WII)) +#if defined (__linux__) || (defined (UNIXCOMMON) && !defined (__HAIKU__)) #ifndef NOTERMIOS #include #include // ioctl @@ -135,14 +135,6 @@ typedef BOOL (WINAPI *p_SetProcessAffinityMask) (HANDLE, DWORD_PTR); #define DEFAULTWADLOCATION4 "/tmp/mnt/sd/SRB2" #define DEFAULTSEARCHPATH1 "/mnt/sd" #define DEFAULTSEARCHPATH2 "/tmp/mnt/sd" -#elif defined (_WII) -#define NOCWD -#define NOHOME -#define NEED_SDL_GETENV -#define DEFAULTWADLOCATION1 "sd:/srb2wii" -#define DEFAULTWADLOCATION2 "usb:/srb2wii" -#define DEFAULTSEARCHPATH1 "sd:/srb2wii" -#define DEFAULTSEARCHPATH2 "usb:/srb2wii" #elif defined (__unix__) || defined(__APPLE__) || defined (UNIXCOMMON) #define DEFAULTWADLOCATION1 "/usr/local/share/games/SRB2" #define DEFAULTWADLOCATION2 "/usr/local/games/SRB2" @@ -2421,7 +2413,7 @@ void I_ShutdownSystem(void) void I_GetDiskFreeSpace(INT64 *freespace) { #if defined (__unix__) || defined(__APPLE__) || defined (UNIXCOMMON) -#if defined (SOLARIS) || defined (__HAIKU__) || defined (_WII) +#if defined (SOLARIS) || defined (__HAIKU__) *freespace = INT32_MAX; return; #else // Both Linux and BSD have this, apparently. diff --git a/src/sdl12/i_video.c b/src/sdl12/i_video.c index 8ddec5804..928d13ca4 100644 --- a/src/sdl12/i_video.c +++ b/src/sdl12/i_video.c @@ -93,12 +93,6 @@ #include "ogl_sdl.h" #endif -#ifdef REMOTE_DEBUGGING -#ifdef _WII -#include -#endif -#endif - #ifdef HAVE_FILTER #define FILTERS #include "filter/filters.h" @@ -107,8 +101,6 @@ // maximum number of windowed modes (see windowedModes[][]) #if defined (_WIN32_WCE) || defined(GP2X) #define MAXWINMODES (1) -#elif defined (WII) -#define MAXWINMODES (8) #else #define MAXWINMODES (27) #endif @@ -177,7 +169,6 @@ static SDL_bool exposevideo = SDL_FALSE; static INT32 windowedModes[MAXWINMODES][2] = { #if !(defined (_WIN32_WCE) || defined (GP2X)) -#ifndef WII {1920,1200}, // 1.60,6.00 {1680,1050}, // 1.60,5.25 {1600,1200}, // 1.33,5.00 @@ -197,7 +188,6 @@ static INT32 windowedModes[MAXWINMODES][2] = { 960, 600}, // 1.60,3.00 { 800, 600}, // 1.33,2.50 { 800, 500}, // 1.60,2.50 -#endif { 640, 480}, // 1.33,2.00 { 640, 400}, // 1.60,2.00 { 576, 432}, // 1.33,1.80 @@ -216,9 +206,6 @@ static void SDLSetMode(INT32 width, INT32 height, INT32 bpp, Uint32 flags) if (bpp < 16) bpp = 16; // 256 mode poo #endif -#ifdef _WII - bpp = 16; // 8-bit mode poo -#endif #ifdef GP2X bpp = 16; #ifdef HAVE_GP2XSDL @@ -230,10 +217,6 @@ static void SDLSetMode(INT32 width, INT32 height, INT32 bpp, Uint32 flags) #endif if (SDLVD && strncasecmp(SDLVD,"glSDL",6) == 0) //for glSDL videodriver vidSurface = SDL_SetVideoMode(width, height,0,SDL_DOUBLEBUF); -#ifdef _WII // don't want it to use HWSURFACE, so make it first here - else if (SDL_VideoModeOK(width, height, bpp, flags|SDL_SWSURFACE|SDL_DOUBLEBUF) >= bpp) // SDL Wii uses double buffering - vidSurface = SDL_SetVideoMode(width, height, bpp, flags|SDL_SWSURFACE|SDL_DOUBLEBUF); -#endif else if (cv_vidwait.value && videoblitok && SDL_VideoModeOK(width, height, bpp, flags|SDL_HWSURFACE|SDL_DOUBLEBUF) >= bpp) vidSurface = SDL_SetVideoMode(width, height, bpp, flags|SDL_HWSURFACE|SDL_DOUBLEBUF); else if (videoblitok && SDL_VideoModeOK(width, height, bpp, flags|SDL_HWSURFACE) >= bpp) @@ -1837,11 +1820,6 @@ void I_StartupGraphics(void) return; } } -#ifdef REMOTE_DEBUGGING -#ifdef _WII - _break(); // break for debugger -#endif -#endif #endif { char vd[100]; //stack space for video name @@ -1944,13 +1922,8 @@ void I_StartupGraphics(void) #endif if (render_soft == rendermode) { -#if defined(_WII) - vid.width = 640; - vid.height = 480; -#else vid.width = BASEVIDWIDTH; vid.height = BASEVIDHEIGHT; -#endif SDLSetMode(vid.width, vid.height, BitsPerPixel, surfaceFlagsW); if (!vidSurface) { diff --git a/src/sdl12/mixer_sound.c b/src/sdl12/mixer_sound.c index 542a67169..6fcc03dbd 100644 --- a/src/sdl12/mixer_sound.c +++ b/src/sdl12/mixer_sound.c @@ -43,12 +43,10 @@ #define HAVE_ZLIB #ifndef _MSC_VER -#ifndef _WII #ifndef _LARGEFILE64_SOURCE #define _LARGEFILE64_SOURCE #endif #endif -#endif #ifndef _LFS64_LARGEFILE #define _LFS64_LARGEFILE diff --git a/src/sdl12/sdl_sound.c b/src/sdl12/sdl_sound.c index 261d7f622..8020a99dc 100644 --- a/src/sdl12/sdl_sound.c +++ b/src/sdl12/sdl_sound.c @@ -1496,9 +1496,7 @@ void I_InitMusic(void) I_OutputMsg("Compiled for SDL_mixer version: %d.%d.%d\n", MIXcompiled.major, MIXcompiled.minor, MIXcompiled.patch); #ifdef MIXER_POS -#ifndef _WII if (MIXlinked->major == 1 && MIXlinked->minor == 2 && MIXlinked->patch < 7) -#endif canlooping = SDL_FALSE; #endif #ifdef USE_RWOPS @@ -1507,7 +1505,7 @@ void I_InitMusic(void) #endif I_OutputMsg("Linked with SDL_mixer version: %d.%d.%d\n", MIXlinked->major, MIXlinked->minor, MIXlinked->patch); -#if !(defined(GP2X) || defined (WII)) +#if !defined(GP2X) if (audio.freq < 44100 && !M_CheckParm ("-freq")) //I want atleast 44Khz { audio.samples = (Uint16)(audio.samples*(INT32)(44100/audio.freq)); diff --git a/src/win32/win_snd.c b/src/win32/win_snd.c index f168f1fe3..88f34abf8 100644 --- a/src/win32/win_snd.c +++ b/src/win32/win_snd.c @@ -22,12 +22,10 @@ #define HAVE_ZLIB #ifndef _MSC_VER -#ifndef _WII #ifndef _LARGEFILE64_SOURCE #define _LARGEFILE64_SOURCE #endif #endif -#endif #ifndef _LFS64_LARGEFILE #define _LFS64_LARGEFILE From 89619761f333cefd215eb677cc784bcf5931e080 Mon Sep 17 00:00:00 2001 From: Monster Iestyn Date: Fri, 29 Sep 2017 21:04:46 +0100 Subject: [PATCH 055/111] Remove FAKEDC and FAKEPSP options from Makefile --- src/Makefile | 8 -------- 1 file changed, 8 deletions(-) diff --git a/src/Makefile b/src/Makefile index 4ecd26b4c..4b6b97113 100644 --- a/src/Makefile +++ b/src/Makefile @@ -342,14 +342,6 @@ else OBJS:=$(OBJDIR)/md5.o $(OBJS) endif -ifdef FAKEDC - OPTS+=-DDC -endif - -ifdef FAKEPSP - OPTS+=-DPSP -endif - ifdef NOPOSTPROCESSING OPTS+=-DNOPOSTPROCESSING endif From 23d28e6b8c613bb79d0ecf981641c9d4923b9ed6 Mon Sep 17 00:00:00 2001 From: Monster Iestyn Date: Fri, 29 Sep 2017 22:27:08 +0100 Subject: [PATCH 056/111] Gutted the GP2X --- src/Makefile.cfg | 6 -- src/command.c | 3 - src/d_main.c | 9 +-- src/d_netcmd.c | 2 +- src/doomdef.h | 4 +- src/g_input.c | 40 +---------- src/s_sound.c | 6 +- src/screen.h | 3 - src/sdl12/MakeNIX.cfg | 31 -------- src/sdl12/hwsym_sdl.c | 4 -- src/sdl12/i_cdmus.c | 2 +- src/sdl12/i_main.c | 2 +- src/sdl12/i_system.c | 47 +------------ src/sdl12/i_video.c | 159 ++---------------------------------------- src/sdl12/sdl_sound.c | 13 +--- 15 files changed, 24 insertions(+), 307 deletions(-) diff --git a/src/Makefile.cfg b/src/Makefile.cfg index 3b90bd05a..e3f5b74f6 100644 --- a/src/Makefile.cfg +++ b/src/Makefile.cfg @@ -345,12 +345,6 @@ endif endif endif -ifdef GP2X -ifdef SDL - SDL12=1 -endif -endif - ifdef ARCHNAME OBJDIR:=$(OBJDIR)/$(ARCHNAME) BIN:=$(BIN)/$(ARCHNAME) diff --git a/src/command.c b/src/command.c index 8c275c23e..62431b664 100644 --- a/src/command.c +++ b/src/command.c @@ -1255,9 +1255,6 @@ static void Got_NetVar(UINT8 **p, INT32 playernum) CONS_Alert(CONS_WARNING, "Netvar not found with netid %hu\n", netid); return; } -#if 0 //defined (GP2X) - CONS_Printf("Netvar received: %s [netid=%d] value %s\n", cvar->name, netid, svalue); -#endif DEBFILE(va("Netvar received: %s [netid=%d] value %s\n", cvar->name, netid, svalue)); Setvalue(cvar, svalue, stealth); diff --git a/src/d_main.c b/src/d_main.c index 1d8934ca9..2b3ffc0db 100644 --- a/src/d_main.c +++ b/src/d_main.c @@ -979,7 +979,7 @@ void D_SRB2Main(void) setbuf(stdout, NULL); // non-buffered output #endif -#if defined (_WIN32_WCE) //|| defined (_DEBUG) || defined (GP2X) +#if defined (_WIN32_WCE) //|| defined (_DEBUG) devparm = M_CheckParm("-nodebug") == 0; #else devparm = M_CheckParm("-debug") != 0; @@ -1005,7 +1005,7 @@ void D_SRB2Main(void) if (!userhome) { -#if ((defined (__unix__) && !defined (MSDOS)) || defined(__APPLE__) || defined (UNIXCOMMON)) && !defined (__CYGWIN__) && !defined(GP2X) +#if ((defined (__unix__) && !defined (MSDOS)) || defined(__APPLE__) || defined (UNIXCOMMON)) && !defined (__CYGWIN__) I_Error("Please set $HOME to your home directory\n"); #elif defined (_WIN32_WCE) && 0 if (dedicated) @@ -1419,10 +1419,7 @@ const char *D_Home(void) userhome = M_GetNextParm(); else { -#if defined (GP2X) - usehome = false; //let use the CWD - return NULL; -#elif !((defined (__unix__) && !defined (MSDOS)) || defined(__APPLE__) || defined (UNIXCOMMON)) && !defined (__APPLE__) && !defined(_WIN32_WCE) +#if !((defined (__unix__) && !defined (MSDOS)) || defined(__APPLE__) || defined (UNIXCOMMON)) && !defined (__APPLE__) && !defined(_WIN32_WCE) if (FIL_FileOK(CONFIGFILENAME)) usehome = false; // Let's NOT use home else diff --git a/src/d_netcmd.c b/src/d_netcmd.c index f7390c6b8..f3afc234a 100644 --- a/src/d_netcmd.c +++ b/src/d_netcmd.c @@ -244,7 +244,7 @@ INT32 cv_debug; consvar_t cv_usemouse = {"use_mouse", "On", CV_SAVE|CV_CALL,usemouse_cons_t, I_StartupMouse, 0, NULL, NULL, 0, 0, NULL}; consvar_t cv_usemouse2 = {"use_mouse2", "Off", CV_SAVE|CV_CALL,usemouse_cons_t, I_StartupMouse2, 0, NULL, NULL, 0, 0, NULL}; -#if defined (GP2X) || defined (_NDS) //only one joystick +#if defined (_NDS) //only one joystick consvar_t cv_usejoystick = {"use_joystick", "1", CV_SAVE|CV_CALL, usejoystick_cons_t, I_InitJoystick, 0, NULL, NULL, 0, 0, NULL}; consvar_t cv_usejoystick2 = {"use_joystick2", "0", CV_SAVE|CV_CALL, usejoystick_cons_t, diff --git a/src/doomdef.h b/src/doomdef.h index 26bbea985..8f64df782 100644 --- a/src/doomdef.h +++ b/src/doomdef.h @@ -28,7 +28,7 @@ // Use Mixer interface? #ifdef HAVE_MIXER - //#if !defined(_WIN32_WCE) && !defined(GP2X) + //#if !defined(_WIN32_WCE) #define SOUND SOUND_MIXER #define NOHS // No HW3SOUND #ifdef HW3SOUND @@ -381,7 +381,7 @@ enum { }; // Name of local directory for config files and savegames -#if !defined(_WIN32_WCE) && !defined(GP2X) +#if !defined(_WIN32_WCE) #if (((defined (__unix__) && !defined (MSDOS)) || defined (UNIXCOMMON)) && !defined (__CYGWIN__)) && !defined (__APPLE__) #define DEFAULTDIR ".srb2" #else diff --git a/src/g_input.c b/src/g_input.c index 39e59f9d8..f864d4c16 100644 --- a/src/g_input.c +++ b/src/g_input.c @@ -286,17 +286,7 @@ static keyname_t keynames[] = {KEY_2MOUSEWHEELUP, "Wheel 2 UP"}, {KEY_2MOUSEWHEELDOWN, "Wheel 2 Down"}, -#if defined (GP2X) - {KEY_JOY1+0, "JOYA"}, - {KEY_JOY1+1, "JOYY"}, - {KEY_JOY1+2, "JOYB"}, - {KEY_JOY1+3, "JOYX"}, - {KEY_JOY1+4, "JOYL"}, - {KEY_JOY1+5, "JOYR"}, - {KEY_JOY1+6, "JOYVOLUP"}, - {KEY_JOY1+7, "JOYVOLDOWN"}, - {KEY_JOY1+8, "JOYSELECT"}, -#elif defined (_NDS) +#if defined (_NDS) {KEY_JOY1+0, "JOYA"}, {KEY_JOY1+1, "JOYB"}, {KEY_JOY1+2, "JOYX"}, @@ -378,18 +368,7 @@ static keyname_t keynames[] = {KEY_DBL2MOUSE1+6, "DBLSEC_MOUSE7"}, {KEY_DBL2MOUSE1+7, "DBLSEC_MOUSE8"}, -#if defined (GP2X) - {KEY_DBLJOY1+0, "DBLJOYA"}, - {KEY_DBLJOY1+1, "DBLJOYY"}, - {KEY_DBLJOY1+2, "DBLJOYB"}, - {KEY_DBLJOY1+3, "DBLJOYX"}, - {KEY_DBLJOY1+4, "DBLJOYL"}, - {KEY_DBLJOY1+5, "DBLJOYR"}, - {KEY_DBLJOY1+6, "DBLJOYVOLUP"}, - {KEY_DBLJOY1+7, "DBLJOYVOLDOWN"}, - {KEY_DBLJOY1+8, "DBLJOYSELECT"}, -#define NOMOREJOYBTN_1DBL -#elif defined (_NDS) +#if defined (_NDS) {KEY_DBLJOY1+0, "DBLJOYA"}, {KEY_DBLJOY1+1, "DBLJOYB"}, {KEY_DBLJOY1+2, "DBLJOYX"}, @@ -656,20 +635,7 @@ INT32 G_KeyStringtoNum(const char *keystr) return 0; } -#if defined (GP2X) -void G_Controldefault(void) -{ - gamecontrol[gc_fire ][0] = KEY_JOY1+0; //A - gamecontrol[gc_forward ][0] = KEY_JOY1+1; //Y - gamecontrol[gc_jump ][0] = KEY_JOY1+2; //B - gamecontrol[gc_use ][0] = KEY_JOY1+3; //X - gamecontrol[gc_strafeleft ][0] = KEY_JOY1+4; //L - gamecontrol[gc_straferight][0] = KEY_JOY1+5; //R - gamecontrol[gc_lookup ][0] = KEY_JOY1+6; //U - gamecontrol[gc_lookdown ][0] = KEY_JOY1+7; //D - gamecontrol[gc_pause ][0] = KEY_JOY1+8; //S -} -#elif defined (_NDS) +#if defined (_NDS) void G_Controldefault(void) { gamecontrol[gc_fire ][0] = KEY_JOY1+2; //X diff --git a/src/s_sound.c b/src/s_sound.c index 69277fe9f..a34b6362f 100644 --- a/src/s_sound.c +++ b/src/s_sound.c @@ -62,7 +62,7 @@ consvar_t sndserver_arg = {"sndserver_arg", "-quiet", CV_SAVE, NULL, 0, NULL, NU #define SURROUND #endif -#if defined (_WIN32_WCE) || defined(GP2X) +#if defined (_WIN32_WCE) consvar_t cv_samplerate = {"samplerate", "11025", 0, CV_Unsigned, NULL, 11025, NULL, NULL, 0, 0, NULL}; //Alam: For easy hacking? #elif defined(_WINDOWS) consvar_t cv_samplerate = {"samplerate", "44100", 0, CV_Unsigned, NULL, 44100, NULL, NULL, 0, 0, NULL}; //Alam: For easy hacking? @@ -91,7 +91,7 @@ static void Captioning_OnChange(void) consvar_t cv_closedcaptioning = {"closedcaptioning", "Off", CV_SAVE|CV_CALL, CV_OnOff, Captioning_OnChange, 0, NULL, NULL, 0, 0, NULL}; // number of channels available -#if defined (_WIN32_WCE) || defined(GP2X) +#if defined (_WIN32_WCE) consvar_t cv_numChannels = {"snd_channels", "8", CV_SAVE|CV_CALL, CV_Unsigned, SetChannelsNum, 0, NULL, NULL, 0, 0, NULL}; #else consvar_t cv_numChannels = {"snd_channels", "32", CV_SAVE|CV_CALL, CV_Unsigned, SetChannelsNum, 0, NULL, NULL, 0, 0, NULL}; @@ -1377,7 +1377,7 @@ static boolean S_DigMusic(const char *mname, boolean looping) void S_ChangeMusic(const char *mmusic, UINT16 mflags, boolean looping) { -#if defined (_WIN32_WCE) || defined(GP2X) +#if defined (_WIN32_WCE) S_ClearSfx(); #endif diff --git a/src/screen.h b/src/screen.h index d53221493..8067860ec 100644 --- a/src/screen.h +++ b/src/screen.h @@ -46,9 +46,6 @@ #if defined (_WIN32_WCE) || defined (_NDS) #define MAXVIDWIDTH 320 #define MAXVIDHEIGHT 200 -#elif defined (GP2X) -#define MAXVIDWIDTH 320 //720 -#define MAXVIDHEIGHT 240 //576 #else #define MAXVIDWIDTH 1920 // don't set this too high because actually #define MAXVIDHEIGHT 1200 // lots of tables are allocated with the MAX size. diff --git a/src/sdl12/MakeNIX.cfg b/src/sdl12/MakeNIX.cfg index 1278aaf06..e188b0fcf 100644 --- a/src/sdl12/MakeNIX.cfg +++ b/src/sdl12/MakeNIX.cfg @@ -52,37 +52,6 @@ ifdef FREEBSD LIBS+=-lipx -lkvm endif -# -#here is GP2x (arm-gp2x-linux) -# -ifdef GP2X - PNG_CONFIG?=$(PREFIX)-libpng12-config -ifdef STATIC #need a better setting name - CFLAGS+=-I$(OPEN2X)/include -ifndef NOMIXER - LIBS+=-lvorbisidec -ifdef MIKMOD - LIBS+=-lmikmod -endif -ifdef SMPEGLIB - LIBS+=-lsmpeg - LD=$(CXX) -endif -endif - NONET=1 -endif -ifndef ARCHNAME -"error" -endif - NONX86=1 - NOHW=1 - NOHS=1 - NOMD5=1 - WFLAGS+=-O0 - OPTS+=-DGP2X -ffast-math -mcpu=arm920t - EXENAME?=SRB2GP2X.gpe -endif - ifndef NOHW OPTS+=-I/usr/X11R6/include LDFLAGS+=-L/usr/X11R6/lib diff --git a/src/sdl12/hwsym_sdl.c b/src/sdl12/hwsym_sdl.c index 244d7230d..b7b5613e1 100644 --- a/src/sdl12/hwsym_sdl.c +++ b/src/sdl12/hwsym_sdl.c @@ -37,10 +37,6 @@ #pragma warning(default : 4214 4244) #endif -#ifdef GP2X -#define NOLOADSO -#endif - #if SDL_VERSION_ATLEAST(1,2,6) && !defined (NOLOADSO) #include "SDL_loadso.h" // 1.2.6+ #elif !defined (NOLOADSO) diff --git a/src/sdl12/i_cdmus.c b/src/sdl12/i_cdmus.c index 3f7910b7d..805e6f498 100644 --- a/src/sdl12/i_cdmus.c +++ b/src/sdl12/i_cdmus.c @@ -19,7 +19,7 @@ #ifdef HAVE_SDL -#if defined (_WIN32_WCE) || defined(GP2X) +#if defined (_WIN32_WCE) #define NOSDLCD #endif diff --git a/src/sdl12/i_main.c b/src/sdl12/i_main.c index ec285cfd0..2a0ea785a 100644 --- a/src/sdl12/i_main.c +++ b/src/sdl12/i_main.c @@ -121,7 +121,7 @@ int main(int argc, char **argv) logdir = D_Home(); #ifdef LOGMESSAGES -#if defined(_WIN32_WCE) || defined(GP2X) +#if defined(_WIN32_WCE) logstream = fopen(va("%s.log",argv[0]), "a"); #elif defined (DEFAULTDIR) if (logdir) diff --git a/src/sdl12/i_system.c b/src/sdl12/i_system.c index 295fb2a01..a907c7f90 100644 --- a/src/sdl12/i_system.c +++ b/src/sdl12/i_system.c @@ -128,14 +128,7 @@ typedef BOOL (WINAPI *p_SetProcessAffinityMask) (HANDLE, DWORD_PTR); #endif // Locations for searching the srb2.srb -#ifdef GP2X -#define DEFAULTWADLOCATION1 "/mnt/sd" -#define DEFAULTWADLOCATION2 "/mnt/sd/SRB2" -#define DEFAULTWADLOCATION3 "/tmp/mnt/sd" -#define DEFAULTWADLOCATION4 "/tmp/mnt/sd/SRB2" -#define DEFAULTSEARCHPATH1 "/mnt/sd" -#define DEFAULTSEARCHPATH2 "/tmp/mnt/sd" -#elif defined (__unix__) || defined(__APPLE__) || defined (UNIXCOMMON) +#if defined (__unix__) || defined(__APPLE__) || defined (UNIXCOMMON) #define DEFAULTWADLOCATION1 "/usr/local/share/games/SRB2" #define DEFAULTWADLOCATION2 "/usr/local/games/SRB2" #define DEFAULTWADLOCATION3 "/usr/share/games/SRB2" @@ -203,9 +196,6 @@ static void JoyReset(SDLJoyInfo_t *JoySet) { if (JoySet->dev) { -#ifdef GP2X //GP2X's SDL does an illegal free on the 1st joystick... - if (SDL_JoystickIndex(JoySet->dev) != 0) -#endif SDL_JoystickClose(JoySet->dev); } JoySet->dev = NULL; @@ -417,9 +407,7 @@ static void I_StartupConsole(void) signal(SIGTTIN, SIG_IGN); signal(SIGTTOU, SIG_IGN); -#if !defined(GP2X) //read is bad on GP2X consolevent = !M_CheckParm("-noconsole"); -#endif framebuffer = M_CheckParm("-framebuffer"); if (framebuffer) @@ -835,22 +823,12 @@ INT32 I_GetKey (void) // void I_JoyScale(void) { -#ifdef GP2X - if (JoyInfo.dev && SDL_JoystickIndex(JoyInfo.dev) == 0) - Joystick.bGamepadStyle = true; - else -#endif Joystick.bGamepadStyle = cv_joyscale.value==0; JoyInfo.scale = Joystick.bGamepadStyle?1:cv_joyscale.value; } void I_JoyScale2(void) { -#ifdef GP2X - if (JoyInfo2.dev && SDL_JoystickIndex(JoyInfo2.dev) == 0) - Joystick.bGamepadStyle = true; - else -#endif Joystick2.bGamepadStyle = cv_joyscale2.value==0; JoyInfo2.scale = Joystick2.bGamepadStyle?1:cv_joyscale2.value; } @@ -2099,7 +2077,7 @@ void I_StartupTimer(void) pfntimeGetTime = (p_timeGetTime)GetProcAddress(winmm, "timeGetTime"); } I_AddExitFunc(I_ShutdownTimer); -#elif 0 //#elif !defined(GP2X) // GP2X have broken pthreads? +#elif 0 if (SDL_InitSubSystem(SDL_INIT_TIMER) < 0) I_Error("SRB2: Needs SDL_Timer, Error: %s", SDL_GetError()); #endif @@ -2124,11 +2102,7 @@ INT32 I_StartupSystem(void) SDLcompiled.major, SDLcompiled.minor, SDLcompiled.patch); I_OutputMsg("Linked with SDL version: %d.%d.%d\n", SDLlinked->major, SDLlinked->minor, SDLlinked->patch); -#if 0 //#ifdef GP2X //start up everything - if (SDL_Init(SDL_INIT_NOPARACHUTE|SDL_INIT_EVERYTHING) < 0) -#else if (SDL_Init(SDL_INIT_NOPARACHUTE) < 0) -#endif I_Error("SRB2: SDL System Error: %s", SDL_GetError()); //Alam: Oh no.... #ifndef NOMUMBLE I_SetupMumble(); @@ -2179,10 +2153,6 @@ void I_Quit(void) } death: W_Shutdown(); -#ifdef GP2X - chdir("/usr/gp2x"); - execl("/usr/gp2x/gp2xmenu", "/usr/gp2x/gp2xmenu", NULL); -#endif exit(0); } @@ -2279,10 +2249,6 @@ void I_Error(const char *error, ...) va_end(argptr); #endif W_Shutdown(); -#ifdef GP2X - chdir("/usr/gp2x"); - execl("/usr/gp2x/gp2xmenu", "/usr/gp2x/gp2xmenu", NULL); -#endif exit(-1); // recursive errors detected } } @@ -2333,10 +2299,6 @@ void I_Error(const char *error, ...) W_Shutdown(); #if defined (PARANOIA) && defined (__CYGWIN__) *(INT32 *)2 = 4; //Alam: Debug! -#endif -#ifdef GP2X - chdir("/usr/gp2x"); - execl("/usr/gp2x/gp2xmenu", "/usr/gp2x/gp2xmenu", NULL); #endif exit(-1); } @@ -2456,10 +2418,7 @@ void I_GetDiskFreeSpace(INT64 *freespace) char *I_GetUserName(void) { -#ifdef GP2X - static char username[MAXPLAYERNAME] = "GP2XUSER"; - return username; -#elif !defined (_WIN32_WCE) +#if !defined (_WIN32_WCE) static char username[MAXPLAYERNAME]; char *p; #ifdef _WIN32 diff --git a/src/sdl12/i_video.c b/src/sdl12/i_video.c index 928d13ca4..fa7e31e8d 100644 --- a/src/sdl12/i_video.c +++ b/src/sdl12/i_video.c @@ -35,11 +35,6 @@ #pragma warning(default : 4214 4244) #endif -#if SDL_VERSION_ATLEAST(1,2,9) && defined (GP2X) -#define HAVE_GP2XSDL -#include "SDL_gp2x.h" -#endif - #if SDL_VERSION_ATLEAST(1,3,0) #define SDLK_EQUALS SDLK_KP_EQUALSAS400 #define SDLK_LMETA SDLK_LGUI @@ -54,7 +49,7 @@ #ifdef HAVE_IMAGE #include "SDL_image.h" -#elseif !(defined (_WIN32_WCE) || defined(GP2X)) +#elseif !defined (_WIN32_WCE) #define LOAD_XPM //I want XPM! #include "IMG_xpm.c" //Alam: I don't want to add SDL_Image.dll/so #define HAVE_IMAGE //I have SDL_Image, sortof @@ -99,7 +94,7 @@ #endif // maximum number of windowed modes (see windowedModes[][]) -#if defined (_WIN32_WCE) || defined(GP2X) +#if defined (_WIN32_WCE) #define MAXWINMODES (1) #else #define MAXWINMODES (27) @@ -118,11 +113,7 @@ rendermode_t rendermode=render_soft; boolean highcolor = false; // synchronize page flipping with screen refresh -#if defined(GP2X) && !defined(HAVE_GP2XSDL) -consvar_t cv_vidwait = {"vid_wait", "Off", CV_SAVE, CV_OnOff, NULL, 0, NULL, NULL, 0, 0, NULL}; -#else consvar_t cv_vidwait = {"vid_wait", "On", CV_SAVE, CV_OnOff, NULL, 0, NULL, NULL, 0, 0, NULL}; -#endif static consvar_t cv_stretch = {"stretch", "Off", CV_SAVE|CV_NOSHOWHELP, CV_OnOff, NULL, 0, NULL, NULL, 0, 0, NULL}; UINT8 graphics_started = 0; // Is used in console.c and screen.c @@ -158,7 +149,7 @@ static const Uint32 surfaceFlagsW = SDL_HWPALETTE/*|SDL_RESIZABLE*/; static const Uint32 surfaceFlagsF = SDL_HWPALETTE|SDL_FULLSCREEN; static SDL_bool mousegrabok = SDL_TRUE; #define HalfWarpMouse(x,y) SDL_WarpMouse((Uint16)(x/2),(Uint16)(y/2)) -#if defined (_WIN32_WCE) || defined(GP2X) +#if defined (_WIN32_WCE) static SDL_bool videoblitok = SDL_TRUE; #else static SDL_bool videoblitok = SDL_FALSE; @@ -168,7 +159,7 @@ static SDL_bool exposevideo = SDL_FALSE; // windowed video modes from which to choose from. static INT32 windowedModes[MAXWINMODES][2] = { -#if !(defined (_WIN32_WCE) || defined (GP2X)) +#if !defined (_WIN32_WCE) {1920,1200}, // 1.60,6.00 {1680,1050}, // 1.60,5.25 {1600,1200}, // 1.33,5.00 @@ -206,12 +197,6 @@ static void SDLSetMode(INT32 width, INT32 height, INT32 bpp, Uint32 flags) if (bpp < 16) bpp = 16; // 256 mode poo #endif -#ifdef GP2X - bpp = 16; -#ifdef HAVE_GP2XSDL - height = 240; -#endif -#endif #ifdef FILTERS bpp = Setupf2x(width, height, bpp); #endif @@ -231,9 +216,6 @@ static void SDLSetMode(INT32 width, INT32 height, INT32 bpp, Uint32 flags) SDL_DC_EmulateMouse(SDL_FALSE); SDL_DC_EmulateKeyboard(SDL_TRUE); #endif -#ifdef HAVE_GP2XSDL - SDL_ShowCursor(SDL_DISABLE); //For GP2X Open2x -#endif #ifdef FILTERS if (vidSurface && preSurface && f2xSurface) { @@ -604,7 +586,7 @@ static void VID_Command_Info_f (void) static void VID_Command_ModeList_f(void) { -#if !defined (_WIN32_WCE) && !defined(GP2X) +#if !defined (_WIN32_WCE) INT32 i; #ifdef HWRENDER if (rendermode == render_opengl) @@ -752,134 +734,7 @@ static inline VOID ResetAero(VOID) static inline void SDLJoyRemap(event_t *event) { -#if defined(GP2X) -#define GP2X_BUTTON_UP (0) -#define GP2X_BUTTON_DOWN (4) -#define GP2X_BUTTON_LEFT (2) -#define GP2X_BUTTON_RIGHT (6) -#define GP2X_BUTTON_UPLEFT (1) -#define GP2X_BUTTON_UPRIGHT (7) -#define GP2X_BUTTON_DOWNLEFT (3) -#define GP2X_BUTTON_DOWNRIGHT (5) -#define GP2X_BUTTON_CLICK (18) -#define GP2X_BUTTON_A (12) -#define GP2X_BUTTON_B (13) -#define GP2X_BUTTON_X (14) -#define GP2X_BUTTON_Y (15) -#define GP2X_BUTTON_L (10) -#define GP2X_BUTTON_R (11) -#define GP2X_BUTTON_START (8) -#define GP2X_BUTTON_SELECT (9) -#define GP2X_BUTTON_VOLUP (16) -#define GP2X_BUTTON_VOLDOWN (17) - if ((event->type == ev_keydown || event->type == ev_keyup) && (KEY_JOY1 <= event->data1 && event->data1 <= KEY_JOY1+JOYBUTTONS)) - { - INT32 button = event->data1-KEY_JOY1; - if (button <= 7) - { - static UINT8 DPAD = 0; - if (event->type == ev_keyup) - { - event->type = ev_console; - DPAD &= ~(1<type = ev_joystick; - DPAD |= 1<data2 = event->data3 = INT32_MAX; - if ((DPAD & (1<type = ev_joystick; - event->data2 = event->data3 = 0; - } - else switch (button) - { - case GP2X_BUTTON_UP: - event->data3 = -1; - break; - case GP2X_BUTTON_DOWN: - event->data3 = 1; - break; - case GP2X_BUTTON_LEFT: - event->data2 = -1; - break; - case GP2X_BUTTON_RIGHT: - event->data2 = 1; - break; - case GP2X_BUTTON_UPLEFT: - event->data2 = -1; - event->data3 = -1; - break; - case GP2X_BUTTON_UPRIGHT: - event->data2 = 1; - event->data3 = -1; - break; - case GP2X_BUTTON_DOWNLEFT: - event->data2 = -1; - event->data3 = 1; - break; - case GP2X_BUTTON_DOWNRIGHT: - event->data2 = 1; - event->data3 = 1; - default: - break; - } - event->data1 = 0; - return; - } - else switch (button) - { - case GP2X_BUTTON_CLICK: - event->data1 = KEY_ENTER; - break; - case GP2X_BUTTON_A: - event->data1 = KEY_JOY1+0; - break; - case GP2X_BUTTON_B: - event->data1 = KEY_JOY1+2; - break; - case GP2X_BUTTON_X: - event->data1 = KEY_JOY1+3; - break; - case GP2X_BUTTON_Y: - event->data1 = KEY_JOY1+1; - break; - case GP2X_BUTTON_L: - event->data1 = KEY_JOY1+4; - break; - case GP2X_BUTTON_R: - event->data1 = KEY_JOY1+5; - break; - case GP2X_BUTTON_START: - event->data1 = KEY_ESCAPE; - break; - case GP2X_BUTTON_SELECT: - event->data1 = KEY_JOY1+8; - break; - case GP2X_BUTTON_VOLUP: - event->data1 = KEY_JOY1+6; - break; - case GP2X_BUTTON_VOLDOWN: - event->data1 = KEY_JOY1+7; - break; - default: - break; - } - //I_OutputMsg("Button %i: event key %i and type: %i\n", button, event->data1, event->type); - } -#else (void)event; -#endif } static INT32 SDLJoyAxis(const Sint16 axis, evtype_t which) @@ -1223,10 +1078,6 @@ static inline boolean I_SkipFrame(void) skip = !skip; -#if 0 //defined (GP2X) - return skip; -#endif - switch (gamestate) { case GS_LEVEL: diff --git a/src/sdl12/sdl_sound.c b/src/sdl12/sdl_sound.c index 8020a99dc..232c73c44 100644 --- a/src/sdl12/sdl_sound.c +++ b/src/sdl12/sdl_sound.c @@ -85,7 +85,7 @@ // mixing buffer, and the samplerate of the raw data. // Needed for calling the actual sound output. -#if defined (_WIN32_WCE) || defined(GP2X) +#if defined (_WIN32_WCE) #define NUM_CHANNELS MIX_CHANNELS #else #define NUM_CHANNELS MIX_CHANNELS*4 @@ -95,8 +95,6 @@ #if defined (_WIN32_WCE) static Uint16 samplecount = 512; //Alam: .5KB samplecount at 11025hz is 46.439909297052154195011337868481ms of buffer -#elif defined(GP2X) -static Uint16 samplecount = 128; #else static Uint16 samplecount = 1024; //Alam: 1KB samplecount at 22050hz is 46.439909297052154195011337868481ms of buffer #endif @@ -151,15 +149,10 @@ static SDL_bool musicStarted = SDL_FALSE; #ifdef HAVE_MIXER static SDL_mutex *Msc_Mutex = NULL; /* FIXME: Make this file instance-specific */ -#ifdef GP2X -#define MIDI_PATH "/mnt/sd/srb2" -#define MIDI_PATH2 "/tmp/mnt/sd/srb2" -#else #define MIDI_PATH srb2home #if defined (__unix__) || defined(__APPLE__) || defined (UNIXCOMMON) #define MIDI_PATH2 "/tmp" #endif -#endif #define MIDI_TMPFILE "srb2music" #define MIDI_TMPFILE2 "srb2wav" static INT32 musicvol = 62; @@ -174,7 +167,7 @@ static SDL_bool canlooping = SDL_TRUE; #if SDL_MIXER_VERSION_ATLEAST(1,2,7) #define USE_RWOPS // ok, USE_RWOPS is in here -#if defined (_WIN32_WCE) //|| defined(_WIN32) || defined(GP2X) +#if defined (_WIN32_WCE) //|| defined(_WIN32) #undef USE_RWOPS #endif #endif @@ -1505,13 +1498,11 @@ void I_InitMusic(void) #endif I_OutputMsg("Linked with SDL_mixer version: %d.%d.%d\n", MIXlinked->major, MIXlinked->minor, MIXlinked->patch); -#if !defined(GP2X) if (audio.freq < 44100 && !M_CheckParm ("-freq")) //I want atleast 44Khz { audio.samples = (Uint16)(audio.samples*(INT32)(44100/audio.freq)); audio.freq = 44100; //Alam: to keep it around the same XX ms } -#endif if (sound_started #ifdef HW3SOUND From 497512ee52877017d39f588fb1dd0c71187c1346 Mon Sep 17 00:00:00 2001 From: Monster Iestyn Date: Fri, 29 Sep 2017 22:32:58 +0100 Subject: [PATCH 057/111] Remove all relevant objs and bin subfolders for ports killed so far --- bin/DC/.gitignore | 2 -- bin/PS3/Debug/.gitignore | 5 ----- bin/PS3/Release/.gitignore | 5 ----- bin/PSP/Release/.gitignore | 4 ---- bin/Wii/Debug/.gitignore | 3 --- bin/Wii/Release/.gitignore | 3 --- objs/DC/SDL/Debug/.gitignore | 2 -- objs/DC/SDL/Release/.gitignore | 2 -- objs/PS3/SDL/Debug/.gitignore | 2 -- objs/PS3/SDL/Release/.gitignore | 2 -- objs/PSP/SDL/Release/.gitignore | 2 -- objs/Wii/SDL/Debug/.gitignore | 2 -- objs/Wii/SDL/Release/.gitignore | 2 -- objs/XBOX/SDL/Debug/.gitignore | 2 -- objs/XBOX/SDL/Release/.gitignore | 2 -- 15 files changed, 40 deletions(-) delete mode 100644 bin/DC/.gitignore delete mode 100644 bin/PS3/Debug/.gitignore delete mode 100644 bin/PS3/Release/.gitignore delete mode 100644 bin/PSP/Release/.gitignore delete mode 100644 bin/Wii/Debug/.gitignore delete mode 100644 bin/Wii/Release/.gitignore delete mode 100644 objs/DC/SDL/Debug/.gitignore delete mode 100644 objs/DC/SDL/Release/.gitignore delete mode 100644 objs/PS3/SDL/Debug/.gitignore delete mode 100644 objs/PS3/SDL/Release/.gitignore delete mode 100644 objs/PSP/SDL/Release/.gitignore delete mode 100644 objs/Wii/SDL/Debug/.gitignore delete mode 100644 objs/Wii/SDL/Release/.gitignore delete mode 100644 objs/XBOX/SDL/Debug/.gitignore delete mode 100644 objs/XBOX/SDL/Release/.gitignore diff --git a/bin/DC/.gitignore b/bin/DC/.gitignore deleted file mode 100644 index 42c6dc2c6..000000000 --- a/bin/DC/.gitignore +++ /dev/null @@ -1,2 +0,0 @@ -# DON'T REMOVE -# This keeps the folder from disappearing diff --git a/bin/PS3/Debug/.gitignore b/bin/PS3/Debug/.gitignore deleted file mode 100644 index c4dcd19e5..000000000 --- a/bin/PS3/Debug/.gitignore +++ /dev/null @@ -1,5 +0,0 @@ -/*.elf -/*.self -/*.pkg -/*.BIN -/pkg diff --git a/bin/PS3/Release/.gitignore b/bin/PS3/Release/.gitignore deleted file mode 100644 index c4dcd19e5..000000000 --- a/bin/PS3/Release/.gitignore +++ /dev/null @@ -1,5 +0,0 @@ -/*.elf -/*.self -/*.pkg -/*.BIN -/pkg diff --git a/bin/PSP/Release/.gitignore b/bin/PSP/Release/.gitignore deleted file mode 100644 index 98d08e695..000000000 --- a/bin/PSP/Release/.gitignore +++ /dev/null @@ -1,4 +0,0 @@ -/EBOOT.PBP -/PARAM.SFO -/SRB2PSP.PBP -/SRB2PSP.elf diff --git a/bin/Wii/Debug/.gitignore b/bin/Wii/Debug/.gitignore deleted file mode 100644 index 200eea51f..000000000 --- a/bin/Wii/Debug/.gitignore +++ /dev/null @@ -1,3 +0,0 @@ -/*.elf -/*.dol -/apps diff --git a/bin/Wii/Release/.gitignore b/bin/Wii/Release/.gitignore deleted file mode 100644 index 200eea51f..000000000 --- a/bin/Wii/Release/.gitignore +++ /dev/null @@ -1,3 +0,0 @@ -/*.elf -/*.dol -/apps diff --git a/objs/DC/SDL/Debug/.gitignore b/objs/DC/SDL/Debug/.gitignore deleted file mode 100644 index 42c6dc2c6..000000000 --- a/objs/DC/SDL/Debug/.gitignore +++ /dev/null @@ -1,2 +0,0 @@ -# DON'T REMOVE -# This keeps the folder from disappearing diff --git a/objs/DC/SDL/Release/.gitignore b/objs/DC/SDL/Release/.gitignore deleted file mode 100644 index 42c6dc2c6..000000000 --- a/objs/DC/SDL/Release/.gitignore +++ /dev/null @@ -1,2 +0,0 @@ -# DON'T REMOVE -# This keeps the folder from disappearing diff --git a/objs/PS3/SDL/Debug/.gitignore b/objs/PS3/SDL/Debug/.gitignore deleted file mode 100644 index 42c6dc2c6..000000000 --- a/objs/PS3/SDL/Debug/.gitignore +++ /dev/null @@ -1,2 +0,0 @@ -# DON'T REMOVE -# This keeps the folder from disappearing diff --git a/objs/PS3/SDL/Release/.gitignore b/objs/PS3/SDL/Release/.gitignore deleted file mode 100644 index 42c6dc2c6..000000000 --- a/objs/PS3/SDL/Release/.gitignore +++ /dev/null @@ -1,2 +0,0 @@ -# DON'T REMOVE -# This keeps the folder from disappearing diff --git a/objs/PSP/SDL/Release/.gitignore b/objs/PSP/SDL/Release/.gitignore deleted file mode 100644 index 42c6dc2c6..000000000 --- a/objs/PSP/SDL/Release/.gitignore +++ /dev/null @@ -1,2 +0,0 @@ -# DON'T REMOVE -# This keeps the folder from disappearing diff --git a/objs/Wii/SDL/Debug/.gitignore b/objs/Wii/SDL/Debug/.gitignore deleted file mode 100644 index 42c6dc2c6..000000000 --- a/objs/Wii/SDL/Debug/.gitignore +++ /dev/null @@ -1,2 +0,0 @@ -# DON'T REMOVE -# This keeps the folder from disappearing diff --git a/objs/Wii/SDL/Release/.gitignore b/objs/Wii/SDL/Release/.gitignore deleted file mode 100644 index 42c6dc2c6..000000000 --- a/objs/Wii/SDL/Release/.gitignore +++ /dev/null @@ -1,2 +0,0 @@ -# DON'T REMOVE -# This keeps the folder from disappearing diff --git a/objs/XBOX/SDL/Debug/.gitignore b/objs/XBOX/SDL/Debug/.gitignore deleted file mode 100644 index 42c6dc2c6..000000000 --- a/objs/XBOX/SDL/Debug/.gitignore +++ /dev/null @@ -1,2 +0,0 @@ -# DON'T REMOVE -# This keeps the folder from disappearing diff --git a/objs/XBOX/SDL/Release/.gitignore b/objs/XBOX/SDL/Release/.gitignore deleted file mode 100644 index 42c6dc2c6..000000000 --- a/objs/XBOX/SDL/Release/.gitignore +++ /dev/null @@ -1,2 +0,0 @@ -# DON'T REMOVE -# This keeps the folder from disappearing From be13f1062648d812d4617948b1bdccbb0293d53d Mon Sep 17 00:00:00 2001 From: Monster Iestyn Date: Fri, 29 Sep 2017 22:48:14 +0100 Subject: [PATCH 058/111] ended NDS --- src/Makefile | 29 --- src/Makefile.cfg | 9 - src/am_map.c | 4 - src/d_netcmd.c | 7 - src/doomdef.h | 4 - src/doomtype.h | 8 +- src/g_input.c | 41 ----- src/hardware/hw_defs.h | 6 - src/hardware/hw_main.c | 15 +- src/i_addrinfo.c | 2 - src/lzf.c | 2 - src/m_misc.c | 2 +- src/nds/Makefile.cfg | 31 ---- src/nds/i_cdmus.c | 37 ---- src/nds/i_main.c | 25 --- src/nds/i_net.c | 6 - src/nds/i_sound.c | 150 ---------------- src/nds/i_system.c | 286 ------------------------------ src/nds/i_video.c | 148 ---------------- src/nds/r_nds3d.c | 389 ----------------------------------------- src/nds/r_nds3d.h | 55 ------ src/r_draw.c | 5 - src/screen.h | 2 +- src/tables.c | 2 - src/tables.h | 10 -- src/z_zone.c | 4 - src/z_zone.h | 4 - 27 files changed, 4 insertions(+), 1279 deletions(-) delete mode 100644 src/nds/Makefile.cfg delete mode 100644 src/nds/i_cdmus.c delete mode 100644 src/nds/i_main.c delete mode 100644 src/nds/i_net.c delete mode 100644 src/nds/i_sound.c delete mode 100644 src/nds/i_system.c delete mode 100644 src/nds/i_video.c delete mode 100644 src/nds/r_nds3d.c delete mode 100644 src/nds/r_nds3d.h diff --git a/src/Makefile b/src/Makefile index 4b6b97113..26fd2f409 100644 --- a/src/Makefile +++ b/src/Makefile @@ -104,12 +104,6 @@ ifdef HAIKU SDL=1 endif -ifdef NDS -# Include this before the main Makefile.cfg -EXENAME?=srb2.elf -include nds/Makefile.cfg -endif - include Makefile.cfg ifdef DUMMY @@ -172,18 +166,6 @@ ifdef MACOSX UNIXCOMMON=1 endif -ifdef NDS -NOPNG=1 -NONET=1 -#NOHW=1 -NOHS=1 -NOASM=1 -NOIPX=1 -NONX86=1 -OBJS+=$(OBJDIR)/i_video.o -LIBS+=-lm -endif - ifdef SDL #SDL 2.0 ifndef SDL12 @@ -508,10 +490,6 @@ ifdef SDL all: pre-build $(BIN)/$(EXENAME) endif -ifdef NDS -all: $(BIN)/$(EXENAME:.elf=.nds) -endif - ifdef DUMMY all: $(BIN)/$(EXENAME) endif @@ -728,13 +706,6 @@ $(OBJDIR)/%.o: %.s $(OBJDIR)/SRB2.res: win32/Srb2win.rc win32/afxres.h win32/resource.h $(WINDRES) -i $< -O rc $(WINDRESFLAGS) --include-dir=win32 -o $@ -O coff -ifdef NDS -$(BIN)/$(EXENAME:.elf=.nds): $(BIN)/$(EXENAME:.elf=.arm9) - $(NDSTOOL) -c $@ -9 $(BIN)/$(EXENAME:.elf=.arm9) - -%.arm9: %.elf - $(OBJCOPY) -O binary $< $@ -endif ifdef MINGW ifndef SDL diff --git a/src/Makefile.cfg b/src/Makefile.cfg index e3f5b74f6..5973648a0 100644 --- a/src/Makefile.cfg +++ b/src/Makefile.cfg @@ -216,7 +216,6 @@ ifndef FREEBSD ifndef CYGWIN32 ifndef MINGW ifndef SDL -ifndef NDS ifndef DUMMY DJGPPDOS=1 endif @@ -226,7 +225,6 @@ endif endif endif endif -endif #determine the interface directory (where you put all i_*.c) i_cdmus_o=$(OBJDIR)/i_cdmus.o @@ -328,13 +326,6 @@ ifdef WINCE SDL12=1 OBJDIR:=$(OBJDIR)/WinCE BIN:=$(BIN)/WinCE -else -ifdef NDS - INTERFACE=nds - OBJDIR:=$(OBJDIR)/nds - BIN:=$(BIN)/nds - NOUPX=1 -endif endif endif endif diff --git a/src/am_map.c b/src/am_map.c index b28cecf11..7e012a304 100644 --- a/src/am_map.c +++ b/src/am_map.c @@ -44,10 +44,6 @@ static const UINT8 NOCLIMBBROWNS = (2*16); static const UINT8 NOCLIMBYELLOWS = (11*16); -#ifdef _NDS -#undef BACKGROUND -#endif - // Automap colors #define BACKGROUND DBLACK #define YOURCOLORS DWHITE diff --git a/src/d_netcmd.c b/src/d_netcmd.c index f3afc234a..bbed05c88 100644 --- a/src/d_netcmd.c +++ b/src/d_netcmd.c @@ -244,17 +244,10 @@ INT32 cv_debug; consvar_t cv_usemouse = {"use_mouse", "On", CV_SAVE|CV_CALL,usemouse_cons_t, I_StartupMouse, 0, NULL, NULL, 0, 0, NULL}; consvar_t cv_usemouse2 = {"use_mouse2", "Off", CV_SAVE|CV_CALL,usemouse_cons_t, I_StartupMouse2, 0, NULL, NULL, 0, 0, NULL}; -#if defined (_NDS) //only one joystick -consvar_t cv_usejoystick = {"use_joystick", "1", CV_SAVE|CV_CALL, usejoystick_cons_t, - I_InitJoystick, 0, NULL, NULL, 0, 0, NULL}; -consvar_t cv_usejoystick2 = {"use_joystick2", "0", CV_SAVE|CV_CALL, usejoystick_cons_t, - I_InitJoystick2, 0, NULL, NULL, 0, 0, NULL}; -#else //all esle, no joystick consvar_t cv_usejoystick = {"use_joystick", "0", CV_SAVE|CV_CALL, usejoystick_cons_t, I_InitJoystick, 0, NULL, NULL, 0, 0, NULL}; consvar_t cv_usejoystick2 = {"use_joystick2", "0", CV_SAVE|CV_CALL, usejoystick_cons_t, I_InitJoystick2, 0, NULL, NULL, 0, 0, NULL}; -#endif #if (defined (LJOYSTICK) || defined (HAVE_SDL)) #ifdef LJOYSTICK consvar_t cv_joyport = {"joyport", "/dev/js0", CV_SAVE, joyport_cons_t, NULL, 0, NULL, NULL, 0, 0, NULL}; diff --git a/src/doomdef.h b/src/doomdef.h index 8f64df782..892130f06 100644 --- a/src/doomdef.h +++ b/src/doomdef.h @@ -548,19 +548,15 @@ extern const char *compdate, *comptime, *comprevision, *compbranch; /// Most modifications should probably enable this. //#define SAVEGAME_OTHERVERSIONS -#if !defined (_NDS) /// Shuffle's incomplete OpenGL sorting code. #define SHUFFLE // This has nothing to do with sorting, why was it disabled? -#endif -#if !defined (_NDS) /// Allow the use of the SOC RESETINFO command. /// \note Builds that are tight on memory should disable this. /// This stops the game from storing backups of the states, sprites, and mobjinfo tables. /// Though this info is compressed under normal circumstances, it's still a lot of extra /// memory that never gets touched. #define ALLOW_RESETDATA -#endif #ifndef NONET /// Display a connection screen on join attempts. diff --git a/src/doomtype.h b/src/doomtype.h index bbaa08783..796a5ca29 100644 --- a/src/doomtype.h +++ b/src/doomtype.h @@ -23,10 +23,6 @@ #include #endif -#ifdef _NDS -#include -#endif - /* 7.18.1.1 Exact-width integer types */ #ifdef _MSC_VER #define UINT8 unsigned __int8 @@ -139,7 +135,7 @@ typedef long ssize_t; #endif #endif //macintosh -#if defined (PC_DOS) || defined (_WIN32) || defined (__HAIKU__) || defined(_NDS) +#if defined (PC_DOS) || defined (_WIN32) || defined (__HAIKU__) #define HAVE_DOSSTR_FUNCS #endif @@ -175,8 +171,6 @@ size_t strlcpy(char *dst, const char *src, size_t siz); #define false FALSE // use windows types #define true TRUE #define boolean BOOL - #elif defined(_NDS) - #define boolean bool #else typedef enum {false, true} boolean; #endif diff --git a/src/g_input.c b/src/g_input.c index f864d4c16..67aaf4179 100644 --- a/src/g_input.c +++ b/src/g_input.c @@ -286,17 +286,6 @@ static keyname_t keynames[] = {KEY_2MOUSEWHEELUP, "Wheel 2 UP"}, {KEY_2MOUSEWHEELDOWN, "Wheel 2 Down"}, -#if defined (_NDS) - {KEY_JOY1+0, "JOYA"}, - {KEY_JOY1+1, "JOYB"}, - {KEY_JOY1+2, "JOYX"}, - {KEY_JOY1+3, "JOYY"}, - {KEY_JOY1+4, "JOYL"}, - {KEY_JOY1+5, "JOYR"}, - {KEY_JOY1+6, "JOYSTART"}, - {KEY_JOY1+7, "JOYSELECT"}, -#define NOMOREJOYBTN_1S -#else {KEY_JOY1+0, "JOY1"}, {KEY_JOY1+1, "JOY2"}, {KEY_JOY1+2, "JOY3"}, @@ -306,7 +295,6 @@ static keyname_t keynames[] = {KEY_JOY1+6, "JOY7"}, {KEY_JOY1+7, "JOY8"}, {KEY_JOY1+8, "JOY9"}, -#endif #if !defined (NOMOREJOYBTN_1S) // we use up to 32 buttons in DirectInput {KEY_JOY1+9, "JOY10"}, @@ -368,17 +356,6 @@ static keyname_t keynames[] = {KEY_DBL2MOUSE1+6, "DBLSEC_MOUSE7"}, {KEY_DBL2MOUSE1+7, "DBLSEC_MOUSE8"}, -#if defined (_NDS) - {KEY_DBLJOY1+0, "DBLJOYA"}, - {KEY_DBLJOY1+1, "DBLJOYB"}, - {KEY_DBLJOY1+2, "DBLJOYX"}, - {KEY_DBLJOY1+3, "DBLJOYY"}, - {KEY_DBLJOY1+4, "DBLJOYL"}, - {KEY_DBLJOY1+5, "DBLJOYR"}, - {KEY_DBLJOY1+6, "DBLJOYSTART"}, - {KEY_DBLJOY1+7, "DBLJOYSELECT"}, -#define NOMOREJOYBTN_1DBL -#else {KEY_DBLJOY1+0, "DBLJOY1"}, {KEY_DBLJOY1+1, "DBLJOY2"}, {KEY_DBLJOY1+2, "DBLJOY3"}, @@ -387,7 +364,6 @@ static keyname_t keynames[] = {KEY_DBLJOY1+5, "DBLJOY6"}, {KEY_DBLJOY1+6, "DBLJOY7"}, {KEY_DBLJOY1+7, "DBLJOY8"}, -#endif #if !defined (NOMOREJOYBTN_1DBL) {KEY_DBLJOY1+8, "DBLJOY9"}, {KEY_DBLJOY1+9, "DBLJOY10"}, @@ -635,22 +611,6 @@ INT32 G_KeyStringtoNum(const char *keystr) return 0; } -#if defined (_NDS) -void G_Controldefault(void) -{ - gamecontrol[gc_fire ][0] = KEY_JOY1+2; //X - gamecontrol[gc_forward ][0] = KEY_UPARROW; - gamecontrol[gc_backward ][0] = KEY_DOWNARROW; - gamecontrol[gc_jump ][0] = KEY_JOY1+0; //A - gamecontrol[gc_use ][0] = KEY_JOY1+3; //Y - gamecontrol[gc_strafeleft ][0] = KEY_JOY1+4; //L - gamecontrol[gc_straferight][0] = KEY_JOY1+5; //R - gamecontrol[gc_turnleft ][0] = KEY_LEFTARROW; - gamecontrol[gc_turnright ][0] = KEY_RIGHTARROW; - gamecontrol[gc_pause ][0] = KEY_JOY1+6; //Start - gamecontrol[gc_weaponnext ][0] = KEY_JOY1+7; //Select -} -#else void G_Controldefault(void) { gamecontrol[gc_forward ][0] = 'w'; @@ -688,7 +648,6 @@ void G_Controldefault(void) gamecontrol[gc_console ][0] = KEY_CONSOLE; gamecontrol[gc_pause ][0] = KEY_PAUSE; } -#endif void G_SaveKeySetting(FILE *f) { diff --git a/src/hardware/hw_defs.h b/src/hardware/hw_defs.h index 52110121b..47c7c02a0 100644 --- a/src/hardware/hw_defs.h +++ b/src/hardware/hw_defs.h @@ -41,14 +41,8 @@ typedef unsigned char FBOOLEAN; // ========================================================================== // byte value for paletted graphics, which represent the transparent color -#ifdef _NDS -// NDS is hardwired to use zero as transparent color -#define HWR_PATCHES_CHROMAKEY_COLORINDEX 0 -#define HWR_CHROMAKEY_EQUIVALENTCOLORINDEX 1 -#else #define HWR_PATCHES_CHROMAKEY_COLORINDEX 255 #define HWR_CHROMAKEY_EQUIVALENTCOLORINDEX 130 -#endif // the chroma key color shows on border sprites, set it to black #define HWR_PATCHES_CHROMAKEY_COLORVALUE (0x00000000) //RGBA format as in grSstWinOpen() diff --git a/src/hardware/hw_main.c b/src/hardware/hw_main.c index cc3f40402..864cd04b6 100644 --- a/src/hardware/hw_main.c +++ b/src/hardware/hw_main.c @@ -5726,12 +5726,8 @@ if (0) HWD.pfnSetSpecialState(HWD_SET_FOG_MODE, 0); // Turn it off } -#ifndef _NDS if (drawsky) HWR_DrawSkyBackground(player); -#else - (void)HWR_DrawSkyBackground; -#endif //Hurdler: it doesn't work in splitscreen mode drawsky = splitscreen; @@ -5970,12 +5966,8 @@ if (0) HWD.pfnSetSpecialState(HWD_SET_FOG_MODE, 0); // Turn it off } -#ifndef _NDS if (!skybox && drawsky) // Don't draw the regular sky if there's a skybox HWR_DrawSkyBackground(player); -#else - (void)HWR_DrawSkyBackground; -#endif //Hurdler: it doesn't work in splitscreen mode drawsky = splitscreen; @@ -6225,12 +6217,7 @@ void HWR_Startup(void) } if (rendermode == render_opengl) - textureformat = patchformat = -#ifdef _NDS - GR_TEXFMT_P_8; -#else - GR_RGBA; -#endif + textureformat = patchformat = GR_RGBA; startupdone = true; } diff --git a/src/i_addrinfo.c b/src/i_addrinfo.c index 712559ae6..208f470f4 100644 --- a/src/i_addrinfo.c +++ b/src/i_addrinfo.c @@ -22,9 +22,7 @@ #endif #elif !defined (__DJGPP__) #include -#ifndef _NDS #include -#endif #include #endif diff --git a/src/lzf.c b/src/lzf.c index 272174f30..ce2bdafc7 100644 --- a/src/lzf.c +++ b/src/lzf.c @@ -119,9 +119,7 @@ /*****************************************************************************/ /* nothing should be changed below */ -#ifndef _NDS typedef unsigned char u8; -#endif typedef const u8 *LZF_STATE[1 << (HLOG)]; diff --git a/src/m_misc.c b/src/m_misc.c index 27d51736d..1cf244da0 100644 --- a/src/m_misc.c +++ b/src/m_misc.c @@ -58,7 +58,7 @@ typedef off_t off64_t; #if defined (_WIN32) #define PRIdS "Iu" -#elif defined (DJGPP) || defined (_NDS) +#elif defined (DJGPP) #define PRIdS "u" #else #define PRIdS "zu" diff --git a/src/nds/Makefile.cfg b/src/nds/Makefile.cfg deleted file mode 100644 index c2d915924..000000000 --- a/src/nds/Makefile.cfg +++ /dev/null @@ -1,31 +0,0 @@ -# Adapted in part from devkitPRO makefiles. - -NOMD5=1 - -# Check if DEVKITARM is set in the environment. If so, continue with compilation. -.SUFFIXES: - -ifeq ($(strip $(DEVKITARM)),) -$(error "Please set DEVKITARM in your environment. export DEVKITARM=devkitARM") -endif - -# use absolute paths because changing PATH variable breaks distcc -PREFIX := $(DEVKITARM)/bin/arm-eabi -NDSTOOL := $(DEVKITARM)/bin/ndstool - -# Disable same warning flags -WFLAGS+=-Wno-inline -Wno-cast-align -WFLAGS+=-Wno-shadow -Wno-char-subscripts -WFLAGS+=-Wno-declaration-after-statement -WFLAGS+=-Wno-old-style-definition -WFLAGS+=-Wno-undef -WFLAGS+=-Wno-unsuffixed-float-constants - -ifndef NOHW - OBJS+=$(OBJDIR)/r_nds3d.o -endif - -ARCH = -mthumb -mthumb-interwork -LDFLAGS += -L$(DEVKITPRO)/libnds/lib -specs=ds_arm9.specs -g $(ARCH) -mno-fpu -LIBS += -lfat -lnds9 -CFLAGS += -D_NDS -DARM9 -I$(DEVKITPRO)/libnds/include $(ARCH) -march=armv5te -mtune=arm946e-s -fomit-frame-pointer -ffast-math diff --git a/src/nds/i_cdmus.c b/src/nds/i_cdmus.c deleted file mode 100644 index f3f703667..000000000 --- a/src/nds/i_cdmus.c +++ /dev/null @@ -1,37 +0,0 @@ -#include "../command.h" -#include "../s_sound.h" -#include "../i_sound.h" - -// -// CD MUSIC I/O -// - -UINT8 cdaudio_started = 0; - -consvar_t cd_volume = {"cd_volume","31",CV_SAVE,soundvolume_cons_t, NULL, 0, NULL, NULL, 0, 0, NULL}; -consvar_t cdUpdate = {"cd_update","1",CV_SAVE, NULL, NULL, 0, NULL, NULL, 0, 0, NULL}; - - -void I_InitCD(void){} - -void I_StopCD(void){} - -void I_PauseCD(void){} - -void I_ResumeCD(void){} - -void I_ShutdownCD(void){} - -void I_UpdateCD(void){} - -void I_PlayCD(UINT8 track, UINT8 looping) -{ - (void)track; - (void)looping; -} - -boolean I_SetVolumeCD(int volume) -{ - (void)volume; - return false; -} diff --git a/src/nds/i_main.c b/src/nds/i_main.c deleted file mode 100644 index 292a5f91d..000000000 --- a/src/nds/i_main.c +++ /dev/null @@ -1,25 +0,0 @@ -#include "../doomdef.h" -#include "../d_main.h" -#include "../m_argv.h" -#include "../i_system.h" - -int main(int argc, char **argv) -{ - myargc = argc; - myargv = argv; /// \todo pull out path to exe from this string - - CONS_Printf("I_StartupSystem..."); - I_StartupSystem(); - - // startup SRB2 - CONS_Printf("Setting up SRB2...\n"); - D_SRB2Main(); - CONS_Printf("Entering main game loop...\n"); - // never return - D_SRB2Loop(); - - // return to OS -#ifndef __GNUC__ - return 0; -#endif -} diff --git a/src/nds/i_net.c b/src/nds/i_net.c deleted file mode 100644 index f6e642022..000000000 --- a/src/nds/i_net.c +++ /dev/null @@ -1,6 +0,0 @@ -#include "../i_net.h" - -boolean I_InitNetwork(void) -{ - return false; -} diff --git a/src/nds/i_sound.c b/src/nds/i_sound.c deleted file mode 100644 index 8dea4ad7d..000000000 --- a/src/nds/i_sound.c +++ /dev/null @@ -1,150 +0,0 @@ -#include "../i_sound.h" - -UINT8 sound_started = 0; - -void *I_GetSfx(sfxinfo_t *sfx) -{ - (void)sfx; - return NULL; -} - -void I_FreeSfx(sfxinfo_t *sfx) -{ - (void)sfx; -} - -void I_StartupSound(void){} - -void I_ShutdownSound(void){} - -// -// SFX I/O -// - -INT32 I_StartSound(sfxenum_t id, INT32 vol, INT32 sep, INT32 pitch, INT32 priority) -{ - (void)id; - (void)vol; - (void)sep; - (void)pitch; - (void)priority; - return -1; -} - -void I_StopSound(INT32 handle) -{ - (void)handle; -} - -INT32 I_SoundIsPlaying(INT32 handle) -{ - (void)handle; - return false; -} - -void I_UpdateSoundParams(INT32 handle, INT32 vol, INT32 sep, INT32 pitch) -{ - (void)handle; - (void)vol; - (void)sep; - (void)pitch; -} - -void I_SetSfxVolume(INT32 volume) -{ - (void)volume; -} - -// -// MUSIC I/O -// -UINT8 music_started = 0; - -void I_InitMusic(void){} - -void I_ShutdownMusic(void){} - -void I_PauseSong(INT32 handle) -{ - (void)handle; -} - -void I_ResumeSong(INT32 handle) -{ - (void)handle; -} - -// -// MIDI I/O -// - -UINT8 midimusic_started = 0; - -void I_InitMIDIMusic(void){} - -void I_ShutdownMIDIMusic(void){} - -void I_SetMIDIMusicVolume(INT32 volume) -{ - (void)volume; -} - -INT32 I_RegisterSong(void *data, size_t len) -{ - (void)data; - (void)len; - return -1; -} - -boolean I_PlaySong(INT32 handle, INT32 looping) -{ - (void)handle; - (void)looping; - return false; -} - -void I_StopSong(INT32 handle) -{ - (void)handle; -} - -void I_UnRegisterSong(INT32 handle) -{ - (void)handle; -} - -// -// DIGMUSIC I/O -// - -UINT8 digmusic_started = 0; - -void I_InitDigMusic(void){} - -void I_ShutdownDigMusic(void){} - -boolean I_StartDigSong(const char *musicname, INT32 looping) -{ - (void)musicname; - (void)looping; - return false; -} - -void I_StopDigSong(void){} - -void I_SetDigMusicVolume(INT32 volume) -{ - (void)volume; -} - -boolean I_SetSongSpeed(float speed) -{ - (void)speed; - return false; -} - -boolean I_SetSongTrack(int track) -{ - (void)track; - return false; -} diff --git a/src/nds/i_system.c b/src/nds/i_system.c deleted file mode 100644 index 3e5c4b8c6..000000000 --- a/src/nds/i_system.c +++ /dev/null @@ -1,286 +0,0 @@ -#include -#include - -#include "../doomdef.h" -#include "../d_main.h" -#include "../i_system.h" -#include "../i_joy.h" - -UINT8 graphics_started = 0; - -UINT8 keyboard_started = 0; - -static volatile tic_t ticcount; - - -UINT32 I_GetFreeMem(UINT32 *total) -{ - *total = 0; - return 0; -} - -tic_t I_GetTime(void) -{ - return ticcount; -} - -void I_Sleep(void){} - -void I_GetEvent(void) -{ - // Mappings of DS keys to SRB2 keys - UINT32 dskeys[] = - { - KEY_A, - KEY_B, - KEY_X, - KEY_Y, - KEY_L, - KEY_R, - KEY_START, - KEY_SELECT - }; - - event_t event; - UINT32 held, up, down; - UINT32 i; - - // Check how the state has changed since last time - scanKeys(); - - // For the d-pad, we only care about the current state - held = keysHeld(); - event.type = ev_joystick; - event.data1 = 0; // First (and only) axis set - - if (held & KEY_LEFT) event.data2 = -1; - else if (held & KEY_RIGHT) event.data2 = 1; - else event.data2 = 0; - - if (held & KEY_UP) event.data3 = -1; - else if (held & KEY_DOWN) event.data3 = 1; - else event.data3 = 0; - - D_PostEvent(&event); - - // For the buttons, we need to report changes in state - up = keysUp(); - down = keysDown(); - for (i = 0; i < sizeof(dskeys)/sizeof(dskeys[0]); i++) - { - // Has this button's state changed? - if ((up | down) & dskeys[i]) - { - event.type = (up & dskeys[i]) ? ev_keyup : ev_keydown; - event.data1 = KEY_JOY1 + i; - D_PostEvent(&event); - } - } -} - -void I_OsPolling(void) -{ - I_GetEvent(); -} - -ticcmd_t *I_BaseTiccmd(void) -{ - static ticcmd_t emptyticcmd; - return &emptyticcmd; -} - -ticcmd_t *I_BaseTiccmd2(void) -{ - static ticcmd_t emptyticcmd2; - return &emptyticcmd2; -} - -void I_Quit(void) -{ - exit(0); -} - -void I_Error(const char *error, ...) -{ - va_list argptr; - - va_start(argptr, error); - viprintf(error, argptr); - va_end(argptr); - - for(;;); -} - -void I_Tactile(FFType Type, const JoyFF_t *Effect) -{ - (void)Type; - (void)Effect; -} - -void I_Tactile2(FFType Type, const JoyFF_t *Effect) -{ - (void)Type; - (void)Effect; -} - -void I_JoyScale(void){} - -void I_JoyScale2(void){} - -void I_InitJoystick(void) -{ - Joystick.bGamepadStyle = true; -} - -void I_InitJoystick2(void){} - -INT32 I_NumJoys(void) -{ - return 0; -} - -const char *I_GetJoyName(INT32 joyindex) -{ - (void)joyindex; - return NULL; -} - -void I_SetupMumble(void) -{ -} - -#ifndef NOMUMBLE -void I_UpdateMumble(const mobj_t *mobj, const listener_t listener) -{ - (void)mobj; - (void)listener; -} -#endif - -void I_OutputMsg(const char *error, ...) -{ - va_list argptr; - - va_start(argptr, error); - viprintf(error, argptr); - va_end(argptr); -} - -void I_StartupMouse(void){} - -void I_StartupMouse2(void){} - -void I_StartupKeyboard(void){} - -INT32 I_GetKey(void) -{ - return 0; -} - -static void NDS_VBlankHandler(void) -{ - ticcount++; -} - -void I_StartupTimer(void) -{ - irqSet(IRQ_VBLANK, NDS_VBlankHandler); -} - -void I_AddExitFunc(void (*func)()) -{ - (void)func; -} - -void I_RemoveExitFunc(void (*func)()) -{ - (void)func; -} - -// Adapted in part from the devkitPro examples. -INT32 I_StartupSystem(void) -{ - lcdMainOnTop(); - - videoSetModeSub(MODE_0_2D); - vramSetBankC(VRAM_C_MAIN_BG); // Get this mapped *out* of the sub BG - vramSetBankI(VRAM_I_SUB_BG_0x06208000); - - // The background VRAM that's mapped starts at 0x06208000. - // The map base is specified in an offset of multiples of 2 KB - // from 0x06200000, and the tile base in multiples of 16 KB. - // We put the tiles at the start and the map 2 KB from the end - // (i.e. 14 KB from the start). - // The map base is then at 0x0620B800 = 0x06200000 + 16 * 0x800 + 7 * 0x800, - // and the tile base is at 0x06208000 = 0x06200000 + 2 * 0x4000. - consoleInit(NULL, 0, BgType_Text4bpp, BgSize_T_256x256, 16+7, 2, false, true); - - // start FAT filesystem code, required for reading SD card - if(!fatInitDefault()) - I_Error("Couldn't init FAT."); - - return 0; -} - -void I_ShutdownSystem(void){} - -void I_GetDiskFreeSpace(INT64* freespace) -{ - *freespace = 0; -} - -char *I_GetUserName(void) -{ - return NULL; -} - -INT32 I_mkdir(const char *dirname, INT32 unixright) -{ - (void)dirname; - (void)unixright; - return -1; -} - -const CPUInfoFlags *I_CPUInfo(void) -{ - return NULL; -} - -const char *I_LocateWad(void) -{ - return NULL; -} - -void I_GetJoystickEvents(void){} - -void I_GetJoystick2Events(void){} - -void I_GetMouseEvents(void){} - -char *I_GetEnv(const char *name) -{ - (void)name; - return NULL; -} - -INT32 I_PutEnv(char *variable) -{ - (void)variable; - return -1; -} - -INT32 I_ClipboardCopy(const char *data, size_t size) -{ - (void)data; - (void)size; - return -1; -} - -char *I_ClipboardPaste(void) -{ - return NULL; -} - -void I_RegisterSysCommands(void) {} - -#include "../sdl/dosstr.c" diff --git a/src/nds/i_video.c b/src/nds/i_video.c deleted file mode 100644 index 3dfb99557..000000000 --- a/src/nds/i_video.c +++ /dev/null @@ -1,148 +0,0 @@ -// Emacs style mode select -*- C++ -*- -//----------------------------------------------------------------------------- -// -// Copyright (C) 1993-1996 by id Software, Inc. -// Portions Copyright (C) 1998-2000 by DooM Legacy Team. -// -// 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 2 -// 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. -//----------------------------------------------------------------------------- -/// \file -/// \brief SRB2 graphics stuff for NDS - - -#include "../doomdef.h" -#include "../command.h" -#include "../i_video.h" - -#include "../hardware/hw_drv.h" -#include "../hardware/hw_main.h" -#include "r_nds3d.h" - -rendermode_t rendermode = render_opengl; - -boolean highcolor = false; - -boolean allow_fullscreen = false; - -consvar_t cv_vidwait = {"vid_wait", "On", CV_SAVE, CV_OnOff, NULL, 0, NULL, NULL, 0, 0, NULL}; - -void I_StartupGraphics(void) -{ - vid.width = 256; - vid.height = 192; - vid.bpp = 1; - vid.rowbytes = vid.width * vid.bpp; - vid.recalc = true; - - HWD.pfnInit = NDS3D_Init; - HWD.pfnShutdown = NDS3D_Shutdown; - HWD.pfnFinishUpdate = NDS3D_FinishUpdate; - HWD.pfnDraw2DLine = NDS3D_Draw2DLine; - HWD.pfnDrawPolygon = NDS3D_DrawPolygon; - HWD.pfnSetBlend = NDS3D_SetBlend; - HWD.pfnClearBuffer = NDS3D_ClearBuffer; - HWD.pfnSetTexture = NDS3D_SetTexture; - HWD.pfnReadRect = NDS3D_ReadRect; - HWD.pfnGClipRect = NDS3D_GClipRect; - HWD.pfnClearMipMapCache = NDS3D_ClearMipMapCache; - HWD.pfnSetSpecialState = NDS3D_SetSpecialState; - HWD.pfnSetPalette = NDS3D_SetPalette; - HWD.pfnGetTextureUsed = NDS3D_GetTextureUsed; - HWD.pfnDrawMD2 = NDS3D_DrawMD2; - HWD.pfnDrawMD2i = NDS3D_DrawMD2i; - HWD.pfnSetTransform = NDS3D_SetTransform; - HWD.pfnGetRenderVersion = NDS3D_GetRenderVersion; - - videoSetMode(MODE_0_3D); - vramSetBankA(VRAM_A_TEXTURE); - vramSetBankB(VRAM_B_TEXTURE); - vramSetBankC(VRAM_C_TEXTURE); - vramSetBankD(VRAM_D_TEXTURE); - vramSetBankE(VRAM_E_TEX_PALETTE); - - glInit(); - - glEnable(GL_TEXTURE_2D); - - glClearColor(16,16,16,31); - glClearPolyID(63); - glClearDepth(0x7FFF); - - glViewport(0, 0, vid.width - 1, vid.height - 1); - - glMatrixMode(GL_PROJECTION); - glLoadIdentity(); - - gluPerspective(fov, ASPECT_RATIO, NEAR_CLIPPING_PLANE, FAR_CLIPPING_PLANE); - - glMatrixMode(GL_MODELVIEW); - glLoadIdentity(); - glScalef(1.0f, 1.0f, -1.0f); - - HWD.pfnInit(I_Error); - HWR_Startup(); -} - -void I_ShutdownGraphics(void){} - -void I_SetPalette(RGBA_t *palette) -{ - (void)palette; -} - -INT32 VID_NumModes(void) -{ - return 0; -} - -INT32 VID_GetModeForSize(INT32 w, INT32 h) -{ - (void)w; - (void)h; - return 0; -} - -void VID_PrepareModeList(void){} - -INT32 VID_SetMode(INT32 modenum) -{ - (void)modenum; - return 0; -} - -const char *VID_GetModeName(INT32 modenum) -{ - (void)modenum; - return NULL; -} - -void I_UpdateNoBlit(void){} - -void I_FinishUpdate(void) -{ - HWD.pfnFinishUpdate(true); -} - -void I_UpdateNoVsync(void) {} - -void I_WaitVBL(INT32 count) -{ - (void)count; -} - -void I_ReadScreen(UINT8 *scr) -{ - (void)scr; -} - -void I_BeginRead(void){} - -void I_EndRead(void){} diff --git a/src/nds/r_nds3d.c b/src/nds/r_nds3d.c deleted file mode 100644 index dbdcec158..000000000 --- a/src/nds/r_nds3d.c +++ /dev/null @@ -1,389 +0,0 @@ -// Emacs style mode select -*- C++ -*- -//----------------------------------------------------------------------------- -// -// Copyright (C) 1993-1996 by id Software, Inc. -// Portions Copyright (C) 1998-2000 by DooM Legacy Team. -// -// 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 2 -// 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. -//----------------------------------------------------------------------------- -/// \file -/// \brief NDS 3D API for SRB2. -// -// In an ideal world, we would share as much code as possible with r_opengl.c, -// but this will do for now. - -#include "../doomtype.h" -#include "../hardware/hw_defs.h" -#include "../hardware/hw_dll.h" -#include "../hardware/hw_md2.h" -#include "r_nds3d.h" - -static I_Error_t I_Error_GL = NULL; - -#define NOTEXTURE_NUM 0 // small white texture -#define FIRST_TEX_AVAIL (NOTEXTURE_NUM + 1) -#define MAX_SRB2_TEXTURES 256 - -FCOORD NEAR_CLIPPING_PLANE = 0.9f; -float fov = 90.0f; - -static FBITFIELD CurrentPolyFlags = 0xFFFFFFFF; -static UINT32 CurrentGLPolyFmt = POLY_CULL_NONE; -static UINT8 CurrentPolyAlpha = 31; -static UINT16 myPaletteData[256]; -static FTextureInfo* gr_cachetail = NULL; -static FTextureInfo* gr_cachehead = NULL; -static INT32 NextTexAvail = FIRST_TEX_AVAIL; -static UINT32 tex_downloaded = 0; -static INT32 texids[MAX_SRB2_TEXTURES]; -static boolean scalehack = false; - - -static void GenerateTextureNames(void) -{ - glGenTextures(MAX_SRB2_TEXTURES - 1, texids + 1); - texids[NOTEXTURE_NUM] = 0; -} - -static void Flush(void) -{ - // Delete all textures at once, since libnds's glDeleteTextures seems to be buggy. - glResetTextures(); - GenerateTextureNames(); - while (gr_cachehead) - { - gr_cachehead->downloaded = 0; - gr_cachehead = gr_cachehead->nextmipmap; - } - gr_cachetail = gr_cachehead = NULL; - NextTexAvail = FIRST_TEX_AVAIL; - tex_downloaded = 0; -} - -static void SetNoTexture(void) -{ - // Set small white texture. - if (tex_downloaded != NOTEXTURE_NUM) - { - glBindTexture(GL_TEXTURE_2D, texids[NOTEXTURE_NUM]); - tex_downloaded = NOTEXTURE_NUM; - } -} - - -static void SetAlpha(UINT8 alpha) -{ - CurrentPolyAlpha = alpha >> 3; - glPolyFmt(CurrentGLPolyFmt | POLY_ALPHA(CurrentPolyAlpha)); -} - - - -boolean NDS3D_Init(I_Error_t ErrorFunction) -{ - I_Error_GL = ErrorFunction; - glPolyFmt(CurrentGLPolyFmt | POLY_ALPHA(CurrentPolyAlpha)); - GenerateTextureNames(); - return true; -} - -void NDS3D_Shutdown(void) {} - -void NDS3D_SetPalette(RGBA_t *ppal, RGBA_t *pgamma) -{ - INT32 i; - - for (i = 0; i < 256; i++) - { - UINT8 red = (UINT8)min((ppal[i].s.red*pgamma->s.red)/127, 255) >> 3; - UINT8 green = (UINT8)min((ppal[i].s.green*pgamma->s.green)/127, 255) >> 3; - UINT8 blue = (UINT8)min((ppal[i].s.blue*pgamma->s.blue)/127, 255) >> 3; - - myPaletteData[i] = ARGB16(ppal[i].s.alpha ? 1 : 0, red, green, blue); - } - - Flush(); -} - -void NDS3D_FinishUpdate(INT32 waitvbl) -{ - (void)waitvbl; - - glFlush(0); -} - -void NDS3D_Draw2DLine(F2DCoord *v1, F2DCoord *v2, RGBA_t Color) -{ - (void)v1; - (void)v2; - (void)Color; -} - -void NDS3D_DrawPolygon(FSurfaceInfo *pSurf, FOutVector *pOutVerts, FUINT iNumPts, FBITFIELD PolyFlags) -{ - FUINT i; - - NDS3D_SetBlend(PolyFlags); - - // If Modulated, mix the surface colour to the texture - if ((CurrentPolyFlags & PF_Modulated) && pSurf) - { - glColor3b(pSurf->FlatColor.s.red, pSurf->FlatColor.s.green, pSurf->FlatColor.s.blue); - SetAlpha(pSurf->FlatColor.s.alpha); - } - - // libnds doesn't have GL_TRIANGLE_FAN, so use GL_TRIANGLE_STRIP instead - glBegin(GL_TRIANGLE_STRIP); - for (i = 0; i < iNumPts; i++) - { - FUINT index = (i & 1) ? (i >> 1) : (iNumPts - 1 - (i >> 1)); - FLOAT x, y, z; - - if (scalehack) - { - x = pOutVerts[index].x/4096.0f; - y = pOutVerts[index].y/4096.0f; - z = pOutVerts[index].z/4096.0f; - } - else - { - x = pOutVerts[index].x; - y = pOutVerts[index].y; - z = pOutVerts[index].z; - } - - glTexCoord2f(pOutVerts[index].sow, pOutVerts[index].tow); - glVertex3f(x,y,z); - } - glEnd(); -} - -void NDS3D_SetBlend(FBITFIELD PolyFlags) -{ - FBITFIELD Xor = PolyFlags ^ CurrentPolyFlags; - - if (Xor & (PF_NoTexture|PF_Modulated)) - { - if (Xor&PF_Modulated) - { - if(!(PolyFlags & PF_Modulated)) - { - glColor3b(255, 255, 255); - CurrentPolyAlpha = 31; - } - } - - if (PolyFlags & PF_NoTexture) - { - SetNoTexture(); - } - } - - CurrentPolyFlags = PolyFlags; - glPolyFmt(CurrentGLPolyFmt | POLY_ALPHA(CurrentPolyAlpha)); -} - -void NDS3D_ClearBuffer(FBOOLEAN ColorMask, FBOOLEAN DepthMask, FRGBAFloat *ClearColor) -{ - (void)ClearColor; - - if (ColorMask && ClearColor) - { - // TODO: Fixed-ify - glClearColor((uint8)(ClearColor->red*31), - (uint8)(ClearColor->green*31), - (uint8)(ClearColor->blue*31), - (uint8)(ClearColor->alpha*31)); - } - - if (DepthMask) - glClearDepth(GL_MAX_DEPTH); - - NDS3D_SetBlend(DepthMask ? PF_Occlude | CurrentPolyFlags : CurrentPolyFlags&~PF_Occlude); -} - -void NDS3D_SetTexture(FTextureInfo *TexInfo) -{ - if (!TexInfo) - { - SetNoTexture(); - return; - } - else if (TexInfo->downloaded) - { - if (TexInfo->downloaded != tex_downloaded) - { - glBindTexture(GL_TEXTURE_2D, texids[TexInfo->downloaded]); - tex_downloaded = TexInfo->downloaded; - } - } - else if (TexInfo->grInfo.data) - { - UINT8 wtype, htype; - INT32 texparam = GL_TEXTURE_COLOR0_TRANSPARENT; - - // We rely on the numerical values of GL_TEXTURE_SIZE_ENUM here. - wtype = TEXTURE_SIZE_8; - while(TexInfo->width > 1 << (wtype + 3)) wtype++; - - htype = TEXTURE_SIZE_8; - while(TexInfo->height > 1 << (htype + 3)) htype++; - - TexInfo->downloaded = NextTexAvail++; - tex_downloaded = TexInfo->downloaded; - glBindTexture(GL_TEXTURE_2D, texids[TexInfo->downloaded]); - - if(!glTexImage2D(GL_TEXTURE_2D, 0, GL_RGB256, wtype, htype, 0, TEXGEN_TEXCOORD, TexInfo->grInfo.data)) - { - // HACK: If we're out of memory, flush and try again. - // This will result in artefacts for one frame. - Flush(); - TexInfo->downloaded = 0; - NDS3D_SetTexture(TexInfo); - return; - } - - if (TexInfo->downloaded > FIRST_TEX_AVAIL) - { - // We already have a texture using the palette, so it's already in VRAM - glAssignColorTable(GL_TEXTURE_2D, texids[FIRST_TEX_AVAIL]); - } - else - { - // Generate the palette in hardware - glColorTableEXT(0, 0, 256, 0, 0, myPaletteData); - } - - if (TexInfo->flags & TF_WRAPX) - texparam |= GL_TEXTURE_WRAP_S; - - if (TexInfo->flags & TF_WRAPY) - texparam |= GL_TEXTURE_WRAP_T; - - glTexParameter(0, texparam); - - TexInfo->nextmipmap = NULL; - if (gr_cachetail) - { - gr_cachetail->nextmipmap = TexInfo; - gr_cachetail = TexInfo; - } - else - gr_cachetail = gr_cachehead = TexInfo; - } -} - -void NDS3D_ReadRect(INT32 x, INT32 y, INT32 width, INT32 height, INT32 dst_stride, UINT16 *dst_data) -{ - (void)x; - (void)y; - (void)width; - (void)height; - (void)dst_stride; - (void)dst_data; -} - -void NDS3D_GClipRect(INT32 minx, INT32 miny, INT32 maxx, INT32 maxy, float nearclip) -{ - (void)minx; - (void)miny; - (void)maxx; - (void)maxy; - //glViewport(minx, vid.height-maxy, maxx-minx, maxy-miny); - NEAR_CLIPPING_PLANE = nearclip; - - glMatrixMode(GL_PROJECTION); - glLoadIdentity(); - gluPerspective(fov, ASPECT_RATIO, NEAR_CLIPPING_PLANE, FAR_CLIPPING_PLANE); - glMatrixMode(GL_MODELVIEW); -} - -void NDS3D_ClearMipMapCache(void) {} - -void NDS3D_SetSpecialState(hwdspecialstate_t IdState, INT32 Value) -{ - (void)IdState; - (void)Value; -} - -void NDS3D_DrawMD2(INT32 *gl_cmd_buffer, md2_frame_t *frame, FTransform *pos, float scale) -{ - (void)gl_cmd_buffer; - (void)frame; - (void)pos; - (void)scale; -} - -void NDS3D_DrawMD2i(INT32 *gl_cmd_buffer, md2_frame_t *frame, UINT32 duration, UINT32 tics, md2_frame_t *nextframe, FTransform *pos, float scale, UINT8 flipped, UINT8 *color) -{ - (void)gl_cmd_buffer; - (void)frame; - (void)duration; - (void)tics; - (void)nextframe; - (void)pos; - (void)scale; - (void)flipped; - (void)color; -} - -void NDS3D_SetTransform(FTransform *ptransform) -{ - static INT32 special_splitscreen; - glLoadIdentity(); - if (ptransform) - { - scalehack = true; - - glScalef(ptransform->scalex*4096.0f, ptransform->scaley*4096.0f, -ptransform->scalez*4096.0f); - glRotatef(ptransform->anglex , 1.0f, 0.0f, 0.0f); - glRotatef(ptransform->angley+270.0f, 0.0f, 1.0f, 0.0f); - glTranslatef(-ptransform->x/4096.0f, -ptransform->z/4096.0f, -ptransform->y/4096.0f); - - glMatrixMode(GL_PROJECTION); - glLoadIdentity(); - special_splitscreen = (ptransform->splitscreen && ptransform->fovxangle == 90.0f); - if (special_splitscreen) - gluPerspective(53.13l, 2*ASPECT_RATIO, // 53.13 = 2*atan(0.5) - NEAR_CLIPPING_PLANE, FAR_CLIPPING_PLANE); - else - gluPerspective(ptransform->fovxangle, ASPECT_RATIO, NEAR_CLIPPING_PLANE, FAR_CLIPPING_PLANE); - - glMatrixMode(GL_MODELVIEW); - } - else - { - scalehack = false; - - glScalef(1.0f, 1.0f, -1.0f); - - glMatrixMode(GL_PROJECTION); - glLoadIdentity(); - if (special_splitscreen) - gluPerspective(53.13l, 2*ASPECT_RATIO, // 53.13 = 2*atan(0.5) - NEAR_CLIPPING_PLANE, FAR_CLIPPING_PLANE); - else - //Hurdler: is "fov" correct? - gluPerspective(fov, ASPECT_RATIO, NEAR_CLIPPING_PLANE, FAR_CLIPPING_PLANE); - - glMatrixMode(GL_MODELVIEW); - } -} - -INT32 NDS3D_GetTextureUsed(void) -{ - return 0; -} - -INT32 NDS3D_GetRenderVersion(void) -{ - return 0; -} diff --git a/src/nds/r_nds3d.h b/src/nds/r_nds3d.h deleted file mode 100644 index 3a7075bcd..000000000 --- a/src/nds/r_nds3d.h +++ /dev/null @@ -1,55 +0,0 @@ -// Emacs style mode select -*- C++ -*- -//----------------------------------------------------------------------------- -// -// Copyright (C) 1993-1996 by id Software, Inc. -// Copyright (C) 1998-2000 by DooM Legacy Team. -// -// 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 2 -// 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. -//----------------------------------------------------------------------------- -/// \file -/// \brief NDS 3D API for SRB2. - -#ifndef __R_NDS3D__ -#define __R_NDS3D__ - -#include "../doomtype.h" -#include "../hardware/hw_defs.h" -#include "../hardware/hw_dll.h" -#include "../hardware/hw_md2.h" - -#define FAR_CLIPPING_PLANE 150000.0f -#define ASPECT_RATIO 1.0f - -typedef float FCOORD; - -extern FCOORD NEAR_CLIPPING_PLANE; -extern float fov; - -boolean NDS3D_Init(I_Error_t ErrorFunction); -void NDS3D_Shutdown(void); -void NDS3D_SetPalette(RGBA_t *ppal, RGBA_t *pgamma); -void NDS3D_FinishUpdate(INT32 waitvbl); -void NDS3D_Draw2DLine(F2DCoord *v1, F2DCoord *v2, RGBA_t Color); -void NDS3D_DrawPolygon(FSurfaceInfo *pSurf, FOutVector *pOutVerts, FUINT iNumPts, FBITFIELD PolyFlags); -void NDS3D_SetBlend(FBITFIELD PolyFlags); -void NDS3D_ClearBuffer(FBOOLEAN ColorMask, FBOOLEAN DepthMask, FRGBAFloat *ClearColor); -void NDS3D_SetTexture(FTextureInfo *TexInfo); -void NDS3D_ReadRect(INT32 x, INT32 y, INT32 width, INT32 height, INT32 dst_stride, UINT16 *dst_data); -void NDS3D_GClipRect(INT32 minx, INT32 miny, INT32 maxx, INT32 maxy, float nearclip); -void NDS3D_ClearMipMapCache(void); -void NDS3D_SetSpecialState(hwdspecialstate_t IdState, INT32 Value); -void NDS3D_DrawMD2(INT32 *gl_cmd_buffer, md2_frame_t *frame, FTransform *pos, float scale); -void NDS3D_DrawMD2i(INT32 *gl_cmd_buffer, md2_frame_t *frame, UINT32 duration, UINT32 tics, md2_frame_t *nextframe, FTransform *pos, float scale, UINT8 flipped, UINT8 *color); -void NDS3D_SetTransform(FTransform *ptransform); -INT32 NDS3D_GetTextureUsed(void); -INT32 NDS3D_GetRenderVersion(void); - -#endif diff --git a/src/r_draw.c b/src/r_draw.c index 4479cf02c..e06d43f67 100644 --- a/src/r_draw.c +++ b/src/r_draw.c @@ -431,10 +431,6 @@ CV_PossibleValue_t Color_cons_t[MAXSKINCOLORS+1]; */ void R_InitTranslationTables(void) { -#ifdef _NDS - // Ugly temporary NDS hack. - transtables = (UINT8*)0x2000000; -#else // Load here the transparency lookup tables 'TINTTAB' // NOTE: the TINTTAB resource MUST BE aligned on 64k for the asm // optimised code (in other words, transtables pointer low word is 0) @@ -450,7 +446,6 @@ void R_InitTranslationTables(void) W_ReadLump(W_GetNumForName("TRANS70"), transtables+0x60000); W_ReadLump(W_GetNumForName("TRANS80"), transtables+0x70000); W_ReadLump(W_GetNumForName("TRANS90"), transtables+0x80000); -#endif } diff --git a/src/screen.h b/src/screen.h index 8067860ec..80bbb4146 100644 --- a/src/screen.h +++ b/src/screen.h @@ -43,7 +43,7 @@ // we try to re-allocate a minimum of buffers for stability of the memory, // so all the small-enough tables based on screen size, are allocated once // and for all at the maximum size. -#if defined (_WIN32_WCE) || defined (_NDS) +#if defined (_WIN32_WCE) #define MAXVIDWIDTH 320 #define MAXVIDHEIGHT 200 #else diff --git a/src/tables.c b/src/tables.c index 6b06c81b4..e181b9aa8 100644 --- a/src/tables.c +++ b/src/tables.c @@ -159,12 +159,10 @@ angle_t FixedAngle(fixed_t fa) } -#if !(defined _NDS) || !(defined NONET) #include "t_ftan.c" #include "t_fsin.c" fixed_t *finecosine = &finesine[FINEANGLES/4]; -#endif #include "t_tan2a.c" diff --git a/src/tables.h b/src/tables.h index e05b81845..03e80788a 100644 --- a/src/tables.h +++ b/src/tables.h @@ -25,7 +25,6 @@ #define ANGLETOFINESHIFT 19 // 0x100000000 to 0x2000 #define FINEANGLE_C(x) ((FixedAngle((x)*FRACUNIT)>>ANGLETOFINESHIFT) & FINEMASK) // ((x*(ANGLE_45/45))>>ANGLETOFINESHIFT) & FINEMASK -#if !(defined _NDS) || !(defined NONET) // Effective size is 10240. extern fixed_t finesine[5*FINEANGLES/4]; @@ -34,7 +33,6 @@ extern fixed_t *finecosine; // Effective size is 4096. extern fixed_t finetangent[FINEANGLES/2]; -#endif #define ANG1 0x00B60B61 //0.B6~ #define ANG2 0x016C16C1 //.6C1~ @@ -112,17 +110,9 @@ void FM_Rotate(matrix_t *dest, angle_t angle, fixed_t x, fixed_t y, fixed_t z); // The table values in tables.c are calculated with this many fractional bits. #define FINE_FRACBITS 16 -#if (defined _NDS) && (defined NONET) -// Use the NDS's trig functions. This would break netplay, so we only do -// it if NONET is defined. -#define FINESINE(n) ((fixed_t)sinLerp((INT16)(((INT32)(n))<<(ANGLETOFINESHIFT-17))) << (FRACBITS - 12)) -#define FINECOSINE(n) ((fixed_t)cosLerp((INT16)(((INT32)(n))<<(ANGLETOFINESHIFT-17))) << (FRACBITS - 12)) -#define FINETANGENT(n) ((fixed_t)tanLerp((INT16)(((INT32)(n)-(FINEANGLES>>2))<<(ANGLETOFINESHIFT-17))) << (FRACBITS - 12)) -#else // These macros should be used in case FRACBITS < FINE_FRACBITS. #define FINESINE(n) (finesine[n]>>(FINE_FRACBITS-FRACBITS)) #define FINECOSINE(n) (finecosine[n]>>(FINE_FRACBITS-FRACBITS)) #define FINETANGENT(n) (finetangent[n]>>(FINE_FRACBITS-FRACBITS)) -#endif #endif diff --git a/src/z_zone.c b/src/z_zone.c index a30b160a3..a28ea87b0 100644 --- a/src/z_zone.c +++ b/src/z_zone.c @@ -220,10 +220,6 @@ static void *xm(size_t size) if (p == NULL) { -#if defined (_NDS) - // Temporary-ish debugging measure - Command_Memfree_f(); -#endif I_Error("Out of memory allocating %s bytes", sizeu1(size)); } } diff --git a/src/z_zone.h b/src/z_zone.h index cd5fb2f7c..552fd87ba 100644 --- a/src/z_zone.h +++ b/src/z_zone.h @@ -116,10 +116,6 @@ char *Z_StrDup(const char *in); #define Z_SetUser(p,u) Z_SetUser2(p, u) #endif -#ifdef _NDS ///TODO: need a lock reference system -#define Z_Unlock(p) Z_ChangeTag(p, PU_CACHE_UNLOCKED) -#else #define Z_Unlock(p) (void)p -#endif #endif From 302d0425e0c29dcad25edc3ced9515b05dd64c46 Mon Sep 17 00:00:00 2001 From: Monster Iestyn Date: Fri, 29 Sep 2017 23:25:34 +0100 Subject: [PATCH 059/111] Incinerated WinCE --- src/Makefile.cfg | 12 - src/d_clisrv.c | 2 - src/d_main.c | 21 +- src/d_netfil.c | 10 +- src/doomdef.h | 17 +- src/doomtype.h | 13 +- src/filesrch.c | 64 +- src/i_tcp.c | 7 +- src/lzf.c | 2 +- src/m_fixed.h | 5 - src/md5.c | 4 +- src/mserv.c | 16 +- src/p_setup.c | 2 +- src/p_spec.c | 4 - src/r_data.c | 2 +- src/s_sound.c | 12 +- src/screen.h | 8 +- src/sdl12/Makefile.cfg | 4 - src/sdl12/SDL_main/SDL_win32_main.c | 74 +- src/sdl12/SRB2CE/Makefile.cfg | 12 - src/sdl12/SRB2CE/SRB2CE.zip | Bin 34234 -> 0 bytes src/sdl12/SRB2CE/cehelp.c | 446 ---- src/sdl12/SRB2CE/cehelp.h | 63 - src/sdl12/endtxt.c | 2 - src/sdl12/i_cdmus.c | 4 - src/sdl12/i_main.c | 10 +- src/sdl12/i_system.c | 70 +- src/sdl12/i_video.c | 54 +- src/sdl12/sdl_sound.c | 13 +- src/w_wad.c | 4 - src/win32ce/GameX.h | 174 -- src/win32ce/SRB2CE.zip | Bin 34234 -> 0 bytes src/win32ce/Srb2win.ico | Bin 372798 -> 0 bytes src/win32ce/afxres.h | 17 - src/win32ce/gapi_c.cpp | 129 - src/win32ce/gapi_c.h | 12 - src/win32ce/gxgapilib.c | 636 ----- src/win32ce/gxgapilib.h | 81 - src/win32ce/midstuff.h | 150 -- src/win32ce/resource.h | 18 - src/win32ce/win_cd.c | 529 ---- src/win32ce/win_dbg.c | 629 ----- src/win32ce/win_dbg.h | 54 - src/win32ce/win_dll.c | 164 -- src/win32ce/win_dll.h | 31 - src/win32ce/win_file.c | 123 - src/win32ce/win_file.h | 19 - src/win32ce/win_main.c | 539 ---- src/win32ce/win_main.h | 55 - src/win32ce/win_net.c | 39 - src/win32ce/win_snd.c | 2406 ------------------ src/win32ce/win_sys.c | 3542 --------------------------- src/win32ce/win_vid.c | 865 ------- src/win32ce/wince_stuff.c | 135 - src/win32ce/wince_stuff.h | 17 - 55 files changed, 52 insertions(+), 11269 deletions(-) delete mode 100644 src/sdl12/SRB2CE/Makefile.cfg delete mode 100644 src/sdl12/SRB2CE/SRB2CE.zip delete mode 100644 src/sdl12/SRB2CE/cehelp.c delete mode 100644 src/sdl12/SRB2CE/cehelp.h delete mode 100644 src/win32ce/GameX.h delete mode 100644 src/win32ce/SRB2CE.zip delete mode 100644 src/win32ce/Srb2win.ico delete mode 100644 src/win32ce/afxres.h delete mode 100644 src/win32ce/gapi_c.cpp delete mode 100644 src/win32ce/gapi_c.h delete mode 100644 src/win32ce/gxgapilib.c delete mode 100644 src/win32ce/gxgapilib.h delete mode 100644 src/win32ce/midstuff.h delete mode 100644 src/win32ce/resource.h delete mode 100644 src/win32ce/win_cd.c delete mode 100644 src/win32ce/win_dbg.c delete mode 100644 src/win32ce/win_dbg.h delete mode 100644 src/win32ce/win_dll.c delete mode 100644 src/win32ce/win_dll.h delete mode 100644 src/win32ce/win_file.c delete mode 100644 src/win32ce/win_file.h delete mode 100644 src/win32ce/win_main.c delete mode 100644 src/win32ce/win_main.h delete mode 100644 src/win32ce/win_net.c delete mode 100644 src/win32ce/win_snd.c delete mode 100644 src/win32ce/win_sys.c delete mode 100644 src/win32ce/win_vid.c delete mode 100644 src/win32ce/wince_stuff.c delete mode 100644 src/win32ce/wince_stuff.h diff --git a/src/Makefile.cfg b/src/Makefile.cfg index 5973648a0..41c5c5238 100644 --- a/src/Makefile.cfg +++ b/src/Makefile.cfg @@ -210,7 +210,6 @@ endif #indicate platform and what interface use with -ifndef WINCE ifndef LINUX ifndef FREEBSD ifndef CYGWIN32 @@ -224,7 +223,6 @@ endif endif endif endif -endif #determine the interface directory (where you put all i_*.c) i_cdmus_o=$(OBJDIR)/i_cdmus.o @@ -317,16 +315,6 @@ ifdef MINGW NASMFORMAT=win32 OBJDIR:=$(OBJDIR)/Mingw BIN:=$(BIN)/Mingw -else -ifdef WINCE - INTERFACE=sdl12 - NONX86=1 - PREFIX?=arm-wince-pe - SDL=1 - SDL12=1 - OBJDIR:=$(OBJDIR)/WinCE - BIN:=$(BIN)/WinCE -endif endif endif endif diff --git a/src/d_clisrv.c b/src/d_clisrv.c index 81b84a54d..df2bea972 100644 --- a/src/d_clisrv.c +++ b/src/d_clisrv.c @@ -10,9 +10,7 @@ /// \file d_clisrv.c /// \brief SRB2 Network game communication and protocol, all OS independent parts. -#if !defined (UNDER_CE) #include -#endif #ifdef __GNUC__ #include //for unlink #endif diff --git a/src/d_main.c b/src/d_main.c index 2b3ffc0db..5d0dfab37 100644 --- a/src/d_main.c +++ b/src/d_main.c @@ -30,14 +30,12 @@ int snprintf(char *str, size_t n, const char *fmt, ...); //int vsnprintf(char *str, size_t n, const char *fmt, va_list ap); #endif -#if defined (_WIN32) && !defined (_WIN32_WCE) +#ifdef _WIN32 #include #include #endif -#if !defined (UNDER_CE) #include -#endif #include "doomdef.h" #include "am_map.h" @@ -800,11 +798,9 @@ static void IdentifyVersion(void) } else { -#ifndef _WIN32_WCE if (getcwd(srb2path, 256) != NULL) srb2waddir = srb2path; else -#endif { srb2waddir = "."; } @@ -953,7 +949,7 @@ void D_SRB2Main(void) boolean autostart = false; // keep error messages until the final flush(stderr) -#if !defined (PC_DOS) && !defined (_WIN32_WCE) && !defined(NOTERMIOS) +#if !defined (PC_DOS) && !defined(NOTERMIOS) if (setvbuf(stderr, NULL, _IOFBF, 1000)) I_OutputMsg("setvbuf didnt work\n"); #endif @@ -975,11 +971,11 @@ void D_SRB2Main(void) // identify the main IWAD file to use IdentifyVersion(); -#if !defined (_WIN32_WCE) && !defined(NOTERMIOS) +#if !defined(NOTERMIOS) setbuf(stdout, NULL); // non-buffered output #endif -#if defined (_WIN32_WCE) //|| defined (_DEBUG) +#if 0 //defined (_DEBUG) devparm = M_CheckParm("-nodebug") == 0; #else devparm = M_CheckParm("-debug") != 0; @@ -1007,11 +1003,6 @@ void D_SRB2Main(void) { #if ((defined (__unix__) && !defined (MSDOS)) || defined(__APPLE__) || defined (UNIXCOMMON)) && !defined (__CYGWIN__) I_Error("Please set $HOME to your home directory\n"); -#elif defined (_WIN32_WCE) && 0 - if (dedicated) - snprintf(configfile, sizeof configfile, "/Storage Card/SRB2DEMO/d"CONFIGFILENAME); - else - snprintf(configfile, sizeof configfile, "/Storage Card/SRB2DEMO/"CONFIGFILENAME); #else if (dedicated) snprintf(configfile, sizeof configfile, "d"CONFIGFILENAME); @@ -1419,14 +1410,14 @@ const char *D_Home(void) userhome = M_GetNextParm(); else { -#if !((defined (__unix__) && !defined (MSDOS)) || defined(__APPLE__) || defined (UNIXCOMMON)) && !defined (__APPLE__) && !defined(_WIN32_WCE) +#if !((defined (__unix__) && !defined (MSDOS)) || defined(__APPLE__) || defined (UNIXCOMMON)) && !defined (__APPLE__) if (FIL_FileOK(CONFIGFILENAME)) usehome = false; // Let's NOT use home else #endif userhome = I_GetEnv("HOME"); //Alam: my new HOME for srb2 } -#if defined (_WIN32) && !defined(_WIN32_WCE) //Alam: only Win32 have APPDATA and USERPROFILE +#ifdef _WIN32 //Alam: only Win32 have APPDATA and USERPROFILE if (!userhome && usehome) //Alam: Still not? { char *testhome = NULL; diff --git a/src/d_netfil.c b/src/d_netfil.c index 9518433de..90e03041f 100644 --- a/src/d_netfil.c +++ b/src/d_netfil.c @@ -11,21 +11,17 @@ /// \brief Transfer a file using HSendPacket. #include -#ifndef _WIN32_WCE #ifdef __OS2__ #include #endif // __OS2__ #include -#endif -#if !defined (UNDER_CE) #include -#endif -#if ((defined (_WIN32) && !defined (_WIN32_WCE)) || defined (__DJGPP__)) +#if defined (_WIN32) || defined (__DJGPP__) #include #include -#elif !defined (_WIN32_WCE) +#else #include #include #include @@ -34,7 +30,7 @@ #ifdef __GNUC__ #include #include -#elif defined (_WIN32) && !defined (_WIN32_WCE) +#elif defined (_WIN32) #include #endif #ifdef __DJGPP__ diff --git a/src/doomdef.h b/src/doomdef.h index 892130f06..a49fb0207 100644 --- a/src/doomdef.h +++ b/src/doomdef.h @@ -28,13 +28,11 @@ // Use Mixer interface? #ifdef HAVE_MIXER - //#if !defined(_WIN32_WCE) #define SOUND SOUND_MIXER #define NOHS // No HW3SOUND #ifdef HW3SOUND #undef HW3SOUND #endif - //#endif #endif // Use generic SDL interface. @@ -70,7 +68,7 @@ #endif #endif -#if defined (_WIN32) || defined (_WIN32_WCE) +#ifdef _WIN32 #define ASMCALL __cdecl #else #define ASMCALL @@ -87,13 +85,6 @@ // warning C4152: nonstandard extension, function/data pointer conversion in expression // warning C4213: nonstandard extension used : cast on l-value -#if defined (_WIN32_WCE) && defined (DEBUG) && defined (ARM) -#if defined (ARMV4) || defined (ARMV4I) -//#pragma warning(disable : 1166) -// warning LNK1166: cannot adjust code at offset= -#endif -#endif - #include "doomtype.h" @@ -110,13 +101,11 @@ #include #endif -#if !defined (_WIN32_WCE) #include #include -#endif #include -#if (defined (_WIN32) && !defined (_WIN32_WCE)) || defined (__DJGPP__) +#if defined (_WIN32) || defined (__DJGPP__) #include #endif @@ -381,13 +370,11 @@ enum { }; // Name of local directory for config files and savegames -#if !defined(_WIN32_WCE) #if (((defined (__unix__) && !defined (MSDOS)) || defined (UNIXCOMMON)) && !defined (__CYGWIN__)) && !defined (__APPLE__) #define DEFAULTDIR ".srb2" #else #define DEFAULTDIR "srb2" #endif -#endif #include "g_state.h" diff --git a/src/doomtype.h b/src/doomtype.h index 796a5ca29..4af899ed0 100644 --- a/src/doomtype.h +++ b/src/doomtype.h @@ -17,7 +17,7 @@ #ifndef __DOOMTYPE__ #define __DOOMTYPE__ -#if defined (_WIN32) || (defined (_WIN32_WCE) && !defined (__GNUC__)) +#ifdef _WIN32 //#define WIN32_LEAN_AND_MEAN #define RPC_NO_WINDOWS_H #include @@ -107,15 +107,6 @@ typedef long ssize_t; #undef strnicmp #define strnicmp(x,y,n) strncasecmp(x,y,n) #endif -#ifdef _WIN32_WCE -#ifndef __GNUC__ - #define stricmp(x,y) _stricmp(x,y) - #define strnicmp _strnicmp -#endif - #define strdup _strdup - #define strupr _strupr - #define strlwr _strlwr -#endif #if defined (macintosh) //|| defined (__APPLE__) //skip all boolean/Boolean crap #define true 1 @@ -167,7 +158,7 @@ size_t strlcpy(char *dst, const char *src, size_t siz); //faB: clean that up !! #if defined( _MSC_VER) && (_MSC_VER >= 1800) // MSVC 2013 and forward #include "stdbool.h" - #elif defined (_WIN32) || (defined (_WIN32_WCE) && !defined (__GNUC__)) + #elif defined (_WIN32) #define false FALSE // use windows types #define true TRUE #define boolean BOOL diff --git a/src/filesrch.c b/src/filesrch.c index 1f159d5c0..b4a995154 100644 --- a/src/filesrch.c +++ b/src/filesrch.c @@ -21,11 +21,7 @@ #define RPC_NO_WINDOWS_H #include #endif -#ifdef _WIN32_WCE -#include "sdl12/SRB2CE/cehelp.h" -#else #include -#endif #include #include "filesrch.h" @@ -34,7 +30,7 @@ #include "z_zone.h" #include "m_menu.h" // Addons_option_Onchange -#if (defined (_WIN32) && !defined (_WIN32_WCE)) && defined (_MSC_VER) +#if defined (_WIN32) && defined (_MSC_VER) #include #include @@ -338,63 +334,6 @@ UINT8 refreshdirmenu = 0; size_t packetsizetally = 0; size_t mainwadstally = 0; -#ifdef _WIN32_WCE -filestatus_t filesearch(char *filename, const char *startpath, const UINT8 *wantedmd5sum, - boolean completepath, int maxsearchdepth) -{ -#ifdef __GNUC__ -//NONE? - startpath = filename = NULL; - wantedmd5sum = NULL; - maxsearchdepth = 0; - completepath = false; -#else - WIN32_FIND_DATA dta; - HANDLE searchhandle = INVALID_HANDLE_VALUE; - const wchar_t wm[4] = L"*.*"; - - //if (startpath) SetCurrentDirectory(startpath); - if (FIL_ReadFileOK(filename)) - { - // checkfilemd5 returns an FS_* value, either FS_FOUND or FS_MD5SUMBAD - return checkfilemd5(filename, wantedmd5sum); - } - ZeroMemory(&dta,sizeof (dta)); - if (maxsearchdepth) - searchhandle = FindFirstFile(wm,&dta); - if (searchhandle != INVALID_HANDLE_VALUE) - { - do - { - if ((dta.cFileName[0]!='.') && (dta.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY)) - { - //if (SetCurrentDirectory(dta.cFileName)) - { // can fail if we haven't the right - filestatus_t found; - found = filesearch(filename,NULL,wantedmd5sum,completepath,maxsearchdepth-1); - //SetCurrentDirectory(".."); - if (found == FS_FOUND || found == FS_MD5SUMBAD) - { - if (completepath) - strcatbf(filename,(char *)dta.cFileName,"\\"); - FindClose(searchhandle); - return found; - } - } - } - } while (FindNextFile(searchhandle,&dta)==0); - FindClose(searchhandle); - } -#endif - return FS_NOTFOUND; -} - -boolean preparefilemenu(boolean samedepth) -{ - (void)samedepth; - return false; -} -#else filestatus_t filesearch(char *filename, const char *startpath, const UINT8 *wantedmd5sum, boolean completepath, int maxsearchdepth) { filestatus_t retval = FS_NOTFOUND; @@ -747,4 +686,3 @@ boolean preparefilemenu(boolean samedepth) return true; } -#endif diff --git a/src/i_tcp.c b/src/i_tcp.c index 9254f5b45..3bbebadf2 100644 --- a/src/i_tcp.c +++ b/src/i_tcp.c @@ -27,7 +27,7 @@ #define HAVE_IPV6 #endif -#if defined (_WIN32) || defined (_WIN32_WCE) +#ifdef _WIN32 #define USE_WINSOCK #if defined (_WIN64) || defined (HAVE_IPV6) #define USE_WINSOCK2 @@ -164,11 +164,6 @@ static UINT8 UPNP_support = TRUE; // winsock stuff (in winsock a socket is not a file) #define ioctl ioctlsocket #define close closesocket - - #ifdef _WIN32_WCE - #include "sdl12/SRB2CE/cehelp.h" - #endif - #endif #include "i_addrinfo.h" diff --git a/src/lzf.c b/src/lzf.c index ce2bdafc7..f81c3ee0a 100644 --- a/src/lzf.c +++ b/src/lzf.c @@ -157,7 +157,7 @@ typedef const u8 *LZF_STATE[1 << (HLOG)]; * lzfP.h ends here. lzf_d.c follows. */ -#if AVOID_ERRNO || defined(_WIN32_WCE) +#if AVOID_ERRNO # define SET_ERRNO(n) #else # include diff --git a/src/m_fixed.h b/src/m_fixed.h index 773823988..8050324db 100644 --- a/src/m_fixed.h +++ b/src/m_fixed.h @@ -20,11 +20,6 @@ #include #endif -// Was this just for the #define USEASM? -//#ifdef _WIN32_WCE -//#include "sdl12/SRB2CE/cehelp.h" -//#endif - /*! \brief bits of the fraction */ diff --git a/src/md5.c b/src/md5.c index 8031650e6..66d563666 100644 --- a/src/md5.c +++ b/src/md5.c @@ -19,9 +19,7 @@ #endif #include -#ifndef _WIN32_WCE #include -#endif #ifdef _MSC_VER #pragma warning(disable : 4127) #endif @@ -30,7 +28,7 @@ #include #else #ifndef HAVE_MEMCPY - #if !((defined (_WIN32) || defined (_WIN32_WCE)) && !defined (__CYGWIN__)) && !defined (__APPLE__) + #if !(defined (_WIN32) && !defined (__CYGWIN__)) && !defined (__APPLE__) #define memcpy(d, s, n) bcopy ((s), (d), (n)) #endif #endif diff --git a/src/mserv.c b/src/mserv.c index deda97a5f..efbf89359 100644 --- a/src/mserv.c +++ b/src/mserv.c @@ -16,9 +16,7 @@ #include #endif -#if !defined (UNDER_CE) #include -#endif #if (defined (NOMD5) || defined (NOMSERV)) && !defined (NONET) #define NONET @@ -30,7 +28,7 @@ #define HAVE_IPV6 #endif -#if defined (_WIN32) || defined (_WIN32_WCE) +#ifdef _WIN32 #define RPC_NO_WINDOWS_H #ifdef HAVE_IPV6 #include @@ -55,7 +53,7 @@ #include // timeval,... (TIMEOUT) #include -#endif // _WIN32/_WIN32_WCE +#endif // _WIN32 #ifdef __OS2__ #include @@ -76,10 +74,6 @@ #include "m_argv.h" // Alam is going to kill me <3 #include "m_misc.h" // GetRevisionString() -#ifdef _WIN32_WCE -#include "sdl12/SRB2CE/cehelp.h" -#endif - #include "i_addrinfo.h" // ================================ DEFINITIONS =============================== @@ -168,13 +162,13 @@ typedef struct #endif // win32 or djgpp -#if defined (_WIN32) || defined (_WIN32_WCE) || defined (__DJGPP__) +#if defined (_WIN32) || defined (__DJGPP__) #define ioctl ioctlsocket #define close closesocket #ifdef WATTCP #define strerror strerror_s #endif -#if defined (_WIN32) || defined (_WIN32_WCE) +#ifdef _WIN32 #undef errno #define errno h_errno // some very strange things happen when not using h_error #endif @@ -200,7 +194,7 @@ static enum { MSCS_NONE, MSCS_WAITING, MSCS_REGISTERED, MSCS_FAILED } con_state static INT32 msnode = -1; UINT16 current_port = 0; -#if (defined (_WIN32) || defined (_WIN32_WCE) || defined (_WIN32)) && !defined (NONET) +#if defined (_WIN32) && !defined (NONET) typedef SOCKET SOCKET_TYPE; #define BADSOCKET INVALID_SOCKET #define ERRSOCKET (SOCKET_ERROR) diff --git a/src/p_setup.c b/src/p_setup.c index 60f456ce3..83c9348c9 100644 --- a/src/p_setup.c +++ b/src/p_setup.c @@ -65,7 +65,7 @@ #include "lua_script.h" #include "lua_hook.h" -#if defined (_WIN32) || defined (_WIN32_WCE) +#ifdef _WIN32 #include #include #endif diff --git a/src/p_spec.c b/src/p_spec.c index e06926f30..03643a708 100644 --- a/src/p_spec.c +++ b/src/p_spec.c @@ -40,11 +40,7 @@ #endif // Not sure if this is necessary, but it was in w_wad.c, so I'm putting it here too -Shadow Hog -#ifdef _WIN32_WCE -#define AVOID_ERRNO -#else #include -#endif mobj_t *skyboxmo[2]; // current skybox mobjs: 0 = viewpoint, 1 = centerpoint mobj_t *skyboxviewpnts[16]; // array of MT_SKYBOX viewpoint mobjs diff --git a/src/r_data.c b/src/r_data.c index 791d90d94..c578012d1 100644 --- a/src/r_data.c +++ b/src/r_data.c @@ -25,7 +25,7 @@ #include "v_video.h" // pMasterPalette #include "dehacked.h" -#if defined (_WIN32) || defined (_WIN32_WCE) +#ifdef _WIN32 #include // alloca(sizeof) #endif diff --git a/src/s_sound.c b/src/s_sound.c index a34b6362f..4d041dae4 100644 --- a/src/s_sound.c +++ b/src/s_sound.c @@ -62,9 +62,7 @@ consvar_t sndserver_arg = {"sndserver_arg", "-quiet", CV_SAVE, NULL, 0, NULL, NU #define SURROUND #endif -#if defined (_WIN32_WCE) -consvar_t cv_samplerate = {"samplerate", "11025", 0, CV_Unsigned, NULL, 11025, NULL, NULL, 0, 0, NULL}; //Alam: For easy hacking? -#elif defined(_WINDOWS) +#ifdef _WINDOWS consvar_t cv_samplerate = {"samplerate", "44100", 0, CV_Unsigned, NULL, 44100, NULL, NULL, 0, 0, NULL}; //Alam: For easy hacking? #else consvar_t cv_samplerate = {"samplerate", "22050", 0, CV_Unsigned, NULL, 22050, NULL, NULL, 0, 0, NULL}; //Alam: For easy hacking? @@ -91,11 +89,7 @@ static void Captioning_OnChange(void) consvar_t cv_closedcaptioning = {"closedcaptioning", "Off", CV_SAVE|CV_CALL, CV_OnOff, Captioning_OnChange, 0, NULL, NULL, 0, 0, NULL}; // number of channels available -#if defined (_WIN32_WCE) -consvar_t cv_numChannels = {"snd_channels", "8", CV_SAVE|CV_CALL, CV_Unsigned, SetChannelsNum, 0, NULL, NULL, 0, 0, NULL}; -#else consvar_t cv_numChannels = {"snd_channels", "32", CV_SAVE|CV_CALL, CV_Unsigned, SetChannelsNum, 0, NULL, NULL, 0, 0, NULL}; -#endif static consvar_t surround = {"surround", "Off", CV_SAVE, CV_OnOff, NULL, 0, NULL, NULL, 0, 0, NULL}; @@ -1377,10 +1371,6 @@ static boolean S_DigMusic(const char *mname, boolean looping) void S_ChangeMusic(const char *mmusic, UINT16 mflags, boolean looping) { -#if defined (_WIN32_WCE) - S_ClearSfx(); -#endif - if ((nomidimusic || music_disabled) && (nodigimusic || digital_disabled)) return; diff --git a/src/screen.h b/src/screen.h index 80bbb4146..4d4fbb88b 100644 --- a/src/screen.h +++ b/src/screen.h @@ -15,20 +15,16 @@ #include "command.h" -#if (defined (_WIN32) || defined (_WIN32_WCE)) && !defined (__CYGWIN__) -#if defined (_WIN32_WCE) && defined (__GNUC__) -#include -#else +#if defined (_WIN32) && !defined (__CYGWIN__) #define RPC_NO_WINDOWS_H #include -#endif #define DNWH HWND #else #define DNWH void * // unused in DOS version #endif // quickhack for V_Init()... to be cleaned up -#if defined (_WIN32_WCE) || defined (NOPOSTPROCESSING) +#ifdef NOPOSTPROCESSING #define NUMSCREENS 2 #else #define NUMSCREENS 5 diff --git a/src/sdl12/Makefile.cfg b/src/sdl12/Makefile.cfg index a29b95d6b..2366a5ac2 100644 --- a/src/sdl12/Makefile.cfg +++ b/src/sdl12/Makefile.cfg @@ -14,10 +14,6 @@ ifdef PANDORA include sdl12/SRB2Pandora/Makefile.cfg endif #ifdef PANDORA -ifdef WINCE -include sdl12/SRB2CE/Makefile.cfg -endif #ifef WINCE - ifdef CYGWIN32 include sdl12/MakeCYG.cfg endif #ifdef CYGWIN32 diff --git a/src/sdl12/SDL_main/SDL_win32_main.c b/src/sdl12/SDL_main/SDL_win32_main.c index 46b20d0bd..6f3ae370f 100644 --- a/src/sdl12/SDL_main/SDL_win32_main.c +++ b/src/sdl12/SDL_main/SDL_win32_main.c @@ -13,17 +13,8 @@ #include /* For _alloca() */ #include - -#ifdef _WIN32_WCE -# define DIR_SEPERATOR TEXT("\\") -# define _tgetcwd(str,len) wcscpy(str,TEXT("")) -# define setbuf(f,b) -# define setvbuf(w,x,y,z) -# define _tremove(x) DeleteFile(x) -#else # define DIR_SEPERATOR TEXT("/") # include -#endif /* Include the SDL main definition header */ #ifdef _MSC_VER @@ -44,45 +35,14 @@ #endif /* main */ /* The standard output files */ -//#ifdef _WIN32_WCE -//#define STDOUT_FILE TEXT("/Storage Card/SRB2DEMO/stdout.txt") -//#define STDERR_FILE TEXT("/Storage Card/SRB2DEMO/stderr.txt") -//#else #define STDOUT_FILE TEXT("stdout.txt") #define STDERR_FILE TEXT("stderr.txt") -//#endif #ifndef NO_STDIO_REDIRECT static TCHAR stdoutPath[MAX_PATH]; static TCHAR stderrPath[MAX_PATH]; #endif -#if defined(_WIN32_WCE) && _WIN32_WCE < 300 -/* seems to be undefined in Win CE although in online help */ -#define isspace(a) (((CHAR)a == ' ') || ((CHAR)a == '\t')) - -/* seems to be undefined in Win CE although in online help */ -char *strrchr(char *str, int c) -{ - char *p; - - /* Skip to the end of the string */ - p=str; - while (*p) - p++; - - /* Look for the given character */ - while ( (p >= str) && (*p != (CHAR)c) ) - p--; - - /* Return NULL if character not found */ - if ( p < str ) { - p = NULL; - } - return p; -} -#endif /* _WIN32_WCE < 300 */ - /* Parse a command line buffer into arguments */ static int ParseCommandLine(char *cmdline, char **argv) { @@ -191,7 +151,7 @@ static void __cdecl cleanup_output(void) #endif } -#if defined(_MSC_VER) && !defined(_WIN32_WCE) +#if defined(_MSC_VER) /* The VC++ compiler needs main defined */ #define console_main main #endif @@ -268,23 +228,14 @@ int console_main(int argc, char *argv[]) } /* This is where execution begins [windowed apps] */ -#ifdef _WIN32_WCE -int WINAPI WinMain(HINSTANCE hInst, HINSTANCE hPrev, LPWSTR szCmdLine, int sw) -#else int WINAPI WinMain(HINSTANCE hInst, HINSTANCE hPrev, LPSTR szCmdLine, int sw) -#endif { HINSTANCE handle; int Result = -1; char **argv; int argc; LPSTR cmdline; -#ifdef _WIN32_WCE - size_t nLen; - LPTSTR bufp; -#else LPSTR bufp; -#endif #ifndef NO_STDIO_REDIRECT FILE *newfp; #endif @@ -307,7 +258,6 @@ int WINAPI WinMain(HINSTANCE hInst, HINSTANCE hPrev, LPSTR szCmdLine, int sw) /* Redirect standard input and standard output */ newfp = _tfreopen(stdoutPath, TEXT("w"), stdout); -#ifndef _WIN32_WCE if ( newfp == NULL ) { /* This happens on NT */ #if !defined(stdout) stdout = _tfopen(stdoutPath, TEXT("w")); @@ -318,13 +268,11 @@ int WINAPI WinMain(HINSTANCE hInst, HINSTANCE hPrev, LPSTR szCmdLine, int sw) } #endif } -#endif /* _WIN32_WCE */ _tgetcwd( stderrPath, sizeof( stderrPath ) ); _tcscat( stderrPath, DIR_SEPERATOR STDERR_FILE ); newfp = _tfreopen(stderrPath, TEXT("w"), stderr); -#ifndef _WIN32_WCE if ( newfp == NULL ) { /* This happens on NT */ #if !defined(stderr) stderr = _tfopen(stderrPath, TEXT("w")); @@ -335,26 +283,11 @@ int WINAPI WinMain(HINSTANCE hInst, HINSTANCE hPrev, LPSTR szCmdLine, int sw) } #endif } -#endif /* _WIN32_WCE */ setvbuf(stdout, NULL, _IOLBF, BUFSIZ); /* Line buffered */ setbuf(stderr, NULL); /* No buffering */ #endif /* !NO_STDIO_REDIRECT */ -#ifdef _WIN32_WCE - nLen = wcslen(szCmdLine)+128+1; - bufp = (wchar_t *)alloca(nLen*2); - wcscpy (bufp, TEXT("\"")); - GetModuleFileName(NULL, bufp+1, 128-3); - wcscpy (bufp+wcslen(bufp), TEXT("\" ")); - wcsncpy(bufp+wcslen(bufp), szCmdLine,nLen-wcslen(bufp)); - nLen = wcslen(bufp)+1; - cmdline = (char *)alloca(nLen); - if ( cmdline == NULL ) { - return OutOfMemory(); - } - WideCharToMultiByte(CP_ACP, 0, bufp, -1, cmdline, nLen, NULL, NULL); -#else szCmdLine = NULL; /* Grab the command line (use alloca() on Windows) */ bufp = GetCommandLineA(); @@ -363,7 +296,6 @@ int WINAPI WinMain(HINSTANCE hInst, HINSTANCE hPrev, LPSTR szCmdLine, int sw) return OutOfMemory(); } strcpy(cmdline, bufp); -#endif /* Parse it into argv and argc */ argc = ParseCommandLine(cmdline, NULL); @@ -382,18 +314,14 @@ int WINAPI WinMain(HINSTANCE hInst, HINSTANCE hPrev, LPSTR szCmdLine, int sw) #endif /* Run the main program (after a little SDL initialization) */ -#ifndef _WIN32_WCE __try -#endif { Result = console_main(argc, argv); } -#ifndef _WIN32_WCE __except ( RecordExceptionInfo(GetExceptionInformation())) { SetUnhandledExceptionFilter(EXCEPTION_CONTINUE_SEARCH); //Do nothing here. } -#endif #ifdef BUGTRAP } /* BT failure clause. */ diff --git a/src/sdl12/SRB2CE/Makefile.cfg b/src/sdl12/SRB2CE/Makefile.cfg deleted file mode 100644 index 8d4ae3e48..000000000 --- a/src/sdl12/SRB2CE/Makefile.cfg +++ /dev/null @@ -1,12 +0,0 @@ -# -# Makefile.cfg for WinCE with GCC -# - -OPTS+=-D_WIN32_WCE -D_UNICODE -SDL_CFLAGS?= -SDL_LDFLAGS?= -NOHS=1 -NOHW=1 -NONET=1 -NOMIXER=1 -NOPNG=1 diff --git a/src/sdl12/SRB2CE/SRB2CE.zip b/src/sdl12/SRB2CE/SRB2CE.zip deleted file mode 100644 index 3ac8530dcb124cbda512a7d469da933c3fc974bf..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 34234 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 HAkhB;OHxy? diff --git a/src/sdl12/SRB2CE/cehelp.c b/src/sdl12/SRB2CE/cehelp.c deleted file mode 100644 index 7c5efdee9..000000000 --- a/src/sdl12/SRB2CE/cehelp.c +++ /dev/null @@ -1,446 +0,0 @@ -// Emacs style mode select -*- C++ -*- -//----------------------------------------------------------------------------- -// -// Copyright (C) 2004 by Sonic Team Jr. -// -// 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 2 -// 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. -// -// DESCRIPTION: -// stub and replacement "ANSI" C functions for use under Windows CE -// -//----------------------------------------------------------------------------- - -#include "../../doomdef.h" -#include "cehelp.h" - -#define _SEC_IN_MINUTE 60 -#define _SEC_IN_HOUR 3600 -#define _SEC_IN_DAY 86400 - -static const int DAYS_IN_MONTH[12] = -{31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31}; - -#define _DAYS_IN_MONTH(x) ((x == 1) ? days_in_feb : DAYS_IN_MONTH[x]) - -static const int _DAYS_BEFORE_MONTH[12] = -{0, 31, 59, 90, 120, 151, 181, 212, 243, 273, 304, 334}; - -#define _ISLEAP(y) (((y) % 4) == 0 && (((y) % 100) != 0 || (((y)+1900) % 400) == 0)) -#define _DAYS_IN_YEAR(year) (_ISLEAP(year) ? 366 : 365) - -char *strerror(int ecode) -{ - static char buff[1024 + 1]; - DWORD dwMsgLen = FormatMessageA(FORMAT_MESSAGE_FROM_SYSTEM|FORMAT_MESSAGE_IGNORE_INSERTS, NULL, - ecode, MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), &buff[0], 1024, NULL); - return buff; -} - -int unlink( const char *filename ) -{ - return remove(filename); -} - -int remove( const char *path ) -{ - return DeleteFileA(path)-1; -} - -int rename( const char *oldname, const char *newname ) -{ - return MoveFileA(oldname, newname)!=0; -} - -static inline void STToTM(const SYSTEMTIME *st, struct tm *tm) -{ - if (!st || !tm) return; - tm->tm_sec = st->wSecond; - tm->tm_min = st->wMinute; - tm->tm_hour = st->wHour; - tm->tm_mday = st->wDay; - tm->tm_mon = st->wMonth - 1; - tm->tm_year = st->wYear - 1900; - tm->tm_wday = st->wDayOfWeek; - tm->tm_yday = 0; - tm->tm_isdst = 0; -} - -time_t time(time_t *T) -{ - time_t returntime; - SYSTEMTIME st; - struct tm stft; - GetSystemTime(&st); - STToTM(&st,&stft); - returntime = mktime(&stft); - if (T) *T = returntime; - return returntime; -} - -static inline UINT64 TTtoFT(const time_t wt, FILETIME *ft) -{ - UINT64 temptime = wt; // FILETIME: 1/(10^7) secs since January 1, 1601 - temptime *= 10000000; // time_t : 1 secs since January 1, 1970 - // 369 years * 365 days * 24 hours * 60 mins * 60 secs * 10 - // 123 leaps days * 24 hours * 60 mins * 60 secs * 10 - temptime += 116444736000000000; - if (ft) CopyMemory(ft,&temptime,sizeof (ULARGE_INTEGER)); - return temptime; -} - -static struct tm cehelptm; - -struct tm * localtime(const time_t *CLOCK) -{ - SYSTEMTIME st; - FILETIME stft; - UINT64 ftli = 0; - if (CLOCK) ftli = TTtoFT(*CLOCK, &stft); - if (ftli) - FileTimeToSystemTime(&stft,&st); - else - GetSystemTime(&st); - STToTM(&st,&cehelptm); - if (st.wYear >= 1970) - return &cehelptm; - else - return NULL; -} - -static void validate_structure (struct tm *tim_p) // from newlib -{ - div_t res; - int days_in_feb = 28; - - /* calculate time & date to account for out of range values */ - if (tim_p->tm_sec < 0 || tim_p->tm_sec > 59) - { - res = div (tim_p->tm_sec, 60); - tim_p->tm_min += res.quot; - if ((tim_p->tm_sec = res.rem) < 0) - { - tim_p->tm_sec += 60; - --tim_p->tm_min; - } - } - - if (tim_p->tm_min < 0 || tim_p->tm_min > 59) - { - res = div (tim_p->tm_min, 60); - tim_p->tm_hour += res.quot; - if ((tim_p->tm_min = res.rem) < 0) - { - tim_p->tm_min += 60; - --tim_p->tm_hour; - } - } - - if (tim_p->tm_hour < 0 || tim_p->tm_hour > 23) - { - res = div (tim_p->tm_hour, 24); - tim_p->tm_mday += res.quot; - if ((tim_p->tm_hour = res.rem) < 0) - { - tim_p->tm_hour += 24; - --tim_p->tm_mday; - } - } - - if (tim_p->tm_mon > 11) - { - res = div (tim_p->tm_mon, 12); - tim_p->tm_year += res.quot; - if ((tim_p->tm_mon = res.rem) < 0) - { - tim_p->tm_mon += 12; - --tim_p->tm_year; - } - } - - if (_DAYS_IN_YEAR (tim_p->tm_year) == 366) - days_in_feb = 29; - - if (tim_p->tm_mday <= 0) - { - while (tim_p->tm_mday <= 0) - { - if (--tim_p->tm_mon == -1) - { - tim_p->tm_year--; - tim_p->tm_mon = 11; - days_in_feb = - ((_DAYS_IN_YEAR (tim_p->tm_year) == 366) ? - 29 : 28); - } - tim_p->tm_mday += _DAYS_IN_MONTH (tim_p->tm_mon); - } - } - else - { - while (tim_p->tm_mday > _DAYS_IN_MONTH (tim_p->tm_mon)) - { - tim_p->tm_mday -= _DAYS_IN_MONTH (tim_p->tm_mon); - if (++tim_p->tm_mon == 12) - { - tim_p->tm_year++; - tim_p->tm_mon = 0; - days_in_feb = - ((_DAYS_IN_YEAR (tim_p->tm_year) == 366) ? - 29 : 28); - } - } - } -} - -time_t mktime (struct tm *tim_p) // from newlib -{ - time_t tim = 0; - long days = 0; - int year; - - /* validate structure */ - validate_structure (tim_p); - - /* compute hours, minutes, seconds */ - tim += tim_p->tm_sec + (tim_p->tm_min * _SEC_IN_MINUTE) + - (tim_p->tm_hour * _SEC_IN_HOUR); - - /* compute days in year */ - days += tim_p->tm_mday - 1; - days += _DAYS_BEFORE_MONTH[tim_p->tm_mon]; - if (tim_p->tm_mon > 1 && _DAYS_IN_YEAR (tim_p->tm_year) == 366) - days++; - - /* compute day of the year */ - tim_p->tm_yday = days; - - if (tim_p->tm_year > 10000 - || tim_p->tm_year < -10000) - { - return (time_t) -1; - } - - /* compute days in other years */ - if (tim_p->tm_year > 70) - { - for (year = 70; year < tim_p->tm_year; year++) - days += _DAYS_IN_YEAR (year); - } - else if (tim_p->tm_year < 70) - { - for (year = 69; year > tim_p->tm_year; year--) - days -= _DAYS_IN_YEAR (year); - days -= _DAYS_IN_YEAR (year); - } - - /* compute day of the week */ - if ((tim_p->tm_wday = (days + 4) % 7) < 0) - tim_p->tm_wday += 7; - - /* compute total seconds */ - tim += (days * _SEC_IN_DAY); - - return tim; -} - -#undef WINAPI -#define WINAPI __stdcall //__delcspec(dllexport) - -#ifdef _MSC_VER -//#pragma warning(disable : 4273) -#endif - - -static __forceinline int STRtoWSTR(LPCSTR lpMultiByteStr, int cchMultiByte, - LPWSTR lpWideCharStr, int cchWideChar) -{ - return MultiByteToWideChar(CP_ACP,MB_PRECOMPOSED,lpMultiByteStr, - cchMultiByte,lpWideCharStr,cchWideChar); -} - -static __forceinline int WSTRtoSTR(LPCWSTR lpWideCharStr, int cchWideChar, - LPSTR lpMultiByteStr, int cbMultiByte) -{ - return WideCharToMultiByte(CP_ACP,WC_COMPOSITECHECK|WC_SEPCHARS, - lpWideCharStr,cchWideChar,lpMultiByteStr,cbMultiByte,NULL,NULL); -} - -DWORD WINAPI FormatMessageA( - DWORD dwFlags, - LPCVOID lpSource, - DWORD dwMessageId, - DWORD dwLanguageId, - LPSTR lpBuffer, - DWORD nSize, - va_list *Arguments) -{ - const int nSizeW = STRtoWSTR(lpBuffer,nSize,NULL,0); - int nSizeF = 0; - LPWSTR lpBufferW = alloca(sizeof (wchar_t)*nSizeW); - LPWSTR lpSourceW = NULL; - - if (!lpBufferW) - { - SetLastError(ERROR_NOT_ENOUGH_MEMORY); - ZeroMemory(lpBuffer,nSize); - return nSizeF; - } - - if (dwFlags & FORMAT_MESSAGE_FROM_STRING) - { - const int sLen = STRtoWSTR(lpSource, -1, NULL, 0); - lpSourceW = alloca(sizeof (wchar_t)*sLen); - - if (lpSourceW) - STRtoWSTR(lpSource, -1, lpSourceW, sLen); - else - { - SetLastError(ERROR_NOT_ENOUGH_MEMORY); - return nSizeF; - } - } - - if (lpSourceW) - nSizeF = FormatMessageW(dwFlags, lpSourceW, dwMessageId, dwLanguageId, - lpBufferW, nSizeW, Arguments); - else - nSizeF = FormatMessageW(dwFlags, lpSource, dwMessageId, dwLanguageId, - lpBufferW, nSizeW, Arguments); - - return WSTRtoSTR(lpBufferW, nSizeF, lpBuffer, nSize); -} - -BOOL WINAPI DeleteFileA( - LPCSTR lpFileName) -{ - const int sLen = STRtoWSTR(lpFileName, -1, NULL, 0); - LPWSTR lpFileNameW = alloca(sizeof (wchar_t)*sLen); - - if (lpFileNameW) - STRtoWSTR(lpFileName, -1, lpFileNameW, sLen); - else - { - SetLastError(ERROR_NOT_ENOUGH_MEMORY); - return 0; - } - - return DeleteFileW(lpFileNameW); -} - -BOOL WINAPI MoveFileA( - LPCSTR lpExistingFileName, - LPCSTR lpNewFileName -) -{ - const int sLen1 = STRtoWSTR(lpExistingFileName, -1, NULL, 0); - LPWSTR lpExistingFileNameW = alloca(sizeof (wchar_t)*sLen1); - - const int sLen2 = STRtoWSTR(lpNewFileName, -1, NULL, 0); - LPWSTR lpNewFileNameW = alloca(sizeof (wchar_t)*sLen2); - - - if (!lpExistingFileNameW || !lpNewFileNameW) - { - SetLastError(ERROR_NOT_ENOUGH_MEMORY); - return 0; - } - - STRtoWSTR(lpExistingFileName, -1, lpExistingFileNameW, sLen1); - STRtoWSTR(lpNewFileName, -1, lpNewFileNameW, sLen2); - - return MoveFileW(lpExistingFileNameW, lpNewFileNameW); -} - - -HANDLE WINAPI CreateFileA( - LPCSTR lpFileName, - DWORD dwDesiredAccess, - DWORD dwShareMode, - LPSECURITY_ATTRIBUTES lpSecurityAttributes, - DWORD dwCreationDisposition, - DWORD dwFlagsAndAttributes, - HANDLE hTemplateFile) -{ - const int sLen = STRtoWSTR(lpFileName, -1, NULL, 0); - LPWSTR lpFileNameW = alloca(sizeof (wchar_t)*sLen); - - if (lpFileNameW) - STRtoWSTR(lpFileName, -1, lpFileNameW, sLen); - else - { - SetLastError(ERROR_NOT_ENOUGH_MEMORY); - return INVALID_HANDLE_VALUE; - } - - return CreateFileW(lpFileNameW, dwDesiredAccess, dwShareMode, - lpSecurityAttributes, dwCreationDisposition, dwFlagsAndAttributes, - hTemplateFile); -} - -BOOL WINAPI CreateDirectoryA( - LPCSTR lpPathName, - LPSECURITY_ATTRIBUTES lpSecurityAttributes) -{ - const int sLen = STRtoWSTR(lpPathName, -1, NULL, 0); - LPWSTR lpPathNameW = alloca(sizeof (wchar_t)*sLen); - - if (lpPathNameW) - STRtoWSTR(lpPathName, -1, lpPathNameW, sLen); - else - { - SetLastError(ERROR_NOT_ENOUGH_MEMORY); - return 0; - } - - return CreateDirectoryW(lpPathNameW, lpSecurityAttributes); -} - -int WINAPI MessageBoxA( - HWND hWnd , - LPCSTR lpText, - LPCSTR lpCaption, - UINT uType) -{ - const int sLen1 = STRtoWSTR(lpText, -1, NULL, 0); - LPWSTR lpTextW = alloca(sizeof (wchar_t)*sLen1); - - const int sLen2 = STRtoWSTR(lpCaption, -1, NULL, 0); - LPWSTR lpCaptionW = alloca(sizeof (wchar_t)*sLen2); - - - if (!lpTextW || !lpCaptionW) - { - SetLastError(ERROR_NOT_ENOUGH_MEMORY); - return 0; - } - - STRtoWSTR(lpText, -1, lpTextW, sLen1); - STRtoWSTR(lpCaption, -1, lpCaptionW, sLen2); - - return MessageBoxW(hWnd, lpTextW, lpCaptionW, uType); -} - -VOID WINAPI OutputDebugStringA( - LPCSTR lpOutputString) -{ - const int sLen = STRtoWSTR(lpOutputString, -1, NULL, 0); - LPWSTR lpOutputStringW = alloca(sizeof (wchar_t)*sLen); - - if (lpOutputStringW) - STRtoWSTR(lpOutputString, -1, lpOutputStringW, sLen); - else - { - SetLastError(ERROR_NOT_ENOUGH_MEMORY); - return; - } - - OutputDebugStringW(lpOutputStringW); -} diff --git a/src/sdl12/SRB2CE/cehelp.h b/src/sdl12/SRB2CE/cehelp.h deleted file mode 100644 index bc265b058..000000000 --- a/src/sdl12/SRB2CE/cehelp.h +++ /dev/null @@ -1,63 +0,0 @@ -// Emacs style mode select -*- C++ -*- -//----------------------------------------------------------------------------- -// -// Copyright (C) 2004 by Sonic Team Jr. -// -// 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 2 -// 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. -// -// DESCRIPTION: -// stub and replacement "ANSI" C functions for use under Windows CE -// -//----------------------------------------------------------------------------- - -#ifndef __I_WINCE__ -#define __I_WINCE__ - -#ifdef USEASMCE -#define USEASM // Remline if NASM doesn't work on x86 targets -#endif - -char *strerror(int ecode); -int access(const char *path, int amode); -int unlink( const char *filename ); -int remove( const char *path ); -int rename( const char *oldname, const char *newname ); -//CreateDirectoryEx( const char *currectpath, const char *path,SECURITY_ATTRIBUTES) - -#ifndef _TIME_T_DEFINED -typedef long time_t; /* time value */ -#define _TIME_T_DEFINED /* avoid multiple def's of time_t */ -#endif - -time_t time(time_t *T); - -#ifndef __GNUC__ -#ifndef _TM_DEFINED -struct tm { - int tm_sec; /* seconds after the minute - [0,59] */ - int tm_min; /* minutes after the hour - [0,59] */ - int tm_hour; /* hours since midnight - [0,23] */ - int tm_mday; /* day of the month - [1,31] */ - int tm_mon; /* months since January - [0,11] */ - int tm_year; /* years since 1900 */ - int tm_wday; /* days since Sunday - [0,6] */ - int tm_yday; /* days since January 1 - [0,365] */ - int tm_isdst; /* daylight savings time flag */ - }; -#define _TM_DEFINED -#endif - -struct tm * localtime(const time_t *CLOCK); - -time_t mktime (struct tm *tim_p); -#endif - -#endif diff --git a/src/sdl12/endtxt.c b/src/sdl12/endtxt.c index f8e315591..1e72ca9a8 100644 --- a/src/sdl12/endtxt.c +++ b/src/sdl12/endtxt.c @@ -33,7 +33,6 @@ void ShowEndTxt(void) { -#ifndef _WIN32_WCE INT32 i; UINT16 j, att = 0; INT32 nlflag = 1; @@ -232,5 +231,4 @@ void ShowEndTxt(void) printf("\n"); Z_Free(data); -#endif } diff --git a/src/sdl12/i_cdmus.c b/src/sdl12/i_cdmus.c index 805e6f498..27b664887 100644 --- a/src/sdl12/i_cdmus.c +++ b/src/sdl12/i_cdmus.c @@ -19,10 +19,6 @@ #ifdef HAVE_SDL -#if defined (_WIN32_WCE) -#define NOSDLCD -#endif - #include #ifndef NOSDLCD diff --git a/src/sdl12/i_main.c b/src/sdl12/i_main.c index 2a0ea785a..7d14ca9e5 100644 --- a/src/sdl12/i_main.c +++ b/src/sdl12/i_main.c @@ -58,7 +58,7 @@ FILE *logstream = NULL; typedef BOOL (WINAPI *p_IsDebuggerPresent)(VOID); #endif -#if defined (_WIN32) && !defined (_WIN32_WCE) +#ifdef _WIN32 static inline VOID MakeCodeWritable(VOID) { #ifdef USEASM // Disable write-protection of code segment @@ -121,9 +121,7 @@ int main(int argc, char **argv) logdir = D_Home(); #ifdef LOGMESSAGES -#if defined(_WIN32_WCE) - logstream = fopen(va("%s.log",argv[0]), "a"); -#elif defined (DEFAULTDIR) +#ifdef DEFAULTDIR if (logdir) logstream = fopen(va("%s/"DEFAULTDIR"/srb2log.txt",logdir), "a"); else @@ -134,7 +132,6 @@ int main(int argc, char **argv) //I_OutputMsg("I_StartupSystem() ...\n"); I_StartupSystem(); #ifdef _WIN32 -#ifndef _WIN32_WCE { p_IsDebuggerPresent pfnIsDebuggerPresent = (p_IsDebuggerPresent)GetProcAddress(GetModuleHandleA("kernel32.dll"), "IsDebuggerPresent"); if ((!pfnIsDebuggerPresent || !pfnIsDebuggerPresent()) @@ -146,11 +143,8 @@ int main(int argc, char **argv) LoadLibraryA("exchndl.dll"); } } -#endif prevExceptionFilter = SetUnhandledExceptionFilter(RecordExceptionInfo); -#ifndef _WIN32_WCE MakeCodeWritable(); -#endif #endif // startup SRB2 CONS_Printf("%s", M_GetText("Setting up SRB2...\n")); diff --git a/src/sdl12/i_system.c b/src/sdl12/i_system.c index a907c7f90..e759449a7 100644 --- a/src/sdl12/i_system.c +++ b/src/sdl12/i_system.c @@ -20,15 +20,12 @@ /// \file /// \brief SRB2 system stuff for SDL -#ifndef _WIN32_WCE #include -#endif #ifdef _WIN32 #define RPC_NO_WINDOWS_H #include #include "../doomtype.h" -#ifndef _WIN32_WCE typedef BOOL (WINAPI *p_GetDiskFreeSpaceExA)(LPCSTR, PULARGE_INTEGER, PULARGE_INTEGER, PULARGE_INTEGER); typedef BOOL (WINAPI *p_IsProcessorFeaturePresent) (DWORD); typedef DWORD (WINAPI *p_timeGetTime) (void); @@ -39,7 +36,6 @@ typedef HANDLE (WINAPI *p_GetCurrentProcess) (VOID); typedef BOOL (WINAPI *p_GetProcessAffinityMask) (HANDLE, PDWORD_PTR, PDWORD_PTR); typedef BOOL (WINAPI *p_SetProcessAffinityMask) (HANDLE, DWORD_PTR); #endif -#endif #include #include #include @@ -53,7 +49,7 @@ typedef BOOL (WINAPI *p_SetProcessAffinityMask) (HANDLE, DWORD_PTR); #endif #include -#if defined (_WIN32) && !defined (_WIN32_WCE) +#ifdef _WIN32 #include #endif @@ -111,7 +107,7 @@ typedef BOOL (WINAPI *p_SetProcessAffinityMask) (HANDLE, DWORD_PTR); #include #endif -#if defined (_WIN32) && !defined (_WIN32_WCE) +#ifdef _WIN32 #define HAVE_MUMBLE #define WINMUMBLE #elif defined (HAVE_SHM) @@ -119,10 +115,6 @@ typedef BOOL (WINAPI *p_SetProcessAffinityMask) (HANDLE, DWORD_PTR); #endif #endif // NOMUMBLE -#ifdef _WIN32_WCE -#include "SRB2CE/cehelp.h" -#endif - #ifndef O_BINARY #define O_BINARY 0 #endif @@ -136,11 +128,6 @@ typedef BOOL (WINAPI *p_SetProcessAffinityMask) (HANDLE, DWORD_PTR); #define DEFAULTSEARCHPATH1 "/usr/local/games" #define DEFAULTSEARCHPATH2 "/usr/games" #define DEFAULTSEARCHPATH3 "/usr/local" -#elif defined (_WIN32_WCE) -#define NOCWD -#define NOHOME -#define DEFAULTWADLOCATION1 "\\Storage Card\\SRB2DEMO" -#define DEFAULTSEARCHPATH1 "\\Storage Card" #elif defined (_WIN32) #define DEFAULTWADLOCATION1 "c:\\games\\srb2" #define DEFAULTWADLOCATION2 "\\games\\srb2" @@ -275,7 +262,7 @@ static void signal_handler(INT32 num) } #endif -#if defined (NDEBUG) && !defined (_WIN32_WCE) +#if defined (NDEBUG) FUNCNORETURN static ATTRNORETURN void quit_handler(int num) { signal(num, SIG_DFL); //default signal action @@ -495,7 +482,7 @@ void I_GetConsoleEvents(void) (void)d; } -#elif defined (_WIN32) && !defined (_WIN32_WCE) +#elif defined (_WIN32) static BOOL I_ReadyConsole(HANDLE ci) { DWORD gotinput; @@ -709,7 +696,7 @@ void I_OutputMsg(const char *fmt, ...) } #endif -#if defined (_WIN32) && !defined(_WIN32_WCE) +#ifdef _WIN32 #ifdef DEBUGFILE if (debugfile != stderr) #endif @@ -1966,7 +1953,7 @@ ticcmd_t *I_BaseTiccmd2(void) return &emptycmd2; } -#if defined (_WIN32) && !defined (_WIN32_WCE) +#ifdef _WIN32 static HMODULE winmm = NULL; static DWORD starttickcount = 0; // hack for win2k time bug static p_timeGetTime pfntimeGetTime = NULL; @@ -2045,12 +2032,7 @@ tic_t I_GetTime (void) ticks -= basetime; ticks = (ticks*TICRATE); - -#if 0 //#ifdef _WIN32_WCE - ticks = (ticks/10); -#else ticks = (ticks/1000); -#endif return (tic_t)ticks; } @@ -2061,7 +2043,7 @@ tic_t I_GetTime (void) // void I_StartupTimer(void) { -#if defined (_WIN32) && !defined (_WIN32_WCE) +#ifdef _WIN32 // for win2k time bug if (M_CheckParm("-gettickcount")) { @@ -2184,7 +2166,7 @@ static boolean shutdowning = false; void I_Error(const char *error, ...) { va_list argptr; -#if defined (MAC_ALERT) || defined (_WIN32) || (defined (_WIN32_WCE) && !defined (__GNUC__)) +#if defined (MAC_ALERT) || defined (_WIN32) char buffer[8192]; #endif @@ -2222,11 +2204,10 @@ void I_Error(const char *error, ...) va_end(argptr); // 2004-03-03 AJR Since the Mac user is most likely double clicking to run the game, give them a panel. MacShowAlert("Recursive Error", buffer, "Quit", NULL, NULL); -#elif defined (_WIN32) || (defined (_WIN32_WCE)) && !defined (__GNUC__) +#elif defined (_WIN32) va_start(argptr,error); vsprintf(buffer, error, argptr); va_end(argptr); -#ifndef _WIN32_WCE { HANDLE co = GetStdHandle(STD_OUTPUT_HANDLE); DWORD bytesWritten; @@ -2238,7 +2219,6 @@ void I_Error(const char *error, ...) WriteFile(co, buffer, (DWORD)strlen(buffer), &bytesWritten, NULL); } } -#endif OutputDebugStringA(buffer); MessageBoxA(vid.WndParent, buffer, "SRB2 Recursive Error", MB_OK|MB_ICONERROR); #else @@ -2387,7 +2367,7 @@ void I_GetDiskFreeSpace(INT64 *freespace) } *freespace = stfs.f_bavail * stfs.f_bsize; #endif -#elif defined (_WIN32) && !defined (_WIN32_WCE) +#elif defined (_WIN32) static p_GetDiskFreeSpaceExA pfnGetDiskFreeSpaceEx = NULL; static boolean testwin95 = false; ULARGE_INTEGER usedbytes, lfreespace; @@ -2418,7 +2398,6 @@ void I_GetDiskFreeSpace(INT64 *freespace) char *I_GetUserName(void) { -#if !defined (_WIN32_WCE) static char username[MAXPLAYERNAME]; char *p; #ifdef _WIN32 @@ -2450,7 +2429,6 @@ char *I_GetUserName(void) if (strcmp(username, "") != 0) return username; -#endif return NULL; // dummy for platform independent version } @@ -2459,7 +2437,7 @@ INT32 I_mkdir(const char *dirname, INT32 unixright) //[segabor] #if defined (__unix__) || defined(__APPLE__) || defined (UNIXCOMMON) || defined (__CYGWIN__) || defined (__OS2__) return mkdir(dirname, unixright); -#elif defined (_WIN32) || (defined (_WIN32_WCE) && !defined (__GNUC__)) +#elif defined (_WIN32) UNREFERENCED_PARAMETER(unixright); /// \todo should implement ntright under nt... return CreateDirectoryA(dirname, NULL); #else @@ -2473,9 +2451,6 @@ char *I_GetEnv(const char *name) { #ifdef NEED_SDL_GETENV return SDL_getenv(name); -#elif defined(_WIN32_WCE) - (void)name; - return NULL; #else return getenv(name); #endif @@ -2485,8 +2460,6 @@ INT32 I_PutEnv(char *variable) { #ifdef NEED_SDL_GETENV return SDL_putenv(variable); -#elif defined(_WIN32_WCE) - return ((variable)?-1:0); #else return putenv(variable); #endif @@ -2597,15 +2570,6 @@ static const char *locateWad(void) if (((envstr = I_GetEnv("SRB2WADDIR")) != NULL) && isWadPathOk(envstr)) return envstr; -#if defined(_WIN32_WCE) - // examine argv[0] - strcpy(returnWadPath, myargv[0]); - pathonly(returnWadPath); - I_PutEnv(va("HOME=%s",returnWadPath)); - if (isWadPathOk(returnWadPath)) - return returnWadPath; -#endif - #ifndef NOCWD I_OutputMsg(",."); // examine current dir @@ -2703,9 +2667,9 @@ const char *I_LocateWad(void) if (waddir) { // change to the directory where we found srb2.srb -#if defined (_WIN32) && !defined (_WIN32_WCE) +#ifdef _WIN32 SetCurrentDirectoryA(waddir); -#elif !defined (_WIN32_WCE) +#else if (chdir(waddir) == -1) I_OutputMsg("Couldn't change working directory\n"); #endif @@ -2803,7 +2767,7 @@ UINT32 I_GetFreeMem(UINT32 *total) if (total) *total = totalKBytes << 10; return freeKBytes << 10; -#elif defined (_WIN32) || (defined (_WIN32_WCE) && !defined (__GNUC__)) +#elif defined (_WIN32) MEMORYSTATUS info; info.dwLength = sizeof (MEMORYSTATUS); @@ -2831,7 +2795,7 @@ UINT32 I_GetFreeMem(UINT32 *total) const CPUInfoFlags *I_CPUInfo(void) { -#if defined (_WIN32) && !defined (_WIN32_WCE) +#ifdef _WIN32 static CPUInfoFlags WIN_CPUInfo; SYSTEM_INFO SI; p_IsProcessorFeaturePresent pfnCPUID = (p_IsProcessorFeaturePresent)GetProcAddress(GetModuleHandleA("kernel32.dll"), "IsProcessorFeaturePresent"); @@ -2892,7 +2856,7 @@ const CPUInfoFlags *I_CPUInfo(void) #endif } -#if defined (_WIN32) && !defined (_WIN32_WCE) +#ifdef _WIN32 static void CPUAffinity_OnChange(void); static consvar_t cv_cpuaffinity = {"cpuaffinity", "-1", CV_SAVE | CV_CALL, NULL, CPUAffinity_OnChange, 0, NULL, NULL, 0, 0, NULL}; @@ -2935,7 +2899,7 @@ static void CPUAffinity_OnChange(void) void I_RegisterSysCommands(void) { -#if defined (_WIN32) && !defined (_WIN32_WCE) +#ifdef _WIN32 GetAffinityFuncs(); CV_RegisterVar(&cv_cpuaffinity); #endif diff --git a/src/sdl12/i_video.c b/src/sdl12/i_video.c index fa7e31e8d..1e6f76c10 100644 --- a/src/sdl12/i_video.c +++ b/src/sdl12/i_video.c @@ -18,10 +18,7 @@ /// \brief SRB2 graphics stuff for SDL #include - -#ifndef _WIN32_WCE #include -#endif #ifdef _MSC_VER #pragma warning(disable : 4214 4244) @@ -49,7 +46,7 @@ #ifdef HAVE_IMAGE #include "SDL_image.h" -#elseif !defined (_WIN32_WCE) +#else #define LOAD_XPM //I want XPM! #include "IMG_xpm.c" //Alam: I don't want to add SDL_Image.dll/so #define HAVE_IMAGE //I have SDL_Image, sortof @@ -94,11 +91,7 @@ #endif // maximum number of windowed modes (see windowedModes[][]) -#if defined (_WIN32_WCE) -#define MAXWINMODES (1) -#else #define MAXWINMODES (27) -#endif /** \brief */ @@ -141,25 +134,16 @@ static SDL_Rect **modeList = NULL; static Uint8 BitsPerPixel = 16; static Uint16 realwidth = BASEVIDWIDTH; static Uint16 realheight = BASEVIDHEIGHT; -#ifdef _WIN32_WCE -static const Uint32 surfaceFlagsW = SDL_HWPALETTE; //Can't handle WinCE changing sides -#else static const Uint32 surfaceFlagsW = SDL_HWPALETTE/*|SDL_RESIZABLE*/; -#endif static const Uint32 surfaceFlagsF = SDL_HWPALETTE|SDL_FULLSCREEN; static SDL_bool mousegrabok = SDL_TRUE; #define HalfWarpMouse(x,y) SDL_WarpMouse((Uint16)(x/2),(Uint16)(y/2)) -#if defined (_WIN32_WCE) -static SDL_bool videoblitok = SDL_TRUE; -#else static SDL_bool videoblitok = SDL_FALSE; -#endif static SDL_bool exposevideo = SDL_FALSE; // windowed video modes from which to choose from. static INT32 windowedModes[MAXWINMODES][2] = { -#if !defined (_WIN32_WCE) {1920,1200}, // 1.60,6.00 {1680,1050}, // 1.60,5.25 {1600,1200}, // 1.33,5.00 @@ -186,17 +170,12 @@ static INT32 windowedModes[MAXWINMODES][2] = { 416, 312}, // 1.33,1.30 { 400, 300}, // 1.33,1.25 { 320, 240}, // 1.33,1.00 -#endif { 320, 200}, // 1.60,1.00 }; static void SDLSetMode(INT32 width, INT32 height, INT32 bpp, Uint32 flags) { const char *SDLVD = I_GetEnv("SDL_VIDEODRIVER"); -#ifdef _WIN32_WCE - if (bpp < 16) - bpp = 16; // 256 mode poo -#endif #ifdef FILTERS bpp = Setupf2x(width, height, bpp); #endif @@ -233,17 +212,6 @@ static INT32 SDLatekey(SDLKey sym) { INT32 rc = sym + 0x80; -#ifdef _WIN32_WCE - if (sym == SDLK_KP8) - sym = SDLK_UP; - else if (sym == SDLK_KP4) - sym = SDLK_LEFT; - else if (sym == SDLK_KP6) - sym = SDLK_RIGHT; - else if (sym == SDLK_KP2) - sym = SDLK_DOWN; -#endif - switch (sym) { case SDLK_LEFT: @@ -586,7 +554,6 @@ static void VID_Command_Info_f (void) static void VID_Command_ModeList_f(void) { -#if !defined (_WIN32_WCE) INT32 i; #ifdef HWRENDER if (rendermode == render_opengl) @@ -620,7 +587,6 @@ static void VID_Command_ModeList_f(void) modeList[modeNum]->h); } CONS_Printf("%s", M_GetText("None\n")); -#endif } static void VID_Command_Mode_f (void) @@ -641,7 +607,7 @@ static void VID_Command_Mode_f (void) setmodeneeded = modenum+1; // request vid mode change } -#if defined(RPC_NO_WINDOWS_H) && !defined(_WIN32_WCE) +#ifdef RPC_NO_WINDOWS_H static VOID MainWndproc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam) { UNREFERENCED_PARAMETER(hWnd); @@ -962,7 +928,6 @@ void I_GetEvent(void) SDLJoyRemap(&event); if (event.type != ev_console) D_PostEvent(&event); break; -#ifndef _WIN32_WCE case SDL_QUIT: if (!sdlquit) { @@ -970,8 +935,7 @@ void I_GetEvent(void) M_QuitResponse('y'); } break; -#endif -#if defined(RPC_NO_WINDOWS_H) && !defined(_WIN32_WCE) +#ifdef RPC_NO_WINDOWS_H case SDL_SYSWMEVENT: MainWndproc(inputEvent.syswm.msg->hwnd, inputEvent.syswm.msg->msg, @@ -1492,9 +1456,7 @@ static void SDLWMSet(void) SetFocus(vid.WndParent); ShowWindow(vid.WndParent, SW_SHOW); } -#ifndef _WIN32_WCE SDL_EventState(SDL_SYSWMEVENT, SDL_ENABLE); -#endif #endif SDL_EventState(SDL_VIDEORESIZE, SDL_IGNORE); } @@ -1513,9 +1475,6 @@ static void* SDLGetDirect(void) INT32 VID_SetMode(INT32 modeNum) { -#ifdef _WIN32_WCE - (void)modeNum; -#else SDLdoUngrabMouse(); vid.recalc = true; BitsPerPixel = (Uint8)cv_scr_depth.value; @@ -1614,7 +1573,6 @@ INT32 VID_SetMode(INT32 modeNum) #if 0 // broken if (!cv_stretch.value && (float)vid.width/vid.height != ((float)BASEVIDWIDTH/BASEVIDHEIGHT)) vid.height = (INT32)(vid.width * ((float)BASEVIDHEIGHT/BASEVIDWIDTH));// Adjust the height to match -#endif #endif I_StartupMouse(); @@ -1696,11 +1654,7 @@ void I_StartupGraphics(void) #endif // Window title -#ifdef _WIN32_WCE - SDL_WM_SetCaption("SRB2 "VERSIONSTRING, "SRB2"); -#else SDL_WM_SetCaption("SRB2: Starting up", "SRB2"); -#endif // Window icon #ifdef HAVE_IMAGE @@ -1744,7 +1698,7 @@ void I_StartupGraphics(void) // check gl renderer lib if (HWD.pfnGetRenderVersion() != VERSION) I_Error("%s", M_GetText("The version of the renderer doesn't match the version of the executable\nBe sure you have installed SRB2 properly.\n")); -#if 1 //#ifdef _WIN32_WCE +#if 1 // vid.width = BASEVIDWIDTH; vid.height = BASEVIDHEIGHT; #else diff --git a/src/sdl12/sdl_sound.c b/src/sdl12/sdl_sound.c index 232c73c44..a4b3635ca 100644 --- a/src/sdl12/sdl_sound.c +++ b/src/sdl12/sdl_sound.c @@ -49,7 +49,7 @@ #define MIX_CHANNELS 8 #endif -#if defined (_WIN32) && !defined (_WIN32_WCE) +#ifdef _WIN32 #include #elif defined (__GNUC__) #include @@ -85,19 +85,11 @@ // mixing buffer, and the samplerate of the raw data. // Needed for calling the actual sound output. -#if defined (_WIN32_WCE) -#define NUM_CHANNELS MIX_CHANNELS -#else #define NUM_CHANNELS MIX_CHANNELS*4 -#endif #define INDEXOFSFX(x) ((sfxinfo_t *)x - S_sfx) -#if defined (_WIN32_WCE) -static Uint16 samplecount = 512; //Alam: .5KB samplecount at 11025hz is 46.439909297052154195011337868481ms of buffer -#else static Uint16 samplecount = 1024; //Alam: 1KB samplecount at 22050hz is 46.439909297052154195011337868481ms of buffer -#endif typedef struct chan_struct { @@ -167,9 +159,6 @@ static SDL_bool canlooping = SDL_TRUE; #if SDL_MIXER_VERSION_ATLEAST(1,2,7) #define USE_RWOPS // ok, USE_RWOPS is in here -#if defined (_WIN32_WCE) //|| defined(_WIN32) -#undef USE_RWOPS -#endif #endif #if SDL_MIXER_VERSION_ATLEAST(1,2,10) diff --git a/src/w_wad.c b/src/w_wad.c index 22e1836c7..2aa0a6316 100644 --- a/src/w_wad.c +++ b/src/w_wad.c @@ -18,11 +18,7 @@ #define ZWAD #ifdef ZWAD -#ifdef _WIN32_WCE -#define AVOID_ERRNO -#else #include -#endif #include "lzf.h" #endif diff --git a/src/win32ce/GameX.h b/src/win32ce/GameX.h deleted file mode 100644 index 241fdd5be..000000000 --- a/src/win32ce/GameX.h +++ /dev/null @@ -1,174 +0,0 @@ -/* - - GameX - WindowsCE Game Library for High Performance. - - Copyright (C) 1999 Hayes C. Haugen, all rights reserved. - - */ - -/* - * Need better way for host app to keep track of direct vs blit - drawing. Right now GetFBAddress() is the way to do it. - - - */ - - -#pragma once -#include // For VK codes. - -// Defines - -// display property flags - -const unsigned long kfDPGrey = 0x0001; -const unsigned long kfDPGrey2Bit = 0x0002; -const unsigned long kfDPGrey4Bit = 0x0004; -const unsigned long kfDPColor = 0x0008; -const unsigned long kfDPColor8Bit = 0x0010; -const unsigned long kfDPColor16Bit = 0x0020; -const unsigned long kfDPColor24Bit = 0x0040; -const unsigned long kfDPColor32Bit = 0x0080; -const unsigned long kfDPFormatNormal = 0x0100; // fb start is upper left, inc goes across -const unsigned long kfDPFormatRot270 = 0x0200; // fb start is lower left, inc goes up - -// Machine property flags - -const unsigned long kfMPPSPC = 0x0001; // Palm Sized PC - 240 x 320 -const unsigned long kfMPPSPC1 = 0x0002; // 1st gen pspc -const unsigned long kfMPPSPC2 = 0x0004; // Wyverns -const unsigned long kfMPHPC = 0x0008; // Handheld PC -const unsigned long kfMPHPC1 = 0x0010; // HPC 1, 480 x 240 -const unsigned long kfMPHPC2 = 0x0020; // HPC 2, 640 x 240 -const unsigned long kfMPHPC3 = 0x0040; // HPC Pro, 640 x 240, big keys -const unsigned long kfMPPro = 0x0080; // -const unsigned long kfMPAutoPC = 0x0100; -const unsigned long kfMPHasKeyboard = 0x0200; -const unsigned long kfMPHasMouse = 0x0400; -const unsigned long kfMPHasRumble = 0x0800; -const unsigned long kfMPHasTouch = 0x1000; - -// Rotations - -const int kiRotate0 = 0; // no rotation -const int kiRotate90 = 1; // 90 degrees clockwise -const int kiRotate180 = 2; // 180 degrees clockwise (upside down, Rotate 0 flipped) -const int kiRotate270 = 3; // 270 degrees clockwise (Rotate 1 flipped) - -class GameX { -public: - HWND SetButtonNotificationWindow(HWND hWnd); - GameX(); - ~GameX(); - - bool OpenGraphics(); - bool OpenSound(); - bool OpenButtons(HWND hwndButtonNotify); // Window that will get button messages or NULL if you just want to use GetAsyncKeyState(); - bool CloseGraphics(); - bool CloseSound(); - bool CloseButtons(); - - bool IsColor(); - bool IsPSPC(); - bool IsHPC(); - bool IsHPCPro(); - bool HasMouse(); - bool HasKeyboard(); // better than inferring from hpc/pspc/etc. - bool HasRumble(); - bool HasTouch(); // for completeness. At least 1 doesn't. - - int IsForeground(); - bool Suspend(); // release buttons, don't draw, etc. - bool Resume(); // regrab buttons, etc. - - bool BeginDraw(); - bool EndDraw(); - bool FindFrameBuffer(); - void * GetFBAddress(); // simple way to get things that makes code - long GetFBModulo(); // more readable. - long GetFBBpp(); - bool GetScreenRect(RECT * prc); - unsigned long GetDisplayProperties(); - - bool GetButton(int VK); // buttons init themselves on first button call?? - unsigned short GetDefaultButtonID(long id, long rotate); // gets the best button for use as specified by need and rotation - bool ReleaseButton(int VK); - bool BeginDetectButtons(); // grabs all buttons so user can indicate a button in a config dialog - bool EndDetectButtons(); // releases all buttons (except GetButton() ones) - - bool Rumble(); - bool Backlight(bool fOn); -private: -// LRESULT CALLBACK TaskBarWndProc(HWND hWnd, UINT message, WPARAM uParam, LPARAM lParam); - -private: - int m_iMP; // index into amp table for current machine. - void * m_pvFrameBuffer; - long m_cbFBModulo; // count of bytes to next line - unsigned long m_ffMachineProperties; - unsigned long m_ffDisplayProperties; - int m_cBitsPP; - - long m_dwPrevMode; // for Begin/EndDraw() - bool m_fActive; // true if active (resume), false if inactive (suspend). - - HWND m_hwndTaskbar; // Taskbar is official cap, change TaskBar's -}; - - -/* - -kmtCasioE10 -kmtCasioE11 -kmtCasioE15 -kmtCasioE55 -kmtCasioE100 -kmtLGPhenomII - -stuff for memory size and presence/absence of CF - -// Rotations that make sense for this device or default rotation: - -Rotate0 // no rotation -Rotate1 // 90 degrees clockwise -Rotate2 // 180 degrees clockwise (upside down, Rotate 0 flipped) -Rotate3 // 270 degrees clockwise (Rotate 1 flipped) - -kmtAccessNone // no direct framebuffer access -kmtAccess1 // write to fixed address -kmtAccess2 // find framebuffer memory aperture in GWES.EXE memory space. - -OriginUpperLeft -OriginUpperRight -OriginLowerRight -OriginLowerLeft - -MappedHorizontal // increasing fb address goes across screen -MappedVertical // increasing fb address goes up/down screen (Compaq) - -A machine entry: -=========================================== - machine kmtCasioE10, - type kmtPSPC | kmtPSPC1, - displaytype kmtGrey | kmtGrey2Bit | kmtAccess1, - pvFrameBuffer 0xAA000000, - cbFBModulo 1024 // count of bytes to next line - cbppFB 2, // bits per pixel - cxDisp 240, - cyDisp 320, - format OriginUpperLeft, MappedHorizontal - - rotate0 // for rotate mode 0, these are the best keys - vkUp VK_UP - vkDown VK_DOWN - vkLeft 0xC1 - vkRight 0xC2 - vkA 0xC3 - vkB 0 - rotate1 - vkUp 0xC1 - vkDown 0xC2 - vkLeft VK_DOWN - ... - ...*/ - diff --git a/src/win32ce/SRB2CE.zip b/src/win32ce/SRB2CE.zip deleted file mode 100644 index 3ac8530dcb124cbda512a7d469da933c3fc974bf..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 34234 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 HAkhB;OHxy? diff --git a/src/win32ce/Srb2win.ico b/src/win32ce/Srb2win.ico deleted file mode 100644 index 700276fd4b9ac2810a6981eb054921f3708c702b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 372798 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 G1OE?SzcGja diff --git a/src/win32ce/afxres.h b/src/win32ce/afxres.h deleted file mode 100644 index 7f5245404..000000000 --- a/src/win32ce/afxres.h +++ /dev/null @@ -1,17 +0,0 @@ -// Emacs style mode select -*- C++ -*- -//----------------------------------------------------------------------------- -// -// Copyright (C) 1998-2000 by DooM Legacy Team. -// -// 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 2 -// 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. -//----------------------------------------------------------------------------- -/// \file -/// \brief needed if mfc not installed (if I remember well) diff --git a/src/win32ce/gapi_c.cpp b/src/win32ce/gapi_c.cpp deleted file mode 100644 index 60c7adfa2..000000000 --- a/src/win32ce/gapi_c.cpp +++ /dev/null @@ -1,129 +0,0 @@ -#include -#include - -#define _USE_GAPI_ - - -#ifndef _USE_GAPI_ - #include "GameX.h" - -struct GXDisplayProperties -{ - DWORD cxWidth; - DWORD cyHeight; - long cbxPitch; - long cbyPitch; - long cBPP; - DWORD ffFormat; -}; - -#define kfPalette 0x10 // Pixel values are indexes into a palette -#define kfDirect565 0x80 // 5 red bits, 6 green bits and 5 blue bits per pixel - - - GameX* gx = new GameX; -#else - #include "gx.h" -#endif - -extern "C" -{ - #include "gapi_c.h" -} - -extern "C" int GXOPENDISPLAY(HWND hWnd, DWORD dwFlags) -{ - #ifndef _USE_GAPI_ - if(!gx) - return 0; - - //gx->OpenSound(); - if(!gx->OpenGraphics()) - { - delete gx; - gx = 0; - return 0; - } - - return TRUE; - - #else - return GXOpenDisplay(hWnd,dwFlags); - #endif -} - -extern "C" int GXCLOSEDISPLAY() -{ - #ifndef _USE_GAPI_ - gx->CloseGraphics(); - return TRUE; - #else - return GXCloseDisplay(); - #endif -} - -extern "C" void * GXBEGINDRAW() -{ - #ifndef _USE_GAPI_ - if(gx->BeginDraw()) - return gx->GetFBAddress(); - - return NULL; - #else - return GXBeginDraw(); - #endif -} - -extern "C" int GXENDDRAW() -{ - #ifndef _USE_GAPI_ - return gx->EndDraw(); - #else - return GXEndDraw(); - #endif - -} - -extern "C" struct GXDisplayProperties GXGETDISPLAYPROPERTIES() -{ - #ifndef _USE_GAPI_ - RECT r; - GXDisplayProperties gxdp; - - gxdp.cbyPitch = gx->GetFBModulo(); - gxdp.cBPP = gx->GetFBBpp(); - gxdp.cbxPitch = (gxdp.cBPP >> 3); - - gx->GetScreenRect(&r); - gxdp.cxWidth = (r.right - r.left); - gxdp.cyHeight = (r.bottom - r.top); - - if(gxdp.cBPP = 16) - gxdp.ffFormat = kfDirect565; - else if(gxdp.cBPP = 8) - gxdp.ffFormat = kfPalette; - - return gxdp; - - #else - return GXGetDisplayProperties(); - #endif -} - -extern "C" int GXSUSPEND() -{ - #ifndef _USE_GAPI_ - return gx->Suspend(); - #else - return GXSuspend(); - #endif -} - -extern "C" int GXRESUME() -{ - #ifndef _USE_GAPI_ - return gx->Resume(); - #else - return GXResume(); - #endif -} \ No newline at end of file diff --git a/src/win32ce/gapi_c.h b/src/win32ce/gapi_c.h deleted file mode 100644 index 40e7799ff..000000000 --- a/src/win32ce/gapi_c.h +++ /dev/null @@ -1,12 +0,0 @@ -#ifndef GAPI_H -#define GAPI_H - -int GXOPENDISPLAY(HWND hWnd, DWORD dwFlags); -int GXCLOSEDISPLAY(); -void * GXBEGINDRAW(); -int GXENDDRAW(); -struct GXDisplayProperties GXGETDISPLAYPROPERTIES(); -int GXSUSPEND(); -int GXRESUME(); - -#endif \ No newline at end of file diff --git a/src/win32ce/gxgapilib.c b/src/win32ce/gxgapilib.c deleted file mode 100644 index 8ff57092d..000000000 --- a/src/win32ce/gxgapilib.c +++ /dev/null @@ -1,636 +0,0 @@ -// Emacs style mode select -*- C++ -*- -//----------------------------------------------------------------------------- -// -// Copyright (C) 1998-2000 by DooM Legacy Team. -// -// 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 2 -// 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. -// -//----------------------------------------------------------------------------- -/// \file -/// \brief Zak Larue-Buckley's GX and GAPI library v1.0 - -#include "../doomdef.h" -//#define WIN32_LEAN_AND_MEAN -#define RPC_NO_WINDOWS_H -#include -#include -#include "../i_system.h" -#include "dx_error.h" - -#include "fabdxlib.h" - -#define NT4COMPAT //always defined, always compatible - - -// globals - -IDirectDraw2* DDr2 = NULL; -IDirectDrawSurface* ScreenReal = NULL; // DirectDraw primary surface -IDirectDrawSurface* ScreenVirtual = NULL; // DirectDraw back surface -IDirectDrawPalette* DDPalette = NULL; // The primary surface palette -static IDirectDrawClipper *windclip = NULL; // clipper for windowed mode - -BOOL bAppFullScreen; // true for fullscreen exclusive mode, - -int windowPosX = 0; // current position in windowed mode -int windowPosY = 0; - -int ScreenWidth; -int ScreenHeight; -BOOL ScreenLocked; // Screen surface is being locked -int ScreenPitch; // offset from one line to the next -LPBYTE ScreenPtr; // memory of the surface - - -// -// CreateNewSurface -// -static inline IDirectDrawSurface* CreateNewSurface(int dwWidth, - int dwHeight, - int dwSurfaceCaps) -{ - DDSURFACEDESC ddsd; - HRESULT hr; - LPDIRECTDRAWSURFACE psurf; - - ZeroMemory(&ddsd, sizeof (ddsd)); - ddsd.dwSize = sizeof (ddsd); - ddsd.dwFlags = DDSD_CAPS | DDSD_HEIGHT |DDSD_WIDTH; - - ddsd.ddsCaps.dwCaps = dwSurfaceCaps; - - ddsd.dwHeight = dwHeight; - ddsd.dwWidth = dwWidth; - - hr = IDirectDraw2_CreateSurface (DDr2, &ddsd, &psurf, NULL); - - if (hr == DD_OK) - { - //DDCOLORKEY ddck; - IDirectDrawSurface_Restore(psurf); - - //hr = IDirectDrawSurface_GetColorKey(DDCKEY_SRCBLT, &ddck); - //psurf->SetColorKey(DDCKEY_SRCBLT, &ddck); - } - else - psurf = NULL; - - return psurf; -} - -// -// wow! from 320x200x8 up to 1600x1200x32 thanks Banshee! :) -// -static HRESULT WINAPI myEnumModesCallback (LPDDSURFACEDESC surf, LPVOID lpContext) -{ - APPENUMMODESCALLBACK pfnContext = lpContext; - - if (pfnContext) pfnContext(surf->dwWidth, - surf->dwHeight,surf->ddpfPixelFormat. -#ifdef DUMMYUNIONNAMEN - DUMMYUNIONNAMEN(1). -#endif - dwRGBBitCount - ); - - /*CONS_Printf ("%dx%dx%d bpp %d refresh\n", - surf->dwWidth, - surf->dwHeight, - surf->ddpfPixelFormat.dwRGBBitCount, - surf->dwRefreshRate);*/ - - return DDENUMRET_OK; -} - - -// -// Application call here to enumerate display modes -// -BOOL EnumDirectDrawDisplayModes (APPENUMMODESCALLBACK appFunc) -{ - LPVOID lpappFunc = appFunc; - - if (DDr2 == NULL) - return FALSE; - - // enumerate display modes - // Carl: DirectX 3.x apparently does not support VGA modes. Who cares. :) - // faB: removed DDEDM_REFRESHRATES, detects too many modes, plus we don't care of refresh rate. - if (bDX0300) - IDirectDraw2_EnumDisplayModes (DDr2, 0 /*| DDEDM_REFRESHRATES*/, - NULL, lpappFunc, myEnumModesCallback); - else - IDirectDraw2_EnumDisplayModes (DDr2, DDEDM_STANDARDVGAMODES /*| DDEDM_REFRESHRATES*/, - NULL, lpappFunc, myEnumModesCallback); - return TRUE; -} - - -// -// Create the DirectDraw object for later -// -BOOL CreateDirectDrawInstance (VOID) -{ - HRESULT hr; - IDirectDraw* DDr; - IDirectDraw** rp = &DDr; - IDirectDraw2** rp2 = &DDr2; - LPVOID *tp = (LPVOID *)rp2; - - // - // create an instance of DirectDraw object - // - if (FAILED(hr = DirectDrawCreate(NULL, rp, NULL))) - I_Error("DirectDrawCreate FAILED: %s", DXErrorToString(hr)); - - // change interface to IDirectDraw2 - if (FAILED(hr = IDirectDraw_QueryInterface (DDr, &IID_IDirectDraw2, tp))) - I_Error("Failed to query DirectDraw2 interface: %s", DXErrorToString(hr)); - - // release the interface we don't need - IDirectDraw_Release (DDr); - return TRUE; -} - - -// -// - returns true if DirectDraw was initialized properly -// -int InitDirectDrawe (HWND appWin, int width, int height, int bpp, int fullScr) -{ - DDSURFACEDESC ddsd; // DirectDraw surface description for allocating - DDSCAPS ddscaps; - HRESULT ddrval; - - DWORD dwStyle; - RECT rect; - - // enumerate directdraw devices - //if (FAILED(DirectDrawEnumerate (myEnumDDDevicesCallback, NULL))) - // I_Error("Error with DirectDrawEnumerate"); - - if (!DDr2) - CreateDirectDrawInstance(); - - // remember what screen mode we are in - bAppFullScreen = fullScr; - ScreenHeight = height; - ScreenWidth = width; - - if (bAppFullScreen) - { - // Change window attributes - dwStyle = WS_POPUP | WS_VISIBLE; - SetWindowLong (appWin, GWL_STYLE, dwStyle); - SetWindowPos(appWin, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOACTIVATE | - SWP_NOMOVE | SWP_NOSIZE | SWP_NOZORDER); - - // Get exclusive mode - ddrval = IDirectDraw2_SetCooperativeLevel(DDr2, appWin, DDSCL_EXCLUSIVE | - DDSCL_FULLSCREEN | - DDSCL_ALLOWREBOOT); - if (ddrval != DD_OK) - I_Error("SetCooperativeLevel FAILED: %s\n", DXErrorToString(ddrval)); - - // Switch from windows desktop to fullscreen - -#ifdef NT4COMPAT - ddrval = IDirectDraw2_SetDisplayMode(DDr2, width, height, bpp, 0, 0); -#else - ddrval = IDirectDraw2_SetDisplayMode(DDr2, width, height, bpp, 0, DDSDM_STANDARDVGAMODE); -#endif - if (ddrval != DD_OK) - I_Error("SetDisplayMode FAILED: %s\n", DXErrorToString(ddrval)); - - // This is not really needed, except in certain cases. One case - // is while using MFC. When the desktop is initally at 16bpp, a mode - // switch to 8bpp somehow causes the MFC window to not fully initialize - // and a CreateSurface will fail with DDERR_NOEXCLUSIVEMODE. This will - // ensure that the window is initialized properly after a mode switch. - - ShowWindow(appWin, SW_SHOW); - - // Create the primary surface with 1 back buffer. Always zero the - // DDSURFACEDESC structure and set the dwSize member! - - ZeroMemory(&ddsd, sizeof (ddsd)); - ddsd.dwSize = sizeof (ddsd); - ddsd.dwFlags = DDSD_CAPS | DDSD_BACKBUFFERCOUNT; - ddsd.ddsCaps.dwCaps = DDSCAPS_PRIMARYSURFACE | DDSCAPS_FLIP | DDSCAPS_COMPLEX; - - // for fullscreen we use page flipping, for windowed mode, we blit the hidden surface to - // the visible surface, in both cases we have a visible (or 'real') surface, and a hidden - // (or 'virtual', or 'backbuffer') surface. - ddsd.dwBackBufferCount = 1; - - ddrval = IDirectDraw2_CreateSurface(DDr2,&ddsd, &ScreenReal, NULL); - if (ddrval != DD_OK) - I_Error("CreateSurface Primary Screen FAILED"); - - // Get a pointer to the back buffer - - ddscaps.dwCaps = DDSCAPS_BACKBUFFER; - ddrval = IDirectDrawSurface_GetAttachedSurface(ScreenReal,&ddscaps, &ScreenVirtual); - if (ddrval != DD_OK) - I_Error("GetAttachedSurface FAILED"); - } - else - { - rect.top = 0; - rect.left = 0; - rect.bottom = height-1; - rect.right = width-1; - - // Change window attributes - - dwStyle = GetWindowStyle(appWin); - dwStyle &= ~WS_POPUP; - dwStyle |= WS_OVERLAPPED | WS_SYSMENU | WS_CAPTION; - - SetWindowLong(appWin, GWL_STYLE, dwStyle); - - // Resize the window so that the client area is the requested width/height - - AdjustWindowRectEx(&rect, GetWindowStyle(appWin), GetMenu(appWin) != NULL, - GetWindowExStyle(appWin)); - - // Just in case the window was moved off the visible area of the - // screen. - - SetWindowPos(appWin, NULL, 0, 0, rect.right-rect.left, - rect.bottom-rect.top, SWP_NOMOVE | SWP_NOZORDER | - SWP_NOACTIVATE); - - SetWindowPos(appWin, HWND_NOTOPMOST, 0, 0, 0, 0, - SWP_NOSIZE | SWP_NOMOVE | SWP_NOACTIVATE); - - // Exclusive mode is normal since it's in windowed mode and needs - // to cooperate with GDI - - ddrval = IDirectDraw2_SetCooperativeLevel(DDr2,appWin, DDSCL_NORMAL); - if (ddrval != DD_OK) - I_Error("SetCooperativeLevel FAILED"); - - // Always zero the DDSURFACEDESC structure and set the dwSize member! - - ZeroMemory(&ddsd, sizeof (ddsd)); - ddsd.dwSize = sizeof (ddsd); - ddsd.dwFlags = DDSD_CAPS; - ddsd.ddsCaps.dwCaps = DDSCAPS_PRIMARYSURFACE; - - // Create the primary surface - - ddrval = IDirectDraw2_CreateSurface(DDr2,&ddsd, &ScreenReal, NULL); - if (ddrval != DD_OK) - I_Error("CreateSurface Primary Screen FAILED"); - - // Create a back buffer for offscreen rendering, this will be used to - // blt to the primary - - ScreenVirtual = CreateNewSurface(width, height, DDSCAPS_OFFSCREENPLAIN | - DDSCAPS_SYSTEMMEMORY); - if (ScreenVirtual == NULL) - I_Error("CreateSurface Secondary Screen FAILED"); - - /// \todo get the desktop bit depth, and build a lookup table - /// for quick conversions of 8bit color indexes 0-255 to desktop colors - /// eg: 256 entries of equivalent of palette colors 0-255 in 15,16,24,32 bit format - /// when blit virtual to real, convert pixels through lookup table.. - - // Use a clipper object for clipping when in windowed mode - // (make sure our drawing doesn't affect other windows) - - ddrval = IDirectDraw2_CreateClipper (DDr2, 0, &windclip, 0); - if (ddrval != DD_OK) - I_Error("CreateClipper FAILED"); - - // Associate the clipper with the window. - ddrval = IDirectDrawClipper_SetHWnd (windclip,0, appWin); - if (ddrval != DD_OK) - I_Error("Clipper -> SetHWnd FAILED"); - - // Attach the clipper to the surface. - ddrval = IDirectDrawSurface_SetClipper (ScreenReal,windclip); - if (ddrval != DD_OK) - I_Error("PrimaryScreen -> SetClipperClipper FAILED"); - } - - return TRUE; -} - - -// -// Free all memory -// -VOID CloseDirectDraw (VOID) -{ - ReleaseChtuff(); - if (DDr2) - { - IDirectDraw2_Release(DDr2); - DDr2 = NULL; - } -} - - -// -// Release DirectDraw stuff before display mode change -// -VOID ReleaseChtuff (VOID) -{ - if (!DDr2) - return; - if (windclip) - { - IDirectDrawClipper_Release(windclip); - windclip = NULL; - } - if (DDPalette) - { - IDirectDrawPalette_Release(DDPalette); - DDPalette = NULL; - } - // If the app is fullscreen, the back buffer is attached to the - // primary. Releasing the primary buffer will also release any - // attached buffers, so explicitly releasing the back buffer is not - // necessary. - - if (!bAppFullScreen && ScreenVirtual) - { - IDirectDrawSurface_Release(ScreenVirtual); // release hidden surface - ScreenVirtual = NULL; - } - if (ScreenReal) - { - IDirectDrawSurface_Release(ScreenReal); // and attached backbuffers for bAppFullScreen mode - ScreenReal = NULL; - } -} - - -// -// Clear the surface to color -// -VOID ClearSurface(IDirectDrawSurface* surface, int color) -{ - DDBLTFX ddbltfx; - - // Use the blter to do a color fill to clear the back buffer - ddbltfx.dwSize = sizeof (ddbltfx); - ddbltfx. -#ifdef DUMMYUNIONNAMEN - DUMMYUNIONNAMEN(5). -#endif - dwFillColor = color; - IDirectDrawSurface_Blt(surface,NULL, NULL, NULL, DDBLT_COLORFILL | DDBLT_WAIT, &ddbltfx); - -} - -// -// Flip the real page with virtual page -// - in bAppFullScreen mode, do page flipping -// - in windowed mode, copy the hidden surface to the visible surface -// -// waitflip : if not 0, wait for page flip to end -BOOL ScreenFlip(int waitflip) -{ - HRESULT hr; - RECT rect; - - waitflip = 0; - if (bAppFullScreen) - { - //hr = IDirectDrawSurface_GetFlipStatus (ScreenReal, DDGFS_); - - // In full-screen exclusive mode, do a hardware flip. - hr = IDirectDrawSurface_Flip(ScreenReal, NULL, DDFLIP_WAIT); //return immediately - - // If the surface was lost, restore it. - if (hr == DDERR_SURFACELOST) - { - IDirectDrawSurface_Restore(ScreenReal); - - // The restore worked, so try the flip again. - hr = IDirectDrawSurface_Flip(ScreenReal, 0, DDFLIP_WAIT); - } - } - else - { - rect.left = windowPosX; - rect.top = windowPosY; - rect.right = windowPosX + ScreenWidth - 1; - rect.bottom = windowPosY + ScreenHeight - 1; - - // Copy the back buffer to front. - hr = IDirectDrawSurface_Blt(ScreenReal, &rect, ScreenVirtual, 0, DDBLT_WAIT, 0); - - if (hr != DD_OK) - { - // If the surfaces were lost, restore them. - if (IDirectDrawSurface_IsLost(ScreenReal) == DDERR_SURFACELOST) - IDirectDrawSurface_Restore(ScreenReal); - - if (IDirectDrawSurface_IsLost(ScreenVirtual) == DDERR_SURFACELOST) - IDirectDrawSurface_Restore(ScreenVirtual); - - // Retry the copy. - hr = IDirectDrawSurface_Blt(ScreenReal,&rect, ScreenVirtual, 0, DDBLT_WAIT, 0); - } - } - - if (hr != DD_OK) - I_Error("ScreenFlip() : couldn't Flip surfaces"); - - return FALSE; -} - -// -// Print a text to the surface -// -VOID TextPrint(int x, int y, LPCSTR message) -{ - HRESULT hr; - HDC hdc = NULL; - - // Get the device context handle. - hr = IDirectDrawSurface_GetDC(ScreenVirtual,&hdc); - if (hr != DD_OK) - return; - - // Write the message. - SetBkMode(hdc, TRANSPARENT); - SetTextColor(hdc, RGB(255, 255, 255)); - TextOutA(hdc, x, y, message, (int)strlen(message)); - - // Release the device context. - hr = IDirectDrawSurface_ReleaseDC(ScreenVirtual,hdc); -} - -// -// Lock surface before multiple drawings by hand, for speed -// -boolean LockScreen(VOID) -{ - DDSURFACEDESC ddsd; - HRESULT ddrval; - - ZeroMemory(&ddsd, sizeof (ddsd)); - ddsd.dwSize = sizeof (ddsd); - - // attempt to Lock the surface - ddrval = IDirectDrawSurface_Lock(ScreenVirtual, NULL, &ddsd, DDLOCK_WAIT, NULL); - - // Always, always check for errors with DirectX! - // If the surface was lost, restore it. - if (ddrval == DDERR_SURFACELOST) - { - ddrval = IDirectDrawSurface_Restore(ScreenReal); - - // now retry to get the lock - ddrval = IDirectDrawSurface_Lock(ScreenVirtual, NULL, &ddsd, DDLOCK_WAIT, NULL); - } - - if (ddrval == DD_OK) - { - ScreenLocked = TRUE; - ScreenPtr = (LPBYTE)ddsd.lpSurface; - ScreenPitch = ddsd. -#ifdef DUMMYUNIONNAMEN - DUMMYUNIONNAMEN(1). -#endif - lPitch; - } - else - { - ScreenLocked = FALSE; - ScreenPtr = NULL; - ScreenPitch = 0; - //I_Error("LockScreen() : couldn't restore the surface."); - return false; - } - return true; -} - -// -// Unlock surface -// -VOID UnlockScreen(VOID) -{ - if (DD_OK != IDirectDrawSurface_Unlock(ScreenVirtual,NULL)) - I_Error("Couldn't UnLock the renderer!"); - - ScreenLocked = FALSE; - ScreenPtr = NULL; - ScreenPitch = 0; -} - -// Blit virtual screen to real screen -//faB: note: testing 14/03/1999, see if it is faster than memcopy of virtual to -/* -static LPDIRECTDRAWSURFACE lpDDS = NULL; -VOID BlitScreen(VOID) -{ - HRESULT hr; - - if (!lpDDS) - I_Error("lpDDS NULL"); - - hr = IDirectDrawSurface_BltFast(ScreenVirtual, - 0, 0, // Upper left xy of destination - lpDDS, // Source surface - NULL, // Source rectangle = entire surface - DDBLTFAST_WAIT | DDBLTFAST_NOCOLORKEY); - if (FAILED(hr)) - I_Error("BltFast FAILED"); -} - -VOID MakeScreen(int width, int height, BYTE* lpSurface) -{ - HRESULT hr; - DDSURFACEDESC ddsd; - - // Initialize the surface description. - ZeroMemory (&ddsd, sizeof ddsd); - ZeroMemory (&ddsd.ddpfPixelFormat, sizeof (DDPIXELFORMAT)); - ddsd.dwSize = sizeof ddsd; - ddsd.dwFlags = DDSD_WIDTH | DDSD_HEIGHT | //DDSD_LPSURFACE | - DDSD_PITCH | DDSD_PIXELFORMAT | DDSD_CAPS; - ddsd.dwWidth = width; - ddsd.dwHeight= height; - ddsd.lPitch = width; - ddsd.lpSurface = lpSurface; - ddsd.ddsCaps.dwCaps = DDSCAPS_SYSTEMMEMORY | DDSCAPS_OFFSCREENPLAIN; - - // Set up the pixel format for 8-bit - ddsd.ddpfPixelFormat.dwSize = sizeof (DDPIXELFORMAT); - ddsd.ddpfPixelFormat.dwFlags= DDPF_RGB | DDPF_PALETTEINDEXED8; - ddsd.ddpfPixelFormat.dwRGBBitCount = 8; - - // - ddsd.ddpfPixelFormat.dwRGBBitCount = (DWORD)DEPTH*8; - ddsd.ddpfPixelFormat.dwRBitMask = 0x00FF0000; - ddsd.ddpfPixelFormat.dwGBitMask = 0x0000FF00; - ddsd.ddpfPixelFormat.dwBBitMask = 0x000000FF; - - // Create the surface - hr = IDirectDraw2_CreateSurface(DDr2, &ddsd, &lpDDS, NULL); - if (FAILED(hr)) - I_Error("MakeScreen FAILED: %s",DDError(hr)); - //ddsd.lpSurface = lpSurface; -} -*/ - -// -// Create a palette object -// -VOID CreateDDPalette (PALETTEENTRY* colorTable) -{ - HRESULT ddrval; - ddrval = IDirectDraw2_CreatePalette(DDr2,DDPCAPS_8BIT|DDPCAPS_ALLOW256, colorTable, &DDPalette, NULL); - if (ddrval != DD_OK) - I_Error("couldn't CreatePalette"); -}; - - -// -// Free the palette object -// -VOID DestroyDDPalette (VOID) -{ - if (DDPalette) - { - IDirectDrawPalette_Release(DDPalette); - DDPalette = NULL; - } -} - -// -// Set a a full palette of 256 PALETTEENTRY entries -// -VOID SetDDPalette(PALETTEENTRY* pal) -{ - // create palette first time - if (DDPalette == NULL) - CreateDDPalette(pal); - else - IDirectDrawPalette_SetEntries(DDPalette, 0, 0, 256, pal); - // setting the same palette to the same surface again does not increase - // the reference count - IDirectDrawSurface_SetPalette(ScreenReal, DDPalette); -} - -// -// Wait for vsync, gross -// -VOID WaitVbl(VOID) -{ - IDirectDraw2_WaitForVerticalBlank(DDr2, DDWAITVB_BLOCKBEGIN, NULL); -} diff --git a/src/win32ce/gxgapilib.h b/src/win32ce/gxgapilib.h deleted file mode 100644 index 189cc15b8..000000000 --- a/src/win32ce/gxgapilib.h +++ /dev/null @@ -1,81 +0,0 @@ -// Emacs style mode select -*- C++ -*- -//----------------------------------------------------------------------------- -// -// Copyright (C) 1998-2000 by DooM Legacy Team. -// -// 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 2 -// 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. -//----------------------------------------------------------------------------- -/// \file -/// \brief Zak Larue-Buckley's GX and GAPI library v1.0 - -#ifndef _H_GXGAPILIB_ -#define _H_GXGAPILIB_ - -//#define WIN32_LEAN_AND_MEAN -#define RPC_NO_WINDOWS_H -#include -#ifdef __MINGW32__ -//#define NONAMELESSUNION -#endif -#ifdef _MSC_VER -#pragma warning(disable : 4201) -#endif -#include -#if (defined (DIRECTDRAW_VERSION) && (DIRECTDRAW_VERSION >= 0x0700)) -#undef DUMMYUNIONNAMEN -#endif -// format of function in app called with width,height -typedef BOOL (*APPENUMMODESCALLBACK)(int width, int height, int bpp); - - -// globals -extern IDirectDraw2* DDr2; -extern IDirectDrawSurface* ScreenReal; -extern IDirectDrawSurface* ScreenVirtual; -extern IDirectDrawPalette* DDPalette; - -extern BOOL bAppFullScreen; // main code might need this to know the current - // fullscreen or windowed state - -extern int windowPosX; // current position in windowed mode -extern int windowPosY; - -extern int ScreenWidth; -extern int ScreenHeight; -extern BOOL ScreenLocked; // Screen surface is being locked -extern int ScreenPitch; // offset from one line to the next -extern LPBYTE ScreenPtr; // memory of the surface - -extern BOOL bDX0300; - -BOOL EnumDirectDrawDisplayModes (APPENUMMODESCALLBACK appFunc); -BOOL CreateDirectDrawInstance (VOID); - -int InitDirectDrawe (HWND appWin, int width, int height, int bpp, int fullScr); -VOID CloseDirectDraw (VOID); - -VOID ReleaseChtuff (VOID); - -VOID ClearSurface (IDirectDrawSurface* surface, int color); -BOOL ScreenFlip (int wait); -VOID TextPrint (int x, int y, LPCSTR message); - -VOID CreateDDPalette (PALETTEENTRY* colorTable); -VOID DestroyDDPalette (VOID); -VOID SetDDPalette (PALETTEENTRY* pal); - -VOID WaitVbl (VOID); - -boolean LockScreen (VOID); -VOID UnlockScreen (VOID); - - -#endif /* _H_FABDXLIB_ */ diff --git a/src/win32ce/midstuff.h b/src/win32ce/midstuff.h deleted file mode 100644 index 08ee80add..000000000 --- a/src/win32ce/midstuff.h +++ /dev/null @@ -1,150 +0,0 @@ -// Emacs style mode select -*- C++ -*- -//----------------------------------------------------------------------------- -// -// Copyright (C) 1998-2000 by DooM Legacy Team. -// -// 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 2 -// 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. -//----------------------------------------------------------------------------- -/// \file -/// \brief MIDI structures and definitions -/// used by the MSTREAM sample application in -/// converting a MID file to a MIDI stream for -/// playback using the midiStream API. -/// Inpired by DirectX5 SDK examples - -#ifndef __MIDSTUFF_H__ -#define __MIDSTUFF_H__ - -// MIDI file constants -// -#define MThd 0x6468544D // Start of file -#define MTrk 0x6B72544D // Start of track - -#define MIDI_SYSEX ((BYTE)0xF0) // SysEx begin -#define MIDI_SYSEXEND ((BYTE)0xF7) // SysEx begin -#define MIDI_META ((BYTE)0xFF) // Meta event begin -#define MIDI_META_TEMPO ((BYTE)0x51) // Tempo change -#define MIDI_META_EOT ((BYTE)0x2F) // End-of-track - -#define MIDI_NOTEOFF ((BYTE)0x80) // + note + velocity -#define MIDI_NOTEON ((BYTE)0x90) // + note + velocity -#define MIDI_POLYPRESS ((BYTE)0xA0) // + pressure (2 bytes) -#define MIDI_CTRLCHANGE ((BYTE)0xB0) // + ctrlr + value -#define MIDI_PRGMCHANGE ((BYTE)0xC0) // + new patch -#define MIDI_CHANPRESS ((BYTE)0xD0) // + pressure (1 byte) -#define MIDI_PITCHBEND ((BYTE)0xE0) // + pitch bend (2 bytes) - -#define NUM_CHANNELS 16 - -#define MIDICTRL_VOLUME ((BYTE)0x07) -#define MIDICTRL_VOLUME_LSB ((BYTE)0x27) -#define MIDICTRL_PAN ((BYTE)0x0A) - -#define MIDIEVENT_CHANNEL(dw) (dw & 0x0000000F) -#define MIDIEVENT_TYPE(dw) (dw & 0x000000F0) -#define MIDIEVENT_DATA1(dw) ((dw & 0x0000FF00) >> 8) -#define MIDIEVENT_VOLUME(dw) ((dw & 0x007F0000) >> 16) - -// Macros for swapping hi/lo-endian data -// -#define WORDSWAP(w) (((w) >> 8) | \ - (((w) << 8) & 0xFF00)) - -#define DWORDSWAP(dw) (((dw) >> 24) | \ - (((dw) >> 8) & 0x0000FF00) | \ - (((dw) << 8) & 0x00FF0000) | \ - (((dw) << 24) & 0xFF000000)) - -// In debug builds, TRACKERR will show us where the parser died -// -//#define TRACKERR(p,sz) ShowTrackError(p,sz); -#define TRACKERR(p,sz) - - -// Make a little distinction here so the various structure members are a bit -// more clearly labelled -- we have offsets and byte counts to keep track of -// that deal with both in-memory buffers and the file on disk - -#define FILEOFF DWORD - - -// These structures are stored in MIDI files; they need to be byte aligned. -// -#if defined(_MSC_VER) -#pragma pack(1) -#endif - -// Chunk header. dwTag is either MTrk or MThd. -// -typedef struct -{ - DWORD dwTag; // Type - DWORD dwChunkLength; // Length (hi-lo) -} ATTRPACK MIDICHUNK; - -// Contents of MThd chunk. -typedef struct -{ - WORD wFormat; // Format (hi-lo) - WORD wTrackCount; // # tracks (hi-lo) - WORD wTimeDivision; // Time division (hi-lo) -} ATTRPACK MIDIFILEHDR; - -#if defined(_MSC_VER) -#pragma pack() // End of need for byte-aligned structures -#endif - - -// Temporary event structure which stores event data until we're ready to -// dump it into a stream buffer -// -typedef struct -{ - DWORD tkEvent; // Absolute time of event - BYTE byShortData[4]; // Event type and parameters if channel msg - DWORD dwEventLength; // Length of data which follows if meta or sysex - LPBYTE pLongData; // -> Event data if applicable -} TEMPEVENT, *PTEMPEVENT; - -#define ITS_F_ENDOFTRK 0x00000001 - -// Description of a track open for read -// -typedef struct -{ - DWORD fdwTrack; // Track status - DWORD dwTrackLength; // Total bytes in track - DWORD dwLeftInBuffer; // Bytes left unread in track buffer - LPBYTE pTrackStart; // -> start of track data buffer - LPBYTE pTrackCurrent; // -> next byte to read in buffer - DWORD tkNextEventDue; // Absolute time of next event in track - BYTE byRunningStatus;// Running status from last channel msg - - FILEOFF foTrackStart; // Start of track -- used for walking the file - FILEOFF foNextReadStart;// File offset of next read from disk - DWORD dwLeftOnDisk; // Bytes left unread on disk -#ifdef DEBUG - DWORD nTrack; // # of this track for debugging -#endif -} INTRACKSTATE, *PINTRACKSTATE; - -// Description of the input MIDI file -// -typedef struct -{ - DWORD cbFileLength; // Total bytes in file - DWORD dwTimeDivision; // Original time division - DWORD dwFormat; // Original format - DWORD dwTrackCount; // Track count (specifies pitsTracks size) - INTRACKSTATE *pitsTracks; // -> array of tracks in this file -} INFILESTATE, *PINFILESTATE; - -#endif //__MIDSTUFF_H__ diff --git a/src/win32ce/resource.h b/src/win32ce/resource.h deleted file mode 100644 index a712f14d6..000000000 --- a/src/win32ce/resource.h +++ /dev/null @@ -1,18 +0,0 @@ -//{{NO_DEPENDENCIES}} -// Microsoft Developer Studio generated include file. -// Used by Srb2win.rc -// -#define IDI_DLICON1 101 -#define IDC_DLCURSOR1 103 -#define IDI_ICON1 106 - -// Next default values for new objects -// -#ifdef APSTUDIO_INVOKED -#ifndef APSTUDIO_READONLY_SYMBOLS -#define _APS_NEXT_RESOURCE_VALUE 114 -#define _APS_NEXT_COMMAND_VALUE 40001 -#define _APS_NEXT_CONTROL_VALUE 1000 -#define _APS_NEXT_SYMED_VALUE 101 -#endif -#endif diff --git a/src/win32ce/win_cd.c b/src/win32ce/win_cd.c deleted file mode 100644 index 2b1a8be9a..000000000 --- a/src/win32ce/win_cd.c +++ /dev/null @@ -1,529 +0,0 @@ -// Emacs style mode select -*- C++ -*- -//----------------------------------------------------------------------------- -// -// Copyright (C) 1998-2000 by DooM Legacy Team. -// -// 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 2 -// 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. -//----------------------------------------------------------------------------- -/// \file -/// \brief cd music interface (uses MCI). - -#include "../doomdef.h" -#include "win_main.h" -#include - -#include "../command.h" -#include "../doomtype.h" -#include "../i_sound.h" -#include "../i_system.h" - -#include "../s_sound.h" - -#define MAX_CD_TRACKS 255 - -typedef struct { - BOOL IsAudio; - DWORD Start, End; - DWORD Length; // minutes -} CDTrack; - -// ------- -// private -// ------- -static CDTrack m_nTracks[MAX_CD_TRACKS]; -static int m_nTracksCount; // up to MAX_CD_TRACKS -static MCI_STATUS_PARMS m_MCIStatus; -static MCI_OPEN_PARMS m_MCIOpen; - -// ------ -// protos -// ------ -static void Command_Cd_f (void); - - -// ------------------- -// MCIErrorMessageBox -// Retrieve error message corresponding to return value from -// mciSendCommand() or mciSenString() -// ------------------- -static VOID MCIErrorMessageBox (MCIERROR iErrorCode) -{ - char szErrorText[128]; - if (!mciGetErrorStringA (iErrorCode, szErrorText, sizeof (szErrorText))) - wsprintfA(szErrorText,"MCI CD Audio Unknow Error #%d\n", iErrorCode); - CONS_Printf (szErrorText); - /*MessageBox (GetActiveWindow(), szTemp+1, "LEGACY", - MB_OK | MB_ICONSTOP);*/ -} - - -// -------- -// CD_Reset -// -------- -static void CD_Reset (void) -{ - // no win32 equivalent - //faB: for DOS, some odd drivers like to be reset sometimes.. useless in MCI I guess -} - - -// ---------------- -// CD_ReadTrackInfo -// Read in number of tracks, and length of each track in minutes/seconds -// returns true if error -// ---------------- -static BOOL CD_ReadTrackInfo (void) -{ - int i; - int nTrackLength; - MCIERROR iErr; - - m_nTracksCount = 0; - - m_MCIStatus.dwItem = MCI_STATUS_NUMBER_OF_TRACKS; - iErr = mciSendCommand(m_MCIOpen.wDeviceID, MCI_STATUS, MCI_STATUS_ITEM|MCI_WAIT, (DWORD_PTR)&m_MCIStatus); - if (iErr) - { - MCIErrorMessageBox (iErr); - return FALSE; - } - m_nTracksCount = (int)m_MCIStatus.dwReturn; - if (m_nTracksCount > MAX_CD_TRACKS) - m_nTracksCount = MAX_CD_TRACKS; - - for (i = 0; i < m_nTracksCount; i++) - { - m_MCIStatus.dwTrack = (DWORD)(i+1); - m_MCIStatus.dwItem = MCI_STATUS_LENGTH; - iErr = mciSendCommand(m_MCIOpen.wDeviceID, MCI_STATUS, MCI_TRACK|MCI_STATUS_ITEM|MCI_WAIT, (DWORD_PTR)&m_MCIStatus); - if (iErr) - { - MCIErrorMessageBox (iErr); - return FALSE; - } - nTrackLength = (DWORD)(MCI_MSF_MINUTE(m_MCIStatus.dwReturn)*60 + MCI_MSF_SECOND(m_MCIStatus.dwReturn)); - m_nTracks[i].Length = nTrackLength; - - m_MCIStatus.dwItem = MCI_CDA_STATUS_TYPE_TRACK; - iErr = mciSendCommand(m_MCIOpen.wDeviceID, MCI_STATUS, MCI_TRACK|MCI_STATUS_ITEM|MCI_WAIT, (DWORD_PTR)&m_MCIStatus); - if (iErr) - { - MCIErrorMessageBox (iErr); - return FALSE; - } - m_nTracks[i].IsAudio = (m_MCIStatus.dwReturn == MCI_CDA_TRACK_AUDIO); - } - - return TRUE; -} - - -// ------------ -// CD_TotalTime -// returns total time for all audio tracks in seconds -// ------------ -static int CD_TotalTime (void) -{ - int nTotalLength = 0; - int nTrack; - for (nTrack = 0; nTrack < m_nTracksCount; nTrack++) - { - if (m_nTracks[nTrack].IsAudio) - nTotalLength = nTotalLength + m_nTracks[nTrack].Length; - } - return nTotalLength; -} - - -//====================================================================== -// CD AUDIO MUSIC SUBSYSTEM -//====================================================================== - -UINT8 cdaudio_started = 0; // for system startup/shutdown - -static boolean cdPlaying = false; -static int cdPlayTrack; // when cdPlaying is true -static boolean cdLooping = false; -static UINT8 cdRemap[MAX_CD_TRACKS]; -static boolean cdEnabled = true; // cd info available -static boolean cdValid; // true when last cd audio info was ok -static boolean wasPlaying; -//static int cdVolume = 0; // current cd volume (0-31) - -// 0-31 like Music & Sfx, though CD hardware volume is 0-255. -consvar_t cd_volume = {"cd_volume","31",CV_SAVE,soundvolume_cons_t, NULL, 0, NULL, NULL, 0, 0, NULL}; - -// allow Update for next/loop track -// some crap cd drivers take up to -// a second for a simple 'busy' check.. -// (on those Update can be disabled) -consvar_t cdUpdate = {"cd_update","1",CV_SAVE, NULL, NULL, 0, NULL, NULL, 0, 0, NULL}; - -// hour,minutes,seconds -static char *hms(int seconds) -{ - int hours, minutes; - static char s[9]; - - minutes = seconds / 60; - seconds %= 60; - hours = minutes / 60; - minutes %= 60; - if (hours > 0) - sprintf (s, "%d:%02d:%02d", hours, minutes, seconds); - else - sprintf (s, "%2d:%02d", minutes, seconds); - return s; -} - -static void Command_Cd_f (void) -{ - LPCSTR s; - int i,j; - - if (!cdaudio_started) - return; - - if (COM_Argc()<2) - { - CONS_Printf ("cd [on] [off] [remap] [reset] [open]\n" - " [info] [play ] [loop ]\n" - " [stop] [resume]\n"); - return; - } - - s = COM_Argv(1); - - // activate cd music - if (!strncmp(s,"on",2)) - { - cdEnabled = true; - return; - } - - // stop/deactivate cd music - if (!strncmp(s,"off",3)) - { - if (cdPlaying) - I_StopCD (); - cdEnabled = false; - return; - } - - // remap tracks - if (!strncmp(s,"remap",5)) - { - i = (int)COM_Argc() - 2; - if (i <= 0) - { - CONS_Printf ("CD tracks remapped in that order :\n"); - for (j = 1; j < MAX_CD_TRACKS; j++) - if (cdRemap[j] != j) - CONS_Printf (" %2d -> %2d\n", j, cdRemap[j]); - return; - } - for (j = 1; j <= i; j++) - cdRemap[j] = (UINT8)atoi (COM_Argv (j+1)); - return; - } - - // reset the CD driver, useful on some odd cd's - if (!strncmp(s,"reset",5)) - { - cdEnabled = true; - if (cdPlaying) - I_StopCD (); - for (i = 0; i < MAX_CD_TRACKS; i++) - cdRemap[i] = (UINT8)i; - CD_Reset(); - cdValid = CD_ReadTrackInfo(); - return; - } - - // any other command is not allowed until we could retrieve cd information - if (!cdValid) - { - CONS_Printf ("CD is not ready.\n"); - return; - } - - /* faB: not with MCI, didn't find it, useless anyway - if (!strncmp(s,"open",4)) - { - if (cdPlaying) - I_StopCD (); - bcd_open_door(); - cdValid = false; - return; - }*/ - - if (!strncmp(s,"info",4)) - { - if (!CD_ReadTrackInfo()) - { - cdValid = false; - return; - } - - cdValid = true; - - if (m_nTracksCount <= 0) - CONS_Printf ("No audio tracks\n"); - else - { - // display list of tracks - // highlight current playing track - for (i = 0; i < m_nTracksCount; i++) - { - CONS_Printf("%s%2d. %s %s\n", - cdPlaying && (cdPlayTrack == i) ? "\2 " : " ", - i+1, m_nTracks[i].IsAudio ? "audio" : "data ", - hms(m_nTracks[i].Length)); - } - CONS_Printf ("\2Total time : %s\n", hms(CD_TotalTime())); - } - if (cdPlaying) - { - CONS_Printf ("%s track : %d\n", cdLooping ? "looping" : "playing", - cdPlayTrack); - } - return; - } - - if (!strncmp(s,"play",4)) - { - I_PlayCD ((UINT8)atoi(COM_Argv (2)), false); - return; - } - - if (!strncmp(s,"stop",4)) - { - I_StopCD (); - return; - } - - if (!strncmp(s,"loop",4)) - { - I_PlayCD ((UINT8)atoi(COM_Argv (2)), true); - return; - } - - if (!strncmp(s,"resume",4)) - { - I_ResumeCD (); - return; - } - - CONS_Printf ("cd command '%s' unknown\n", s); -} - - -// ------------ -// I_ShutdownCD -// Shutdown CD Audio subsystem, release whatever was allocated -// ------------ -void I_ShutdownCD (void) -{ - MCIERROR iErr; - - if (!cdaudio_started) - return; - - CONS_Printf("I_ShutdownCD()\n"); - - I_StopCD(); - - // closes MCI CD - iErr = mciSendCommand(m_MCIOpen.wDeviceID, MCI_CLOSE, 0, 0); - if (iErr) - MCIErrorMessageBox (iErr); -} - - -// -------- -// I_InitCD -// Init CD Audio subsystem -// -------- -void I_InitCD (void) -{ - MCI_SET_PARMS mciSet; - MCIERROR iErr; - int i; - - // We don't have an open device yet - m_MCIOpen.wDeviceID = 0; - m_nTracksCount = 0; - - cdaudio_started = false; - - m_MCIOpen.lpstrDeviceType = (LPCTSTR)MCI_DEVTYPE_CD_AUDIO; - iErr = mciSendCommand(0, MCI_OPEN, MCI_OPEN_TYPE|MCI_OPEN_TYPE_ID, (DWORD_PTR)&m_MCIOpen); - if (iErr) - { - MCIErrorMessageBox (iErr); - return; - } - - // Set the time format to track/minute/second/frame (TMSF). - mciSet.dwTimeFormat = MCI_FORMAT_TMSF; - iErr = mciSendCommand(m_MCIOpen.wDeviceID, MCI_SET, MCI_SET_TIME_FORMAT, (DWORD_PTR)&mciSet); - if (iErr) - { - MCIErrorMessageBox (iErr); - mciSendCommand(m_MCIOpen.wDeviceID, MCI_CLOSE, 0, 0); - return; - } - - I_AddExitFunc (I_ShutdownCD); - cdaudio_started = true; - - CONS_Printf("I_InitCD: Init CD audio\n"); - - // last saved in config.cfg - i = cd_volume.value; - //I_SetVolumeCD (0); // initialize to 0 for some odd cd drivers - I_SetVolumeCD (i); // now set the last saved volume - - for (i = 0; i < MAX_CD_TRACKS; i++) - cdRemap[i] = (UINT8)i; - - if (!CD_ReadTrackInfo()) - { - CONS_Printf("\2I_InitCD: no CD in player.\n"); - cdEnabled = false; - cdValid = false; - } - else - { - cdEnabled = true; - cdValid = true; - } - - COM_AddCommand ("cd", Command_Cd_f); -} - - - -// loop/go to next track when track is finished (if cd_update var is true) -// update the volume when it has changed (from console/menu) -void I_UpdateCD (void) -{ - /// \todo check for cd change and restart music ? -} - - -// -void I_PlayCD (UINT8 nTrack, UINT8 bLooping) -{ - MCI_PLAY_PARMS mciPlay; - MCIERROR iErr; - - if (!cdaudio_started || !cdEnabled) - return; - - //faB: try again if it didn't work (just free the user of typing 'cd reset' command) - if (!cdValid) - cdValid = CD_ReadTrackInfo(); - if (!cdValid) - return; - - // tracks start at 0 in the code.. - nTrack--; - if (nTrack < 0 || nTrack >= m_nTracksCount) - nTrack = nTrack % m_nTracksCount; - - nTrack = cdRemap[nTrack]; - - if (cdPlaying) - { - if (cdPlayTrack == nTrack) - return; - I_StopCD (); - } - - cdPlayTrack = nTrack; - - if (!m_nTracks[nTrack].IsAudio) - { - //CONS_Printf ("\2CD Play: not an audio track\n"); // Tails 03-25-2001 - return; - } - - cdLooping = bLooping; - - //faB: stop MIDI music, MIDI music will restart if volume is upped later - cv_digmusicvolume.value = 0; - cv_midimusicvolume.value = 0; - I_StopSong (0); - - //faB: I don't use the notify message, I'm trying to minimize the delay - mciPlay.dwCallback = (DWORD_PTR)((size_t)hWndMain); - mciPlay.dwFrom = MCI_MAKE_TMSF(nTrack+1, 0, 0, 0); - iErr = mciSendCommand(m_MCIOpen.wDeviceID, MCI_PLAY, MCI_FROM|MCI_NOTIFY, (DWORD_PTR)&mciPlay); - if (iErr) - { - MCIErrorMessageBox (iErr); - cdValid = false; - cdPlaying = false; - return; - } - - cdPlaying = true; -} - - -// pause cd music -void I_StopCD (void) -{ - MCIERROR iErr; - - if (!cdaudio_started || !cdEnabled) - return; - - iErr = mciSendCommand(m_MCIOpen.wDeviceID, MCI_PAUSE, MCI_WAIT, 0); - if (iErr) - MCIErrorMessageBox (iErr); - else - { - wasPlaying = cdPlaying; - cdPlaying = false; - } -} - - -// continue after a pause -void I_ResumeCD (void) -{ - MCIERROR iErr; - - if (!cdaudio_started || !cdEnabled) - return; - - if (!cdValid) - return; - - if (!wasPlaying) - return; - - iErr = mciSendCommand(m_MCIOpen.wDeviceID, MCI_RESUME, MCI_WAIT, 0); - if (iErr) - MCIErrorMessageBox (iErr); - else - cdPlaying = true; -} - - -// volume : logical cd audio volume 0-31 (hardware is 0-255) -int I_SetVolumeCD (int volume) -{ - (void)volume; - return 1; -} diff --git a/src/win32ce/win_dbg.c b/src/win32ce/win_dbg.c deleted file mode 100644 index 9cfe77636..000000000 --- a/src/win32ce/win_dbg.c +++ /dev/null @@ -1,629 +0,0 @@ -// Emacs style mode select -*- C++ -*- -//----------------------------------------------------------------------------- -// -// Copyright (C) 1998-2000 by DooM Legacy Team. -// -// 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 2 -// 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. -//----------------------------------------------------------------------------- -/// \file -/// \brief Sources from GameDeveloper magazine article, January 1998, by Bruce Dawson. -/// this source file contains the exception handler for recording error -/// information after crashes. - -#include -#include "win_main.h" -#include "../doomdef.h" //just for VERSION -#include "win_dbg.h" -#include "../m_argv.h" //print the parameter in the log - - -#define NumCodeBytes 16 // Number of code bytes to record. -#define MaxStackDump 2048 // Maximum number of DWORDS in stack dumps. -#define StackColumns 8 // Number of columns in stack dump. - -#define ONEK 1024 -#define SIXTYFOURK (64*ONEK) -#define ONEM (ONEK*ONEK) -#define ONEG (ONEK*ONEK*ONEK) - - -// -------------------------------------------------------------------------- -// return a description for an ExceptionCode -// -------------------------------------------------------------------------- -static LPCSTR GetExceptionDescription (DWORD ExceptionCode) -{ - unsigned int i; - - struct ExceptionNames - { - DWORD ExceptionCode; - LPCSTR ExceptionName; - }; - - struct ExceptionNames ExceptionMap[] = - { - {EXCEPTION_ACCESS_VIOLATION, "an Access Violation"}, - {EXCEPTION_ARRAY_BOUNDS_EXCEEDED, "a Array Bounds Exceeded"}, - {EXCEPTION_BREAKPOINT, "a Breakpoint"}, - {EXCEPTION_DATATYPE_MISALIGNMENT, "a Datatype Misalignment"}, - {EXCEPTION_FLT_DENORMAL_OPERAND, "a Float Denormal Operand"}, - {EXCEPTION_FLT_DIVIDE_BY_ZERO, "a Float Divide By Zero"}, - {EXCEPTION_FLT_INEXACT_RESULT, "a Float Inexact Result"}, - {EXCEPTION_FLT_INVALID_OPERATION, "a Float Invalid Operation"}, - {EXCEPTION_FLT_OVERFLOW, "a Float Overflow"}, - {EXCEPTION_FLT_STACK_CHECK, "a Float Stack Check"}, - {EXCEPTION_FLT_UNDERFLOW, "a Float Underflow"}, - {EXCEPTION_ILLEGAL_INSTRUCTION, "an Illegal Instruction"}, - {EXCEPTION_IN_PAGE_ERROR, "an In Page Error"}, - {EXCEPTION_INT_DIVIDE_BY_ZERO, "an Integer Divide By Zero"}, - {EXCEPTION_INT_OVERFLOW, "an Integer Overflow"}, - {EXCEPTION_INVALID_DISPOSITION, "an Invalid Disposition"}, - {EXCEPTION_NONCONTINUABLE_EXCEPTION, "Noncontinuable Exception"}, - {EXCEPTION_PRIV_INSTRUCTION, "a Privileged Instruction"}, - {EXCEPTION_SINGLE_STEP, "a Single Step"}, - {EXCEPTION_STACK_OVERFLOW, "a Stack Overflow"}, - {0x40010005, "a Control-C"}, - {0x40010008, "a Control-Break"}, - {0xc0000006, "an In Page Error"}, - {0xc0000017, "a No Memory"}, - {0xc000001d, "an Illegal Instruction"}, - {0xc0000025, "a Noncontinuable Exception"}, - {0xc0000142, "a DLL Initialization Failed"}, - {0xe06d7363, "a Microsoft C++ Exception"}, - }; - - for (i = 0; i < (sizeof (ExceptionMap) / sizeof (ExceptionMap[0])); i++) - if (ExceptionCode == ExceptionMap[i].ExceptionCode) - return ExceptionMap[i].ExceptionName; - - return "Unknown exception type"; -} - - -// -------------------------------------------------------------------------- -// Directly output a formatted string to the errorlog file, using win32 funcs -// -------------------------------------------------------------------------- -static VOID FPrintf (HANDLE fileHandle, LPCSTR lpFmt, ...) -{ - CHAR str[1999]; - va_list arglist; - DWORD bytesWritten; - - va_start (arglist, lpFmt); - vsprintf (str, lpFmt, arglist); - va_end (arglist); - - WriteFile (fileHandle, str, (DWORD)strlen(str), &bytesWritten, NULL); -} - -// -------------------------------------------------------------------------- -// Print the specified FILETIME to output in a human readable format, -// without using the C run time. -// -------------------------------------------------------------------------- -static VOID PrintTime (LPSTR output, FILETIME TimeToPrint) -{ - WORD Date, Time; - if (FileTimeToLocalFileTime (&TimeToPrint, &TimeToPrint) && - FileTimeToDosDateTime (&TimeToPrint, &Date, &Time)) - { - // What a silly way to print out the file date/time. - wsprintfA(output, "%d/%d/%d %02d:%02d:%02d", - (Date / 32) & 15, Date & 31, (Date / 512) + 1980, - (Time / 2048), (Time / 32) & 63, (Time & 31) * 2); - } - else - output[0] = 0; -} - - -static LPTSTR GetFilePart(LPTSTR source) -{ - LPTSTR result = _tcsrchr(source, '\\'); - if (result) - result++; - else - result = source; - return result; -} - -// -------------------------------------------------------------------------- -// Print information about a code module (DLL or EXE) such as its size, -// location, time stamp, etc. -// -------------------------------------------------------------------------- -static VOID ShowModuleInfo(HANDLE LogFile, HMODULE ModuleHandle) -{ - CHAR ModName[MAX_PATH]; - IMAGE_DOS_HEADER *DosHeader; - IMAGE_NT_HEADERS *NTHeader; - HANDLE ModuleFile; - CHAR TimeBuffer[100] = ""; - DWORD FileSize = 0; -#ifdef NO_SEH_MINGW - __try1(EXCEPTION_EXECUTE_HANDLER) -#else - __try -#endif - { - if (GetModuleFileNameA(ModuleHandle, ModName, sizeof (ModName)) > 0) - { - // If GetModuleFileName returns greater than zero then this must - // be a valid code module address. Therefore we can try to walk - // our way through its structures to find the link time stamp. - DosHeader = (IMAGE_DOS_HEADER*)ModuleHandle; - if (IMAGE_DOS_SIGNATURE != DosHeader->e_magic) - return; - NTHeader = (IMAGE_NT_HEADERS*)((char *)DosHeader - + DosHeader->e_lfanew); - if (IMAGE_NT_SIGNATURE != NTHeader->Signature) - return; - // Open the code module file so that we can get its file date - // and size. - ModuleFile = CreateFileA(ModName, GENERIC_READ, - FILE_SHARE_READ, 0, OPEN_EXISTING, - FILE_ATTRIBUTE_NORMAL, 0); - if (ModuleFile != INVALID_HANDLE_VALUE) - { - FILETIME LastWriteTime; - FileSize = GetFileSize(ModuleFile, 0); - if (GetFileTime(ModuleFile, 0, 0, &LastWriteTime)) - { - wsprintfA(TimeBuffer, " - file date is "); - PrintTime(TimeBuffer + strlen(TimeBuffer), LastWriteTime); - } - CloseHandle(ModuleFile); - } - FPrintf (LogFile, "%s, loaded at 0x%08x - %d bytes - %08x%s\r\n", - ModName, ModuleHandle, FileSize, - NTHeader->FileHeader.TimeDateStamp, TimeBuffer); - } - } - // Handle any exceptions by continuing from this point. -#ifdef NO_SEH_MINGW - __except1 -#else - __except(EXCEPTION_EXECUTE_HANDLER) -#endif - { - } -} - -// -------------------------------------------------------------------------- -// Scan memory looking for code modules (DLLs or EXEs). VirtualQuery is used -// to find all the blocks of address space that were reserved or committed, -// and ShowModuleInfo will display module information if they are code -// modules. -// -------------------------------------------------------------------------- -static VOID RecordModuleList(HANDLE LogFile) -{ - SYSTEM_INFO SystemInfo; - size_t PageSize; - size_t NumPages; - size_t pageNum = 0; - LPVOID LastAllocationBase = 0; - - FPrintf (LogFile, "\r\n" - "\tModule list: names, addresses, sizes, time stamps " - "and file times:\r\n"); - - // Set NumPages to the number of pages in the 4GByte address space, - // while being careful to avoid overflowing ints. - GetSystemInfo(&SystemInfo); - PageSize = SystemInfo.dwPageSize; - NumPages = 4 * (unsigned int)(ONEG / PageSize); - while (pageNum < NumPages) - { - MEMORY_BASIC_INFORMATION MemInfo; - if (VirtualQuery((LPVOID)(pageNum * PageSize), &MemInfo, - sizeof (MemInfo))) - { - if (MemInfo.RegionSize > 0) - { - // Adjust the page number to skip over this block of memory. - pageNum += MemInfo.RegionSize / PageSize; - if (MemInfo.State == MEM_COMMIT && MemInfo.AllocationBase > - LastAllocationBase) - { - // Look for new blocks of committed memory, and try - // recording their module names - this will fail - // gracefully if they aren't code modules. - LastAllocationBase = MemInfo.AllocationBase; - ShowModuleInfo(LogFile, (HMODULE)LastAllocationBase); - } - } - else - pageNum += SIXTYFOURK / PageSize; - } - else - pageNum += SIXTYFOURK / PageSize; - // If VirtualQuery fails we advance by 64K because that is the - // granularity of address space doled out by VirtualAlloc(). - } -} - - -// -------------------------------------------------------------------------- -// Record information about the user's system, such as processor type, amount -// of memory, etc. -// -------------------------------------------------------------------------- -static VOID RecordSystemInformation(HANDLE fileHandle) -{ - FILETIME CurrentTime; - CHAR TimeBuffer[100]; - CHAR ModuleName[MAX_PATH]; - CHAR UserName[200]; - DWORD UserNameSize; - SYSTEM_INFO SystemInfo; - MEMORYSTATUS MemInfo; - - GetSystemTimeAsFileTime (&CurrentTime); - PrintTime (TimeBuffer, CurrentTime); - FPrintf(fileHandle, "Error occurred at %s.\r\n", TimeBuffer); - - if (GetModuleFileNameA(NULL, ModuleName, sizeof (ModuleName)) <= 0) - strcpy (ModuleName, "Unknown"); - UserNameSize = sizeof (UserName); - if (!GetUserNameA(UserName, &UserNameSize)) - strcpy (UserName, "Unknown"); - FPrintf(fileHandle, "%s, run by %s.\r\n", ModuleName, UserName); - - GetSystemInfo (&SystemInfo); - FPrintf (fileHandle, "%d processor(s), type %d %d.%d.\r\n" - "Program Memory from 0x%p to 0x%p\r\n", - SystemInfo.dwNumberOfProcessors, - SystemInfo.dwProcessorType, - SystemInfo.wProcessorLevel, - SystemInfo.wProcessorRevision, - SystemInfo.lpMinimumApplicationAddress, - SystemInfo.lpMaximumApplicationAddress); - - MemInfo.dwLength = sizeof (MemInfo); - GlobalMemoryStatus(&MemInfo); - // Print out the amount of physical memory, rounded up. - FPrintf(fileHandle, "%d MBytes physical memory.\r\n", (MemInfo.dwTotalPhys + - ONEM - 1) / ONEM); -} - -// -------------------------------------------------------------------------- -// What we do here is trivial : open a file, write out the register information -// from the PEXCEPTION_POINTERS structure, then return EXCEPTION_CONTINUE_SEARCH -// whose magic value tells Win32 to proceed with its normal error handling -// mechanism. This is important : an error dialog will popup if possible and -// the debugger will hopefully coexist peacefully with the structured exception -// handler. -// -------------------------------------------------------------------------- -int __cdecl RecordExceptionInfo (PEXCEPTION_POINTERS data/*, LPCSTR Message, LPSTR lpCmdLine*/) -{ - PEXCEPTION_RECORD Exception; - PCONTEXT Context; - TCHAR ModuleName[MAX_PATH]; - TCHAR FileName[MAX_PATH] = TEXT("Unknown"); - LPTSTR FilePart, lastperiod; - TCHAR CrashModulePathName[MAX_PATH]; - LPCTSTR CrashModuleFileName = TEXT("Unknown"); - MEMORY_BASIC_INFORMATION MemInfo; - static int BeenHere = false; - HANDLE fileHandle; - UINT8 *code; - int codebyte,i; - - if (data) - { - Exception = data->ExceptionRecord; - Context = data->ContextRecord; - } - else - { - return EXCEPTION_CONTINUE_SEARCH; - } - - if (BeenHere) // Going recursive! That must mean this routine crashed! - return EXCEPTION_CONTINUE_SEARCH; - BeenHere = true; - - // Create a filename to record the error information to. - // Store it in the executable directory. - if (GetModuleFileName(NULL, ModuleName, sizeof (ModuleName)) <= 0) - ModuleName[0] = 0; - FilePart = GetFilePart(ModuleName); - - // Extract the file name portion and remove it's file extension. We'll - // use that name shortly. - lstrcpy (FileName, FilePart); - lastperiod = _tcsrchr (FileName, '.'); - if (lastperiod) - lastperiod[0] = 0; - // Replace the executable filename with our error log file name. - lstrcpy (FilePart, TEXT("errorlog.txt")); - fileHandle = CreateFile (ModuleName, GENERIC_WRITE, 0, NULL, OPEN_ALWAYS, - FILE_ATTRIBUTE_NORMAL | FILE_FLAG_WRITE_THROUGH, NULL); - if (fileHandle == INVALID_HANDLE_VALUE) - { - OutputDebugString (TEXT("Error creating exception report")); - return EXCEPTION_CONTINUE_SEARCH; - } - - // Append to the error log. - SetFilePointer (fileHandle, 0, 0, FILE_END); - - // Print out some blank lines to separate this error log from any previous ones. - FPrintf (fileHandle, "Email Sonic Team Junior so we can fix the bugs\r\n"); // Tails - FPrintf (fileHandle, "Make sure you tell us what you were doing to cause the crash, and if possible, record a demo!\r\n"); // Tails - FPrintf (fileHandle, "\r\n\r\n\r\n\r\n"); - FPrintf (fileHandle, "SRB2 %s -ERROR LOG-\r\n\r\n", VERSIONSTRING); - FPrintf (fileHandle, "\r\n"); - // VirtualQuery can be used to get the allocation base associated with a - // code address, which is the same as the ModuleHandle. This can be used - // to get the filename of the module that the crash happened in. - if (VirtualQuery ((LPVOID)(size_t)Context->Eip, &MemInfo, sizeof (MemInfo)) && - GetModuleFileName ((HMODULE)MemInfo.AllocationBase, - CrashModulePathName, - sizeof (CrashModulePathName)) > 0) - CrashModuleFileName = GetFilePart(CrashModulePathName); - - // Print out the beginning of the error log in a Win95 error window - // compatible format. - FPrintf (fileHandle, "%s caused an %s in module %s at %04x:%08x.\r\n", - FileName, GetExceptionDescription(Exception->ExceptionCode), - CrashModuleFileName, Context->SegCs, Context->Eip); - //if (&Message = Null) - FPrintf (fileHandle, "Exception handler called in %s.\r\n", "main thread"); - //else - //FPrintf (fileHandle, "Exception handler called in %s.\r\n", Message); - - RecordSystemInformation (fileHandle); - - // If the exception was an access violation, print out some additional - // information, to the error log and the debugger. - if (Exception->ExceptionCode == STATUS_ACCESS_VIOLATION && - Exception->NumberParameters >= 2) - { - TCHAR DebugMessage[1000]; - LPCTSTR readwrite = TEXT("Read from"); - if (Exception->ExceptionInformation[0]) - readwrite = TEXT("Write to"); - wsprintf(DebugMessage, TEXT("%s location %08x caused an access violation.\r\n"), - readwrite, Exception->ExceptionInformation[1]); -#ifdef _DEBUG - // The VisualC++ debugger doesn't actually tell you whether a read - // or a write caused the access violation, nor does it tell what - // address was being read or written. So I fixed that. - OutputDebugString(TEXT("Exception handler: ")); - OutputDebugString(DebugMessage); -#endif - FPrintf(fileHandle, "%s", DebugMessage); - } - - FPrintf(fileHandle, "\r\n"); - - // Print out the register values in a Win95 error window compatible format. - if ((Context->ContextFlags & CONTEXT_FULL) == CONTEXT_FULL) - { - FPrintf (fileHandle, "Registers:\r\n"); - FPrintf (fileHandle, "EAX=%.8lx CS=%.4x EIP=%.8lx EFLGS=%.8lx\r\n", - Context->Eax,Context->SegCs,Context->Eip,Context->EFlags); - FPrintf (fileHandle, "EBX=%.8lx SS=%.4x ESP=%.8lx EBP=%.8lx\r\n", - Context->Ebx,Context->SegSs,Context->Esp,Context->Ebp); - FPrintf (fileHandle, "ECX=%.8lx DS=%.4x ESI=%.8lx FS=%.4x\r\n", - Context->Ecx,Context->SegDs,Context->Esi,Context->SegFs); - FPrintf (fileHandle, "EDX=%.8lx ES=%.4x EDI=%.8lx GS=%.4x\r\n", - Context->Edx,Context->SegEs,Context->Edi,Context->SegGs); - } - - // moved down because it was causing the printout to stop - FPrintf (fileHandle, "Command Line parameters: "); - for (i = 1;i < myargc;i++) - FPrintf (fileHandle, "%s ", myargv[i]); - - FPrintf (fileHandle, "Bytes at CS : EIP:\r\n"); - - // Print out the bytes of code at the instruction pointer. Since the - // crash may have been caused by an instruction pointer that was bad, - // this code needs to be wrapped in an exception handler, in case there - // is no memory to read. If the dereferencing of code[] fails, the - // exception handler will print '??'. - code = (UINT8 *)(size_t)Context->Eip; - for (codebyte = 0; codebyte < NumCodeBytes; codebyte++) - { -#ifdef NO_SEH_MINGW - __try1(EXCEPTION_EXECUTE_HANDLER) -#else - __try -#endif - { - FPrintf (fileHandle, "%02x ", code[codebyte]); - } -#ifdef NO_SEH_MINGW - __except1 -#else - __except(EXCEPTION_EXECUTE_HANDLER) -#endif - { - FPrintf (fileHandle, "?? "); - } - } - - // Time to print part or all of the stack to the error log. This allows - // us to figure out the call stack, parameters, local variables, etc. - FPrintf (fileHandle, "\r\n" - "Stack dump:\r\n"); -#ifdef NO_SEH_MINGW - __try1(EXCEPTION_EXECUTE_HANDLER) -#else - __try -#endif - { - // Esp contains the bottom of the stack, or at least the bottom of - // the currently used area. - DWORD* pStack = (DWORD *)(size_t)Context->Esp; - DWORD* pStackTop = NULL; - size_t Count = 0; - TCHAR buffer[1000] = TEXT(""); - const int safetyzone = 50; - LPTSTR nearend = buffer + sizeof (buffer) - safetyzone*sizeof (TCHAR); - LPTSTR output = buffer; - const void *Suffix; - - // Load the top (highest address) of the stack from the - // thread information block. It will be found there in - // Win9x and Windows NT. -#ifdef __GNUC__ - __asm__("movl %%fs : 4, %%eax": "=a"(pStackTop)); -#else - __asm - { - mov eax, fs:[4] - mov pStackTop, eax - } -#endif - if (pStackTop == NULL) - goto StackSkip; - else if (pStackTop > pStack + MaxStackDump) - pStackTop = pStack + MaxStackDump; - // Too many calls to WriteFile can take a long time, causing - // confusing delays when programs crash. Therefore I implemented - // simple buffering for the stack dumping code instead of calling - // FPrintf directly. - while (pStack + 1 <= pStackTop) - { - if ((Count % StackColumns) == 0) - output += wsprintf(output, TEXT("%08x: "), pStack); - if ((++Count % StackColumns) == 0 || pStack + 2 > pStackTop) - Suffix = TEXT("\r\n"); - else - Suffix = TEXT(" "); - output += wsprintf(output, TEXT("%08x%s"), *pStack, Suffix); - pStack++; - // Check for when the buffer is almost full, and flush it to disk. - if (output > nearend) - { - FPrintf (fileHandle, "%s", buffer); - buffer[0] = 0; - output = buffer; - } - } - // Print out any final characters from the cache. - StackSkip: - FPrintf (fileHandle, "%s", buffer); - } -#ifdef NO_SEH_MINGW - __except1 -#else - __except(EXCEPTION_EXECUTE_HANDLER) -#endif - { - FPrintf(fileHandle, "Exception encountered during stack dump.\r\n"); - } - - RecordModuleList (fileHandle); - - CloseHandle (fileHandle); - - // Return the magic value which tells Win32 that this handler didn't - // actually handle the exception - so that things will proceed as per - // normal. - //BP: should put message for end user to send this file to fix any bug - return EXCEPTION_CONTINUE_SEARCH; -} - - /* - // - //FPrintf ("e-mail this file to legacy@newdoom.com, so that we can fix the problem.\r\n\r\n"); - - FPrintf ("Exception handler called in %s.\r\n", Message); - - GetSystemTime (&systemTime); - FPrintf ("Error occured at %02d/%02d/%04d %02d:%02d:%02d.\r\n", - systemTime.wMonth, systemTime.wDay, systemTime.wYear, - systemTime.wHour, systemTime.wMinute, systemTime.wSecond); - - - FPrintf ("%s\r\n", filename); - FPrintf ("Cmd-line: %s\r\n", lpCmdLine); - - // Nested exceptions can occur, get info for each one - - nER = 1; - while (ER) - { - if (nER++>1) - FPrintf ("Exception Record %d.\r\n", nER); - - FPrintf ("application caused an %s", GetExceptionCodeStr(Exception->ExceptionCode)); - - if (Context->ContextFlags & CONTEXT_CONTROL) - FPrintf (" at %.4x:%.8x.\r\n", Context->SegCs, Context->Eip); - - // in case of.. - if (Context->Eip != (unsigned long)Exception->ExceptionAddress) - FPrintf ("Exception Address = %.8x\r\n", Exception->ExceptionAddress); - - if (Exception->ExceptionCode == EXCEPTION_ACCESS_VIOLATION) - { - FPrintf ("\r\n%s location 0x%x caused an access violation.\r\n", - (Exception->ExceptionInformation[0] ? "Write to" : "Read from"), - Exception->ExceptionInformation[1]); - } - - ER = Exception->ExceptionRecord; - } - - - if (Context->ContextFlags & CONTEXT_DEBUG_REGISTERS) - { - FPrintf ("\r\nDebug Registers:\r\n"); - FPrintf ("Dr0=%.8x Dr1=%.8x Dr2=%.8x\r\n" - "Dr3=%.8x Dr6=%.8x Dr7=%.8x\r\n", - Context->Dr0, Context->Dr1, Context->Dr2, - Context->Dr3, Context->Dr6, Context->Dr7); - } - - if (Context->ContextFlags & CONTEXT_FLOATING_POINT) - { - FPrintf ("\r\nFloating Save Area:\r\n"); - FPrintf ("ControlWord =%.8x TagWord =%.8x ErrorSelector=%.8x DataSelector =%.8x\r\n" - "StatusWord =%.8x ErrorOffset =%.8x DataOffset =%.8x Cr0NpxState =%.8x\r\n", - Context->FloatSave.ControlWord, Context->FloatSave.TagWord, Context->FloatSave.ErrorSelector, Context->FloatSave.DataSelector, - Context->FloatSave.StatusWord, Context->FloatSave.ErrorOffset, Context->FloatSave.DataOffset, Context->FloatSave.Cr0NpxState - ); - - //BYTE RegisterArea[SIZE_OF_80387_REGISTERS]; - } - - - // in case of... - if ((Context->ContextFlags & CONTEXT_FULL) != CONTEXT_FULL) - { - if (!(Context->ContextFlags & CONTEXT_SEGMENTS)) - FPrintf ("Note! GS,FS,ES,DS are unspecified\r\n"); - if (!(Context->ContextFlags & CONTEXT_INTEGER)) - FPrintf ("Note! EDI,ESI,EBX,EDX,ECX,EAX are unspecified\r\n"); - if (!(Context->ContextFlags & CONTEXT_CONTROL)) - FPrintf ("Note! EBP,CS : EIP,EFlags,SS : ESP are unspecified\r\n"); - } - - FPrintf ("\r\nBytes at CS : EIP:\r\n"); - ucptr = (UINT8 *)Context->Eip; - for (i = 0; i < 16; i++) - FPrintf ("%.2x ", *ucptr++); - - FPrintf ("\r\n\r\nStack dump:\r\n"); - ulptr = (unsigned long*)Context->Esp; - for (i = 0; i < 16; i++) - FPrintf ("%.8x ", *ulptr++); - - //FPrintf ("Bytes at CS : EIP:\r\n"); - //FPrintf ("%.2x %.2x %.2x %.2x %.2x %.2x %.2x %.2x "); - - for (i = 0; i < 16; i++) - { - FPrintf ("%x - } -*/ diff --git a/src/win32ce/win_dbg.h b/src/win32ce/win_dbg.h deleted file mode 100644 index acee896e6..000000000 --- a/src/win32ce/win_dbg.h +++ /dev/null @@ -1,54 +0,0 @@ -// Emacs style mode select -*- C++ -*- -//----------------------------------------------------------------------------- -// -// Copyright (C) 1998-2000 by DooM Legacy Team. -// -// 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 2 -// 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. -//----------------------------------------------------------------------------- -/// \file -/// \brief exception handler - -//#define WIN32_LEAN_AND_MEAN -#define RPC_NO_WINDOWS_H -#include - -// called in the exception filter of the __try block, writes all useful debugging information -// to a file, using only win32 functions in case the C runtime is in a bad state. -int __cdecl RecordExceptionInfo (PEXCEPTION_POINTERS data/*, LPCSTR Message, LPSTR lpCmdLine*/); - -#ifdef __MINGW32__ - -#include - -#ifndef TRYLEVEL_NONE - -#define NO_SEH_MINGW //Alam:? -FUNCINLINE static ATTRINLINE struct _EXCEPTION_POINTERS *GetExceptionInformation(VOID) -{ - LPVOID SEHINFO = NULL; - //__asm__("movl -20(%%ebp), %%eax": "=a"(SEHINFO)); - return SEHINFO; -} - -//Alam_GBC: use __try1(seh) -#ifndef __try -#define __try -#endif //__try - -//#undef NO_SEH_MINGW //Alam: win_dbg's code not working with MINGW -//Alam_GBC: use __except1 -#ifndef __except -#define __except(x) if (0) -#endif //__except - -#endif // !__TRYLEVEL_NONE - -#endif // __MINGW32__ diff --git a/src/win32ce/win_dll.c b/src/win32ce/win_dll.c deleted file mode 100644 index 8b88f84dd..000000000 --- a/src/win32ce/win_dll.c +++ /dev/null @@ -1,164 +0,0 @@ -// Emacs style mode select -*- C++ -*- -//----------------------------------------------------------------------------- -// -// Copyright (C) 1998-2000 by DooM Legacy Team. -// -// 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 2 -// 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. -//----------------------------------------------------------------------------- -/// \file -/// \brief load and initialise the 3D driver DLL - -#include "../doomdef.h" -#ifdef HWRENDER -#include "../hardware/hw_drv.h" // get the standard 3D Driver DLL exports prototypes -#endif - -#ifdef HW3SOUND -#include "../hardware/hw3dsdrv.h" // get the 3D sound driver DLL export prototypes -#endif - -#include "win_dll.h" -#include "win_main.h" // I_GetLastErrorMsgBox() - -#if defined(HWRENDER) || defined(HW3SOUND) -typedef struct loadfunc_s { - LPCSTR fnName; - LPVOID fnPointer; -} loadfunc_t; - -// -------------------------------------------------------------------------- -// Load a DLL, returns the HMODULE handle or NULL -// -------------------------------------------------------------------------- -static inline HMODULE LoadDLL (LPCSTR dllName, loadfunc_t *funcTable) -{ - LPVOID funcPtr; - loadfunc_t *loadfunc; - HMODULE hModule; - - if ((hModule = LoadLibraryA(dllName)) != NULL) - { - // get function pointers for all functions we use - for (loadfunc = funcTable; loadfunc->fnName != NULL; loadfunc++) - { - funcPtr = GetProcAddress(hModule, loadfunc->fnName); - if (!funcPtr) { - //I_GetLastErrorMsgBox (); - MessageBoxA(NULL, va("The '%s' haven't the good specification (function %s missing)\n\n" - "You must use dll from the same zip of this exe\n", dllName, loadfunc->fnName), - "Error", MB_OK|MB_ICONINFORMATION); - return FALSE; - } - // store function address - *((LPVOID*)loadfunc->fnPointer) = funcPtr; - } - } - else - { - MessageBoxA(NULL, va("LoadLibrary() FAILED : couldn't load '%s'\r\n", dllName), "Warning", MB_OK|MB_ICONINFORMATION); - //I_GetLastErrorMsgBox (); - } - - return hModule; -} - - -// -------------------------------------------------------------------------- -// Unload the DLL -// -------------------------------------------------------------------------- -static inline VOID UnloadDLL (HMODULE* pModule) -{ - if (FreeLibrary(*pModule)) - *pModule = NULL; - else - I_GetLastErrorMsgBox (); -} -#endif - -// ========================================================================== -// STANDARD 3D DRIVER DLL FOR DOOM LEGACY -// ========================================================================== - -// note : the 3D driver loading should be put somewhere else.. - -#ifdef HWRENDER -static HMODULE hwdModule = NULL; - -static loadfunc_t hwdFuncTable[] = { - {"_Init@4", &hwdriver.pfnInit}, - {"_Shutdown@0", &hwdriver.pfnShutdown}, - {"_GetModeList@8", &hwdriver.pfnGetModeList}, - {"_SetPalette@8", &hwdriver.pfnSetPalette}, - {"_FinishUpdate@4", &hwdriver.pfnFinishUpdate}, - {"_Draw2DLine@12", &hwdriver.pfnDraw2DLine}, - {"_DrawPolygon@16", &hwdriver.pfnDrawPolygon}, - {"_SetBlend@4", &hwdriver.pfnSetBlend}, - {"_ClearBuffer@12", &hwdriver.pfnClearBuffer}, - {"_SetTexture@4", &hwdriver.pfnSetTexture}, - {"_ReadRect@24", &hwdriver.pfnReadRect}, - {"_GClipRect@20", &hwdriver.pfnGClipRect}, - {"_ClearMipMapCache@0",&hwdriver.pfnClearMipMapCache}, - {"_SetSpecialState@8", &hwdriver.pfnSetSpecialState}, - {"_DrawMD2@16", &hwdriver.pfnDrawMD2}, - {"_SetTransform@4", &hwdriver.pfnSetTransform}, - {"_GetTextureUsed@0", &hwdriver.pfnGetTextureUsed}, - {"_GetRenderVersion@0",&hwdriver.pfnGetRenderVersion}, - {NULL,NULL} -}; - -BOOL Init3DDriver (LPCSTR dllName) -{ - hwdModule = LoadDLL(dllName, hwdFuncTable); - return (hwdModule != NULL); -} - -VOID Shutdown3DDriver (VOID) -{ - UnloadDLL(&hwdModule); -} -#endif - -#ifdef HW3SOUND -static HMODULE hwsModule = NULL; - -static loadfunc_t hwsFuncTable[] = { - {"_Startup@8", &hw3ds_driver.pfnStartup}, - {"_Shutdown@0", &hw3ds_driver.pfnShutdown}, - {"_AddSfx@4", &hw3ds_driver.pfnAddSfx}, - {"_AddSource@8", &hw3ds_driver.pfnAddSource}, - {"_StartSource@4", &hw3ds_driver.pfnStartSource}, - {"_StopSource@4", &hw3ds_driver.pfnStopSource}, - {"_GetHW3DSVersion@0", &hw3ds_driver.pfnGetHW3DSVersion}, - {"_BeginFrameUpdate@0", &hw3ds_driver.pfnBeginFrameUpdate}, - {"_EndFrameUpdate@0", &hw3ds_driver.pfnEndFrameUpdate}, - {"_IsPlaying@4", &hw3ds_driver.pfnIsPlaying}, - {"_UpdateListener@8", &hw3ds_driver.pfnUpdateListener}, - {"_UpdateSourceParms@12", &hw3ds_driver.pfnUpdateSourceParms}, - {"_SetCone@8", &hw3ds_driver.pfnSetCone}, - {"_SetGlobalSfxVolume@4", &hw3ds_driver.pfnSetGlobalSfxVolume}, - {"_Update3DSource@8", &hw3ds_driver.pfnUpdate3DSource}, - {"_ReloadSource@8", &hw3ds_driver.pfnReloadSource}, - {"_KillSource@4", &hw3ds_driver.pfnKillSource}, - {"_KillSfx@4", &hw3ds_driver.pfnKillSfx}, - {"_GetHW3DSTitle@8", &hw3ds_driver.pfnGetHW3DSTitle}, - {NULL, NULL} -}; - -BOOL Init3DSDriver(LPCSTR dllName) -{ - hwsModule = LoadDLL(dllName, hwsFuncTable); - return (hwsModule != NULL); -} - -VOID Shutdown3DSDriver (VOID) -{ - UnloadDLL(&hwsModule); -} -#endif diff --git a/src/win32ce/win_dll.h b/src/win32ce/win_dll.h deleted file mode 100644 index b4b259587..000000000 --- a/src/win32ce/win_dll.h +++ /dev/null @@ -1,31 +0,0 @@ -// Emacs style mode select -*- C++ -*- -//----------------------------------------------------------------------------- -// -// Copyright (C) 1998-2000 by DooM Legacy Team. -// -// 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 2 -// 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. -//----------------------------------------------------------------------------- -/// \file -/// \brief load/unload a DLL at run-time - -//#define WIN32_LEAN_AND_MEAN -#define RPC_NO_WINDOWS_H -#include - -#ifdef HWRENDER -BOOL Init3DDriver (LPCSTR dllName); -VOID Shutdown3DDriver (VOID); -#endif - -#ifdef HW3SOUND -BOOL Init3DSDriver(LPCSTR dllName); -VOID Shutdown3DSDriver(VOID); -#endif diff --git a/src/win32ce/win_file.c b/src/win32ce/win_file.c deleted file mode 100644 index f9f621011..000000000 --- a/src/win32ce/win_file.c +++ /dev/null @@ -1,123 +0,0 @@ -#include -#include -#include "win_file.h" - - -int FileAccess(LPCTSTR FileName, DWORD mode) -{ - HANDLE hFile; - - hFile = CreateFile( FileName, GENERIC_READ, FILE_SHARE_READ, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL ); - - if (hFile == INVALID_HANDLE_VALUE) - return -1; - else - { - FileClose(hFile); - return 0; - } -} - -HANDLE FileCreate(LPCTSTR FileName) -{ - HANDLE hFile; - - if (FileAccess( FileName, 0) == 0) - hFile = CreateFile( FileName, GENERIC_READ | GENERIC_WRITE, FILE_SHARE_READ, NULL, TRUNCATE_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL ); - else - hFile = CreateFile( FileName, GENERIC_READ | GENERIC_WRITE, FILE_SHARE_READ, NULL, OPEN_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL ); - - return hFile; -} - -void FileClose(HANDLE hFile) -{ - CloseHandle(hFile); -} - -DWORD FileLength(HANDLE hFile) -{ - return GetFileSize(hFile, NULL); -} - -HANDLE FileOpen(LPCTSTR FileName) -{ - HANDLE hFile; - - hFile = CreateFile( FileName, GENERIC_READ, FILE_SHARE_READ, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL ); - - return hFile; -} - -HANDLE FileAppend(LPCTSTR FileName) -{ - HANDLE hFile; - - hFile = CreateFile( FileName, GENERIC_READ | GENERIC_WRITE, FILE_SHARE_READ, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL ); - FileSeek(hFile, 0, FILE_END ); - - return hFile; -} - -DWORD FileRead(HANDLE hFile, LPVOID data, DWORD size) -{ - DWORD readin = 0; - - ReadFile(hFile, data, size, &readin, NULL); - - return readin; -} - -DWORD FileSeek(HANDLE hFile, LONG distance, DWORD method) -{ - DWORD position; - - position = SetFilePointer(hFile, distance, NULL, method); - - return position; -} - -DWORD FileWrite(HANDLE hFile, LPCVOID data, DWORD size) -{ - DWORD written = 0; - - WriteFile(hFile, data, size, &written, NULL); - - return written; -} - -//These functions are provided as CRT replacements. (missing from WinCE) - -int access(char* file,int type) -{ - FILE* file_access = 0; - - file_access = fopen(file,"rb"); - - if(file_access) - { - fclose(file_access); - return 0; - } - - return -1; -} - -unsigned int file_len(char* file) -{ - FILE* file_access; - unsigned int len = 0; - - file_access = fopen(file,"rb"); - - if(!file_access) - return 0; - - fseek(file_access,0,SEEK_END); - - len = ftell(file_access); - - fclose(file_access); - - return len; -} diff --git a/src/win32ce/win_file.h b/src/win32ce/win_file.h deleted file mode 100644 index d1dc5e9c7..000000000 --- a/src/win32ce/win_file.h +++ /dev/null @@ -1,19 +0,0 @@ -#ifndef FILE_H -#define FILE_H - -// New File I/O functions - -int FileAccess(LPCTSTR, DWORD); -HANDLE FileAppend(LPCTSTR FileName); -void FileClose(HANDLE); -HANDLE FileCreate(LPCTSTR); -DWORD FileLength(HANDLE); -HANDLE FileOpen(LPCTSTR); -DWORD FileRead(HANDLE, LPCVOID, DWORD); -DWORD FileSeek(HANDLE hFile, LONG distance, DWORD method); -DWORD FileWrite(HANDLE, LPCVOID, DWORD); - -int access(char* file,int type); -unsigned int file_len(char* file); - -#endif \ No newline at end of file diff --git a/src/win32ce/win_main.c b/src/win32ce/win_main.c deleted file mode 100644 index a8a5c7cf2..000000000 --- a/src/win32ce/win_main.c +++ /dev/null @@ -1,539 +0,0 @@ -// Emacs style mode select -*- C++ -*- -//----------------------------------------------------------------------------- -// -// Copyright (C) 1998-2000 by DooM Legacy Team. -// -// 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 2 -// 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. -//----------------------------------------------------------------------------- -/// \file -/// \brief Win32 WinMain Entry Point -/// -/// Win32 Sonic Robo Blast 2 -/// -/// NOTE: -/// To compile WINDOWS SRB2 version : define a '_WINDOWS' symbol. -/// to do this go to Project/Settings/ menu, click C/C++ tab, in -/// 'Preprocessor definitions:' add '_WINDOWS' - -#include "../doomdef.h" -#include - -#include "../doomstat.h" // netgame -#include "resource.h" - -#include "../m_argv.h" -#include "../d_main.h" -#include "../i_system.h" - -#include "../keys.h" //hack quick test - -#include "../console.h" - -#include "fabdxlib.h" -#include "win_main.h" -#include "win_dbg.h" -#include "../i_sound.h" // midi pause/unpause -#include "../g_input.h" // KEY_MOUSEWHEELxxx - -// MSWheel support for Win95/NT3.51 -#include - -#ifndef WM_XBUTTONDOWN -#define WM_XBUTTONDOWN 523 -#endif -#ifndef WM_XBUTTONUP -#define WM_XBUTTONUP 524 -#endif -#ifndef MK_XBUTTON1 -#define MK_XBUTTON1 32 -#endif -#ifndef MK_XBUTTON2 -#define MK_XBUTTON2 64 -#endif - -typedef BOOL (WINAPI *MyFunc)(VOID); - -HINSTANCE myInstance = NULL; -HWND hWndMain = NULL; -static HCURSOR windowCursor = NULL; // main window cursor - -boolean appActive = false; // app window is active - -#ifdef LOGMESSAGES -// this is were I log debug text, cons_printf, I_error ect for window port debugging -HANDLE logstream; -#endif - -BOOL nodinput = FALSE; - -static LRESULT CALLBACK MainWndproc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam) -{ - event_t ev; //Doom input event - int mouse_keys; - - // judgecutor: - // Response MSH Mouse Wheel event - - if (message == MSHWheelMessage) - { - message = WM_MOUSEWHEEL; - if (win9x) - wParam <<= 16; - } - - - switch (message) - { - case WM_CREATE: - nodinput = M_CheckParm("-nodinput"); - break; - - case WM_ACTIVATEAPP: // Handle task switching - appActive = (int)wParam; - // pause music when alt-tab - if (appActive && !paused) - I_ResumeSong(0); - else if (!paused) - I_PauseSong(0); - { - HANDLE ci = GetStdHandle(STD_INPUT_HANDLE); - if (ci != INVALID_HANDLE_VALUE && GetFileType(ci) == FILE_TYPE_CHAR) - appActive = true; - } - InvalidateRect (hWnd, NULL, TRUE); - break; - - //for MIDI music - case WM_MSTREAM_UPDATEVOLUME: - I_SetMidiChannelVolume((DWORD)wParam, dwVolumePercent); - break; - - case WM_PAINT: - if (!appActive && !bAppFullScreen && !netgame) - // app becomes inactive (if windowed) - { - // Paint "Game Paused" in the middle of the screen - PAINTSTRUCT ps; - RECT rect; - HDC hdc = BeginPaint (hWnd, &ps); - GetClientRect (hWnd, &rect); - DrawText (hdc, TEXT("Game Paused"), -1, &rect, - DT_SINGLELINE | DT_CENTER | DT_VCENTER); - EndPaint (hWnd, &ps); - return 0; - } - break; - - //case WM_RBUTTONDOWN: - //case WM_LBUTTONDOWN: - - case WM_MOVE: - if (bAppFullScreen) - { - SetWindowPos(hWnd, NULL, 0, 0, 0, 0, SWP_NOZORDER | SWP_NOSIZE); - return 0; - } - else - { - windowPosX = (SHORT) LOWORD(lParam); // horizontal position - windowPosY = (SHORT) HIWORD(lParam); // vertical position - break; - } - break; - - // This is where switching windowed/fullscreen is handled. DirectDraw - // objects must be destroyed, recreated, and artwork reloaded. - - case WM_DISPLAYCHANGE: - case WM_SIZE: - break; - - case WM_SETCURSOR: - if (bAppFullScreen) - SetCursor(NULL); - else - SetCursor(windowCursor); - return TRUE; - - case WM_KEYUP: - ev.type = ev_keyup; - goto handleKeyDoom; - break; - - case WM_KEYDOWN: - ev.type = ev_keydown; - - handleKeyDoom: - ev.data1 = 0; - if (wParam == VK_PAUSE) - // intercept PAUSE key - { - ev.data1 = KEY_PAUSE; - } - else if (!keyboard_started) - // post some keys during the game startup - // (allow escaping from network synchronization, or pressing enter after - // an error message in the console) - { - switch (wParam) - { - case VK_ESCAPE: ev.data1 = KEY_ESCAPE; break; - case VK_RETURN: ev.data1 = KEY_ENTER; break; - default: ev.data1 = MapVirtualKey((DWORD)wParam,2); // convert in to char - } - } - - if (ev.data1) - D_PostEvent (&ev); - - return 0; - break; - - // judgecutor: - // Handle mouse events - case WM_LBUTTONDOWN: - case WM_LBUTTONUP: - case WM_RBUTTONDOWN: - case WM_RBUTTONUP: - case WM_MBUTTONDOWN: - case WM_MBUTTONUP: - case WM_XBUTTONDOWN: - case WM_XBUTTONUP: - case WM_MOUSEMOVE: - if (nodinput) - { - mouse_keys = 0; - if (wParam & MK_LBUTTON) - mouse_keys |= 1; - if (wParam & MK_RBUTTON) - mouse_keys |= 2; - if (wParam & MK_MBUTTON) - mouse_keys |= 4; - if (wParam & MK_XBUTTON1) - mouse_keys |= 8; - if (wParam & MK_XBUTTON2) - mouse_keys |= 16; - I_GetSysMouseEvents(mouse_keys); - } - break; - - - case WM_MOUSEWHEEL: - //CONS_Printf("MW_WHEEL dispatched.\n"); - ev.type = ev_keydown; - if ((INT16)HIWORD(wParam) > 0) - ev.data1 = KEY_MOUSEWHEELUP; - else - ev.data1 = KEY_MOUSEWHEELDOWN; - D_PostEvent(&ev); - break; - - case WM_SETTEXT: - COM_BufAddText((LPCSTR)lParam); - return TRUE; - break; - - case WM_CLOSE: - PostQuitMessage(0); //to quit while in-game - ev.data1 = KEY_ESCAPE; //to exit network synchronization - ev.type = ev_keydown; - D_PostEvent (&ev); - return 0; - case WM_DESTROY: - //faB: main app loop will exit the loop and proceed with I_Quit() - PostQuitMessage(0); - break; - - default: - break; - } - - return DefWindowProc(hWnd, message, wParam, lParam); -} - - -static inline VOID OpenTextConsole(void) -{ - HANDLE ci, co; - const BOOL tco = M_CheckParm("-console") != 0; - dedicated = M_CheckParm("-dedicated") != 0; - if (!(dedicated || tco)) - return; - FreeConsole(); - AllocConsole(); //Let get the real console HANDLE, because Mingw's Bash is bad! - ci = CreateFile(TEXT("CONIN$") , GENERIC_READ, FILE_SHARE_READ, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL); - co = CreateFile(TEXT("CONOUT$"), GENERIC_WRITE|GENERIC_READ, FILE_SHARE_WRITE, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL); - if (ci != (HANDLE)-1) - { - const DWORD CM = ENABLE_LINE_INPUT|ENABLE_ECHO_INPUT|ENABLE_PROCESSED_INPUT; - SetStdHandle(STD_INPUT_HANDLE,ci); - if(GetFileType(ci) == FILE_TYPE_CHAR) - SetConsoleMode(ci,CM); //default mode but no ENABLE_MOUSE_INPUT - } - if(co != (HANDLE)-1) - { - SetStdHandle(STD_OUTPUT_HANDLE,co); - SetStdHandle(STD_ERROR_HANDLE,co); //maybe logstream? - } -} - -// -// Do that Windows initialization stuff... -// -static HWND OpenMainWindow (HINSTANCE hInstance, int nCmdShow, LPSTR wTitle) -{ - HWND hWnd; - WNDCLASS wc; - - // Set up and register window class - nCmdShow = 0; - wc.style = CS_HREDRAW | CS_VREDRAW /*| CS_DBLCLKS*/; - wc.lpfnWndProc = MainWndproc; - wc.cbClsExtra = 0; - wc.cbWndExtra = 0; - wc.hInstance = hInstance; - wc.hIcon = LoadIcon(hInstance, MAKEINTRESOURCE(IDI_DLICON1)); - windowCursor = LoadCursor(NULL, IDC_WAIT); //LoadCursor(hInstance, MAKEINTRESOURCE(IDC_DLCURSOR1)); - wc.hCursor = windowCursor; - wc.hbrBackground = (HBRUSH)GetStockObject(BLACK_BRUSH); - wc.lpszMenuName = NULL; - wc.lpszClassName = TEXT("SRB2WC"); - if (!RegisterClass(&wc)) - return (HANDLE)-1; - - // Create a window - // CreateWindowEx - seems to create just the interior, not the borders - - hWnd = CreateWindowExA( -#ifdef _DEBUG - 0, //ExStyle -#else - dedicated ? 0:WS_EX_TOPMOST, //ExStyle -#endif - "SRB2WC", //Classname - wTitle, //Windowname - WS_CAPTION|WS_POPUP|WS_SYSMENU, //dwStyle //WS_VISIBLE|WS_POPUP for bAppFullScreen - 0, - 0, - dedicated ? 0:BASEVIDWIDTH, //GetSystemMetrics(SM_CXSCREEN), - dedicated ? 0:BASEVIDHEIGHT, //GetSystemMetrics(SM_CYSCREEN), - NULL, //hWnd Parent - NULL, //hMenu Menu - hInstance, - NULL); - - return hWnd; -} - - -static inline BOOL tlErrorMessage(const TCHAR *err) -{ - /* make the cursor visible */ - SetCursor(LoadCursor(NULL, IDC_ARROW)); - - // - // warn user if there is one - // - printf("Error %s..\n", err); - fflush(stdout); - - MessageBox(hWndMain, err, TEXT("ERROR"), MB_OK); - return FALSE; -} - - -// ------------------ -// Command line stuff -// ------------------ -#define MAXCMDLINEARGS 64 -static char * myWargv[MAXCMDLINEARGS+1]; -static char myCmdline[512]; - -static VOID GetArgcArgv (LPSTR cmdline) -{ - LPSTR token; - size_t i = 0, len; - char cSep = ' '; - BOOL bCvar = FALSE, prevCvar = FALSE; - - // split arguments of command line into argv - strncpy (myCmdline, cmdline, 511); // in case window's cmdline is in protected memory..for strtok - len = strlen (myCmdline); - - myargc = 0; - while (myargc < MAXCMDLINEARGS) - { - // get token - while (myCmdline[i] == cSep) - i++; - if (i >= len) - break; - token = myCmdline + i; - if (myCmdline[i] == '"') - { - cSep = '"'; - i++; - if (!prevCvar) //cvar leave the "" in - token++; - } - else - cSep = ' '; - - //cvar - if (myCmdline[i] == '+' && cSep == ' ') //a + begins a cvarname, but not after quotes - bCvar = TRUE; - else - bCvar = FALSE; - - while (myCmdline[i] && - myCmdline[i] != cSep) - i++; - - if (myCmdline[i] == '"') - { - cSep = ' '; - if (prevCvar) - i++; // get ending " quote in arg - } - - prevCvar = bCvar; - - if (myCmdline + i > token) - { - myWargv[myargc++] = token; - } - - if (!myCmdline[i] || i >= len) - break; - - myCmdline[i++] = '\0'; - } - myWargv[myargc] = NULL; - - // m_argv.c uses myargv[], we used myWargv because we fill the arguments ourselves - // and myargv is just a pointer, so we set it to point myWargv - myargv = myWargv; -} - - -static inline VOID MakeCodeWritable(VOID) -{ -#ifdef USEASM - // Disable write-protection of code segment - DWORD OldRights; - BYTE *pBaseOfImage = (BYTE *)GetModuleHandle(NULL); - IMAGE_OPTIONAL_HEADER *pHeader = (IMAGE_OPTIONAL_HEADER *) - (pBaseOfImage + ((IMAGE_DOS_HEADER*)pBaseOfImage)->e_lfanew + - sizeof (IMAGE_NT_SIGNATURE) + sizeof (IMAGE_FILE_HEADER)); - if (!VirtualProtect(pBaseOfImage+pHeader->BaseOfCode,pHeader->SizeOfCode,PAGE_EXECUTE_READWRITE,&OldRights)) - I_Error("Could not make code writable\n"); -#endif -} - - - - -// ----------------------------------------------------------------------------- -// HandledWinMain : called by exception handler -// ----------------------------------------------------------------------------- -static int WINAPI HandledWinMain(HINSTANCE hInstance, - HINSTANCE hPrevInstance, - LPSTR lpCmdLine, - int nCmdShow) -{ - int i; - LPSTR args; - - lpCmdLine = NULL; - hPrevInstance = NULL; -#ifdef LOGMESSAGES - // DEBUG!!! - set logstream to NULL to disable debug log - logstream = INVALID_HANDLE_VALUE; - - logstream = CreateFile (TEXT("log.txt"), GENERIC_WRITE, FILE_SHARE_READ, NULL, CREATE_ALWAYS, - FILE_ATTRIBUTE_NORMAL, NULL); //file flag writethrough? -#endif - - // fill myargc,myargv for m_argv.c retrieval of cmdline arguments - CONS_Printf("GetArgcArgv() ...\n"); - args = GetCommandLineA(); - CONS_Printf("lpCmdLine is '%s'\n", args); - GetArgcArgv(args); - // Create a text console window - OpenTextConsole(); - - CONS_Printf("Myargc: %d\n", myargc); - for (i = 0; i < myargc; i++) - CONS_Printf("myargv[%d] : '%s'\n", i, myargv[i]); - - // store for later use, will we need it ? - myInstance = hInstance; - - // open a dummy window, both OpenGL and DirectX need one. - if ((hWndMain = OpenMainWindow(hInstance,nCmdShow, - va("SRB2 "VERSIONSTRING))) == (HANDLE)-1) - { - tlErrorMessage(TEXT("Couldn't open window")); - return FALSE; - } - - // currently starts DirectInput - CONS_Printf("I_StartupSystem() ...\n"); - I_StartupSystem(); - MakeCodeWritable(); - - // startup SRB2 - CONS_Printf("D_SRB2Main() ...\n"); - D_SRB2Main(); - CONS_Printf("Entering main app loop...\n"); - // never return - D_SRB2Loop(); - - // back to Windoze - return 0; -} - -// ----------------------------------------------------------------------------- -// Exception handler calls WinMain for catching exceptions -// ----------------------------------------------------------------------------- -int WINAPI WinMain (HINSTANCE hInstance, - HINSTANCE hPrevInstance, - LPSTR lpCmdLine, - int nCmdShow) -{ - int Result = -1; -#if 1 - HMODULE h = GetModuleHandleA("kernel32.dll"); - MyFunc pfnIsDebuggerPresent = NULL; - if (h) - pfnIsDebuggerPresent = (MyFunc)GetProcAddress(h,"IsDebuggerPresent"); - if (!pfnIsDebuggerPresent || !pfnIsDebuggerPresent()) - LoadLibrary("exchndl.dll"); -#endif -#ifdef NO_SEH_MINGW - __try1(RecordExceptionInfo(GetExceptionInformation()/*, "main thread", lpCmdLine*/)) -#else - __try -#endif - { - Result = HandledWinMain (hInstance, hPrevInstance, lpCmdLine, nCmdShow); - } -#ifdef NO_SEH_MINGW - __except1 -#else - __except (RecordExceptionInfo(GetExceptionInformation()/*, "main thread", lpCmdLine*/)) -#endif - { - SetUnhandledExceptionFilter(EXCEPTION_CONTINUE_SEARCH); //Do nothing here. - } - - return Result; -} diff --git a/src/win32ce/win_main.h b/src/win32ce/win_main.h deleted file mode 100644 index fef25327d..000000000 --- a/src/win32ce/win_main.h +++ /dev/null @@ -1,55 +0,0 @@ -// Emacs style mode select -*- C++ -*- -//----------------------------------------------------------------------------- -// -// Copyright (C) 1998-2000 by DooM Legacy Team. -// -// 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 2 -// 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. -//----------------------------------------------------------------------------- -/// \file -/// \brief Win32 Sharing - -//#define WIN32_LEAN_AND_MEAN -#define RPC_NO_WINDOWS_H -#include -#include - -extern HINSTANCE myInstance; -extern HWND hWndMain; - -// debugging CONS_Printf to file -#ifdef LOGMESSAGES -extern HANDLE logstream; -#endif -extern int appActive; - -// the MIDI callback is another thread, and Midi volume is delayed here in window proc -VOID I_SetMidiChannelVolume(DWORD dwChannel, DWORD dwVolumePercent); -extern DWORD dwVolumePercent; - -VOID I_GetSysMouseEvents(int mouse_state); -extern unsigned int MSHWheelMessage; - -extern BOOL nodinput; -extern BOOL win9x; - -//faB: midi channel Volume set is delayed by the MIDI stream callback thread, see win_snd.c -#define WM_MSTREAM_UPDATEVOLUME (WM_USER + 101) - -// defined in win_sys.c -VOID I_BeginProfile(VOID); //for timing code -DWORD I_EndProfile(VOID); - -VOID I_GetLastErrorMsgBox(VOID); -VOID I_LoadingScreen (LPCSTR msg); - -void I_RestartSysMouse(void); -void I_DoStartupMouse(void); -BOOL I_SaveMemToFile(const void *pData, size_t iLength, const char *sFileName); diff --git a/src/win32ce/win_net.c b/src/win32ce/win_net.c deleted file mode 100644 index dac1bed53..000000000 --- a/src/win32ce/win_net.c +++ /dev/null @@ -1,39 +0,0 @@ -// Emacs style mode select -*- C++ -*- -//----------------------------------------------------------------------------- -// -// Copyright (C) 1998-2000 by DooM Legacy Team. -// -// 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 2 -// 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. -//----------------------------------------------------------------------------- -/// \file -/// \brief Win32 network interface - -#include "../doomdef.h" -#include "../m_argv.h" -#include "../i_net.h" - -// -// NETWORKING -// - -// -// I_InitNetwork -// -boolean I_InitNetwork (void) -{ - if (M_CheckParm ("-net")) - { - I_Error("The Win32 version of SRB2 doesn't work with external drivers like ipxsetup, sersetup, or doomatic\n" - "Read the documentation about \"-server\" and \"-connect\" parameters or just use the launcher\n"); - } - - return false; -} diff --git a/src/win32ce/win_snd.c b/src/win32ce/win_snd.c deleted file mode 100644 index f9c652178..000000000 --- a/src/win32ce/win_snd.c +++ /dev/null @@ -1,2406 +0,0 @@ -// Emacs style mode select -*- C++ -*- -//----------------------------------------------------------------------------- -// -// Copyright (C) 1998-2000 by DooM Legacy Team. -// -// 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 2 -// 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. -//----------------------------------------------------------------------------- -/// \file -/// \brief interface level code for sound -/// -/// Uses the midiStream* Win32 functions to play MIDI data -/// with low latency and low processor overhead. -#include "../doomdef.h" - -#include "win_main.h" -#include -#define DIRECTSOUND_VERSION 0x0600 /* version 6.0 */ -#define DIRECTINPUT_VERSION 0x0700 -#define DXVERSION_NTCOMPATIBLE 0x0300 -#ifdef _MSC_VER -#pragma warning(disable : 4201) -#endif -#include - -#include "../command.h" -#include "../i_sound.h" -#include "../s_sound.h" -#include "../i_system.h" -#include "../m_argv.h" -#include "../w_wad.h" -#include "../z_zone.h" -#include "../doomstat.h" - -#include "dx_error.h" - -#include "mid2strm.h" - -#ifdef HW3SOUND -#include "../hardware/hw3dsdrv.h" -#include "../hardware/hw3sound.h" -#include "win_dll.h" -#endif - -#ifndef SURROUND -#define SURROUND // comment out this to disable the SurroundSound code -#endif - -#ifdef SURROUND -ATTRNOINLINE static FUNCNOINLINE void CopyAndInvertMemory(void *dest, void *src, int bytes); //Can't inline ASM that haves lables -#endif - -#define FMODSOUND // comment out this to disable MOD/IT/MP3/OGG music playback - -/////////////////////////////////////////////////////////// -#ifdef FMODSOUND -#ifdef __MINGW32__ -#include -#else -#include -#endif -#ifdef FSOUND_INIT_DONTLATENCYADJUST //Alam: why didn't I think about this before? :) -#define FSOUND_Stream_OpenFile(name,mode,length) FSOUND_Stream_Open(name,mode,0,length) -#else -#define FSOUND_INIT_DONTLATENCYADJUST 0 -#endif -#ifdef __MINGW32__ -#include -#else -#include /* optional */ -#endif -//#include -#endif -///////////////////////////////////////////////////////// - -//#define TESTCODE // remove this for release version - -/* briefly described here for convenience: -typedef struct { - WORD wFormatTag; // WAVE_FORMAT_PCM is the only format accepted for DirectSound: - // this tag indicates Pulse Code Modulation (PCM), an uncompressed format - // in which each samples represents the amplitude of the signal at the time - // of sampling. - WORD nChannels; // either one (mono) or two (stereo) - DWORD nSamplesPerSec; // the sampling rate, or frequency, in hertz. - // Typical values are 11,025, 22,050, and 44,100 - DWORD nAvgBytesPerSec; // nAvgBytesPerSec is the product of nBlockAlign and nSamplesPerSec - WORD nBlockAlign; // the number of bytes required for each complete sample, for PCM formats - // is equal to (wBitsPerSample * nChannels / 8). - WORD wBitsPerSample; // gives the size of each sample, generally 8 or 16 bits - WORD cbSize; // cbSize gives the size of any extra fields required to describe a - // specialized wave format. This member is always zero for PCM formats. -} WAVEFORMATEX; -*/ - -// Tails 11-21-2002 -#ifdef FMODSOUND -static FMUSIC_MODULE *mod = NULL; -static int fsoundchannel = -1; -static int fsoundfreq = 0; -static int fmodvol = 127; -static FSOUND_STREAM *fmus = NULL; -#endif - -// -------------------------------------------------------------------------- -// DirectSound stuff -// -------------------------------------------------------------------------- -static LPDIRECTSOUND DSnd = NULL; -static LPDIRECTSOUNDBUFFER DSndPrimary = NULL; ; - -// Stack sounds means sounds put on top of each other, since DirectSound can't play -// the same sound buffer at different locations at the same time, we need to dupli- -// cate existing buffers to play multiple instances of the same sound in the same -// time frame. A duplicate sound is freed when it is no more used. The priority that -// comes from the s_sound engine, is kept so that the lowest priority sounds are -// stopped to make place for the new sound, unless the new sound has a lower priority -// than all playing sounds, in which case the sound is not started. -#define MAXSTACKSOUNDS 32 // this is the absolute number of sounds that - // can play simultaneously, whatever the value - // of cv_numChannels -typedef struct { - LPDIRECTSOUNDBUFFER lpSndBuf; -#ifdef SURROUND - // judgecutor: - // Need for produce surround sound - LPDIRECTSOUNDBUFFER lpSurround; -#endif - int priority; - boolean duplicate; -} StackSound_t; -static StackSound_t StackSounds[MAXSTACKSOUNDS]; - -// -------------------------------------------------------------------------- -// Fill the DirectSoundBuffer with data from a sample, made separate so that -// sound data cna be reloaded if a sound buffer was lost. -// -------------------------------------------------------------------------- -static boolean CopySoundData (LPDIRECTSOUNDBUFFER dsbuffer, LPBYTE data, DWORD length) -{ - LPVOID lpvAudio1; // receives address of lock start - DWORD dwBytes1; // receives number of bytes locked - LPVOID lpvAudio2; // receives address of lock start - DWORD dwBytes2; // receives number of bytes locked - HRESULT hr; - - // Obtain memory address of write block. - hr = IDirectSoundBuffer_Lock (dsbuffer, 0, length, &lpvAudio1, &dwBytes1, &lpvAudio2, &dwBytes2, 0); - - // If DSERR_BUFFERLOST is returned, restore and retry lock. - if (hr == DSERR_BUFFERLOST) - { - hr = IDirectSoundBuffer_Restore (dsbuffer); - if (FAILED (hr)) - I_Error("Restore fail on %x, %s\n",dsbuffer,DXErrorToString(hr)); - hr = IDirectSoundBuffer_Lock (dsbuffer, 0, length, &lpvAudio1, &dwBytes1, &lpvAudio2, &dwBytes2, 0); - if (FAILED (hr)) - I_Error("Lock fail(2) on %x, %s\n",dsbuffer,DXErrorToString(hr)); - } - else - if (FAILED (hr)) - I_Error("Lock fail(1) on %x, %s\n",dsbuffer,DXErrorToString(hr)); - - // copy wave data into the buffer (note: dwBytes1 should equal to dsbdesc->dwBufferBytes ...) - CopyMemory (lpvAudio1, data, dwBytes1); - - if (dwBytes2 && lpvAudio2) - CopyMemory(lpvAudio2, data+dwBytes1, dwBytes2); - - // finally, unlock the buffer - hr = IDirectSoundBuffer_Unlock (dsbuffer, lpvAudio1, dwBytes1, lpvAudio2, dwBytes2); - - if (FAILED (hr)) - I_Error("Unlock fail on %x, %s\n",dsbuffer,DXErrorToString(hr)); - - return true; -} - -#ifdef SURROUND -// judgecutor: -// Hmmm... May be this function is not too good... -static void CopyAndInvertMemory(void *dest, void *src, int bytes) -{ -#ifdef __GNUC__ - __asm__("CAIM:;lodsb;neg %%al;stosb;loop CAIM;"::"c"(bytes),"D"(dest),"S"(src): "memory","cc"); -#else - _asm - { - push esi - push edi - push ecx - mov ecx,bytes - mov esi,src - mov edi,dest -a: - lodsb - neg al - stosb - loop a - pop ecx - pop edi - pop esi - } -#endif -} - -// judgecutor: -// Like normal CopySoundData but sound data will be inverted -static boolean CopyAndInvertSoundData(LPDIRECTSOUNDBUFFER dsbuffer, LPBYTE data, DWORD length) -{ - LPVOID lpvAudio1 = NULL; // receives address of lock start - DWORD dwBytes1 = 0; // receives number of bytes locked - LPVOID lpvAudio2 = NULL; - DWORD dwBytes2 = 0; - HRESULT hr; - - // Obtain memory address of write block. - hr = IDirectSoundBuffer_Lock (dsbuffer, 0, length, &lpvAudio1, &dwBytes1, &lpvAudio2, &dwBytes2, 0); - - // If DSERR_BUFFERLOST is returned, restore and retry lock. - if (hr == DSERR_BUFFERLOST) - { - hr = IDirectSoundBuffer_Restore (dsbuffer); - if (FAILED (hr)) - I_Error("CopyAndInvert: Restore fail on %x, %s\n",dsbuffer,DXErrorToString(hr)); - hr = IDirectSoundBuffer_Lock (dsbuffer, 0, length, &lpvAudio1, &dwBytes1, &lpvAudio2, &dwBytes2, 0); - if (FAILED (hr)) - I_Error("CopyAndInvert: Lock fail(2) on %x, %s\n",dsbuffer,DXErrorToString(hr)); - } else if (FAILED (hr)) - I_Error("CopyAndInvetrt: Lock fail(1) on %x, %s\n",dsbuffer,DXErrorToString(hr)); - - // copy wave data into the buffer (note: dwBytes1 should equal to dsbdesc->dwBufferBytes ...) - CopyAndInvertMemory (lpvAudio1, data, dwBytes1); - - if (dwBytes2 && lpvAudio2) - CopyAndInvertMemory(lpvAudio2, data+dwBytes1, dwBytes2); - - hr = IDirectSoundBuffer_Unlock (dsbuffer, lpvAudio1, dwBytes1, lpvAudio2, dwBytes2); - if (FAILED (hr)) - I_Error("CopyAndInvert: Unlock fail on %x, %s\n",dsbuffer,DXErrorToString(hr)); - - return false; -} -#endif - -static DWORD sound_buffer_flags = DSBCAPS_CTRLPAN | - DSBCAPS_CTRLVOLUME | - DSBCAPS_STICKYFOCUS | - //DSBCAPS_LOCSOFTWARE | - DSBCAPS_STATIC; - -// -------------------------------------------------------------------------- -// raw2DS : convert a raw sound data, returns a LPDIRECTSOUNDBUFFER -// -------------------------------------------------------------------------- -// dsdata points a 4 UINT16 header: -// +0 : value 3 what does it mean? -// +2 : sample rate, either 11025 or 22050. -// +4 : number of samples, each sample is a single byte since it's 8bit -// +6 : value 0 -// -#ifdef SURROUND -// judgecutor: -// We need an another function definition for supporting the surround sound -// Invert just cause to copy an inverted sound data -static LPDIRECTSOUNDBUFFER raw2DS(LPBYTE *dsdata, size_t len, UINT8 invert) -#else -static LPDIRECTSOUNDBUFFER raw2DS(LPBYTE *dsdata, size_t len) -#endif -{ - HRESULT hr; - WAVEFORMATEX wfm; - DSBUFFERDESC dsbdesc; - LPDIRECTSOUNDBUFFER dsbuffer; - - // initialise WAVEFORMATEX structure describing the wave format - ZeroMemory (&wfm, sizeof (WAVEFORMATEX)); - wfm.wFormatTag = WAVE_FORMAT_PCM; - wfm.nChannels = 1; - wfm.nSamplesPerSec = (dsdata[3]<<8)+dsdata[2]; //mostly 11025, but some at 22050. - wfm.wBitsPerSample = 8; - wfm.nBlockAlign = (WORD)(wfm.wBitsPerSample / 8 * wfm.nChannels); - wfm.nAvgBytesPerSec = wfm.nSamplesPerSec * wfm.nBlockAlign; - - // Set up DSBUFFERDESC structure. - ZeroMemory (&dsbdesc, sizeof (DSBUFFERDESC)); - dsbdesc.dwSize = sizeof (DSBUFFERDESC); -/* dsbdesc.dwFlags = DSBCAPS_CTRLPAN | - DSBCAPS_CTRLVOLUME | - DSBCAPS_STICKYFOCUS | - //DSBCAPS_LOCSOFTWARE | - DSBCAPS_STATIC - | DSBCAPS_CTRLFREQUENCY; // This one for pitching -*/ - dsbdesc.dwFlags = sound_buffer_flags; - dsbdesc.dwBufferBytes = len-8; - dsbdesc.lpwfxFormat = &wfm; // pointer to WAVEFORMATEX structure - - // Create the sound buffer - hr = IDirectSound_CreateSoundBuffer (DSnd, &dsbdesc, &dsbuffer, NULL); - - if (hr == DSERR_CONTROLUNAVAIL) - { - CONS_Printf("\tSoundBufferCreate error - a buffer control is not available.\n\tTrying to disable frequency control.\n"); - - sound_buffer_flags &= ~DSBCAPS_CTRLFREQUENCY; - dsbdesc.dwFlags = sound_buffer_flags; - - hr = IDirectSound_CreateSoundBuffer (DSnd, &dsbdesc, &dsbuffer, NULL); - } - - if (FAILED(hr)) - I_Error("CreateSoundBuffer() FAILED: %s\n", DXErrorToString(hr)); - -#ifdef SURROUND - if (invert) - // just invert a sound data for producing the surround sound - CopyAndInvertSoundData(dsbuffer, (LPBYTE)dsdata + 8, dsbdesc.dwBufferBytes); - else - // Do a normal operation -#endif - // fill the DirectSoundBuffer waveform data - CopySoundData (dsbuffer, (LPBYTE)dsdata + 8, dsbdesc.dwBufferBytes); - - return dsbuffer; -} - - -// -------------------------------------------------------------------------- -// This function loads the sound data from the WAD lump, for single sound. -// -------------------------------------------------------------------------- -void *I_GetSfx (sfxinfo_t * sfx) -{ - LPBYTE dssfx; - - if (sfx->lumpnum < 0) - sfx->lumpnum = S_GetSfxLumpNum (sfx); - -#ifdef HW3SOUND - if (hws_mode != HWS_DEFAULT_MODE) - return HW3S_GetSfx(sfx); -#endif - - sfx->length = W_LumpLength (sfx->lumpnum); - - // PU_CACHE because the data is copied to the DIRECTSOUNDBUFFER, the one here will not be used - dssfx = (LPBYTE) W_CacheLumpNum (sfx->lumpnum, PU_CACHE); - -#ifdef SURROUND - // Make a normal (not inverted) sound buffer - return (void *)raw2DS (dssfx, sfx->length, FALSE); -#else - // return the LPDIRECTSOUNDBUFFER, which will be stored in S_sfx[].data - return (void *)raw2DS (dssfx, sfx->length); -#endif -} - - -// -------------------------------------------------------------------------- -// Free all allocated resources for a single sound -// -------------------------------------------------------------------------- -void I_FreeSfx (sfxinfo_t *sfx) -{ - LPDIRECTSOUNDBUFFER dsbuffer; - - if (sfx->lumpnum < 0) - return; - -#ifdef HW3SOUND - if (hws_mode != HWS_DEFAULT_MODE) - { - HW3S_FreeSfx(sfx); - } - else -#endif - { - //CONS_Printf("I_FreeSfx(%d)\n", sfx->lumpnum); - - // free DIRECTSOUNDBUFFER - dsbuffer = (LPDIRECTSOUNDBUFFER) sfx->data; - if (dsbuffer) - { - size_t i; - for (i = 0; i < MAXSTACKSOUNDS; i++) - { - if (StackSounds[i].lpSndBuf == dsbuffer) - { - StackSounds[i].lpSndBuf = NULL; -#ifdef SURROUND - if (StackSounds[i].lpSurround) - { - IDirectSoundBuffer_Stop(StackSounds[i].lpSurround); - IDirectSoundBuffer_Release(StackSounds[i].lpSurround); - } - StackSounds[i].lpSurround = NULL; -#endif - } - } - IDirectSoundBuffer_Stop (dsbuffer); - IDirectSoundBuffer_Release (dsbuffer); - } - } - sfx->data = NULL; - sfx->lumpnum = -1; -} - - -// -------------------------------------------------------------------------- -// Set the global volume for sound effects -// -------------------------------------------------------------------------- -void I_SetSfxVolume(INT32 volume) -{ - int vol; - HRESULT hr; - - if (nosound || !sound_started) - return; - - // use the last quarter of volume range - if (volume) - vol = (volume * ((DSBVOLUME_MAX-DSBVOLUME_MIN)/4)) / 31 + - (DSBVOLUME_MAX - ((DSBVOLUME_MAX-DSBVOLUME_MIN)/4)); - else - vol = DSBVOLUME_MIN; // make sure 0 is silence - //CONS_Printf("setvolume to %d\n", vol); - hr = IDirectSoundBuffer_SetVolume (DSndPrimary, vol); - //if (FAILED(hr)) - // CONS_Printf("setvolumne failed\n"); -} - - -// -------------------------------------------------------------------------- -// Update the volume for a secondary buffer, make sure it was created with -// DSBCAPS_CTRLVOLUME -// -------------------------------------------------------------------------- -static void I_UpdateSoundVolume (LPDIRECTSOUNDBUFFER lpSnd, int volume) -{ - HRESULT hr; - volume = (volume * ((DSBVOLUME_MAX-DSBVOLUME_MIN)/4)) / 256 + - (DSBVOLUME_MAX - ((DSBVOLUME_MAX-DSBVOLUME_MIN)/4)); - hr = IDirectSoundBuffer_SetVolume (lpSnd, volume); - //if (FAILED(hr)) - // CONS_Printf("\2SetVolume FAILED\n"); -} - - -// -------------------------------------------------------------------------- -// Update the panning for a secondary buffer, make sure it was created with -// DSBCAPS_CTRLPAN -// -------------------------------------------------------------------------- -#define DSBPAN_RANGE (DSBPAN_RIGHT-(DSBPAN_LEFT)) -#define SEP_RANGE 256 //Doom sounds pan range 0-255 (128 is centre) -static void I_UpdateSoundPanning (LPDIRECTSOUNDBUFFER lpSnd, int sep) -{ - HRESULT hr; - hr = IDirectSoundBuffer_SetPan (lpSnd, (sep * DSBPAN_RANGE)/SEP_RANGE - DSBPAN_RIGHT); - //if (FAILED(hr)) - // CONS_Printf("SetPan FAILED for sep %d pan %d\n", sep, (sep * DSBPAN_RANGE)/SEP_RANGE - DSBPAN_RIGHT); -} - -// search a free slot in the stack, free it if needed -static int GetFreeStackNum(int newpriority) -{ - int lowestpri = 256,lowestprihandle = 0; - int i; - // DirectSound can't play multiple instances of the same sound buffer - // unless they are duplicated, so if the sound buffer is in use, make a duplicate - for (i = 0; i < MAXSTACKSOUNDS; i++) - { - // find a free 'playing sound slot' to use - if (StackSounds[i].lpSndBuf == NULL) - { - //CONS_Printf("\t\tfound free slot %d\n", i); - return i; - } - else if (!I_SoundIsPlaying(i)) // check for sounds that finished playing, and can be freed - { - //CONS_Printf("\t\tfinished sound in slot %d\n", i); - //stop sound and free the 'slot' - I_StopSound (i); - // we can use this one since it's now freed - return i; - } - else if (StackSounds[i].priority < lowestpri) //remember lowest priority sound - { - lowestpri = StackSounds[i].priority; - lowestprihandle = i; - } - } - - // the maximum of sounds playing at the same time is reached, if we have at least - // one sound playing with a lower priority, stop it and replace it with the new one - - //CONS_Printf("\t\tall slots occupied..\n"); - if (newpriority >= lowestpri) - { - I_StopSound (lowestprihandle); - return lowestprihandle; - //CONS_Printf(" kicking out lowest priority slot: %d pri: %d, my priority: %d\n", - // handle, lowestpri, priority); - } - - return -1; -} - -#ifdef SURROUND -static LPDIRECTSOUNDBUFFER CreateInvertedSound(int id) -{ - lumpnnum_t lumpnum; - LBYPTE dsdata; - - lumpnum = S_sfx[id].lumpnum; - if (lumpnum < 0) - lumpnum = S_GetSfxLumpNum (&S_sfx[id]); - dsdata = W_CacheLumpNum (lumpnum, PU_CACHE); - return raw2DS(dsdata, S_sfx[id].length, TRUE); -} -#endif - -// Calculate internal pitch from Doom pitch -#if 0 -static float recalc_pitch(int doom_pitch) -{ - return doom_pitch < NORMAL_PITCH ? - (float)(doom_pitch + NORMAL_PITCH) / (NORMAL_PITCH * 2) - :(float)doom_pitch / (float)NORMAL_PITCH; -} -#endif - -// -------------------------------------------------------------------------- -// Start the given S_sfx[id] sound with given properties (panning, volume..) -// -------------------------------------------------------------------------- -INT32 I_StartSound (sfxenum_t id, - INT32 vol, - INT32 sep, - INT32 pitch, - INT32 priority) -{ - HRESULT hr; - LPDIRECTSOUNDBUFFER dsbuffer; - DWORD dwStatus; - int handle; - int i; - //DWORD freq; -#ifdef SURROUND - LPDIRECTSOUNDBUFFER dssurround; -#endif - - if (nosound) - return -1; - - //CONS_Printf("I_StartSound:\n\t\tS_sfx[%d]\n", id); - handle = GetFreeStackNum(priority); - if (handle < 0) - return -1; - - //CONS_Printf("\t\tusing handle %d\n", handle); - - // if the original buffer is playing, duplicate it (DirectSound specific) - // else, use the original buffer - dsbuffer = (LPDIRECTSOUNDBUFFER) S_sfx[id].data; - IDirectSoundBuffer_GetStatus (dsbuffer, &dwStatus); - if (dwStatus & (DSBSTATUS_PLAYING | DSBSTATUS_LOOPING)) - { - //CONS_Printf("\t\toriginal sound S_sfx[%d] is playing, duplicating.. ", id); - hr = IDirectSound_DuplicateSoundBuffer(DSnd, (LPDIRECTSOUNDBUFFER) S_sfx[id].data, &dsbuffer); - if (FAILED(hr)) - { - //CONS_Printf("Cound't duplicate sound buffer\n"); - // re-use the original then.. - dsbuffer = (LPDIRECTSOUNDBUFFER) S_sfx[id].data; - // clean up stacksounds info - for (i = 0; i < MAXSTACKSOUNDS; i++) - if (handle != i && - StackSounds[i].lpSndBuf == dsbuffer) - { - StackSounds[i].lpSndBuf = NULL; - } - } - // stop the duplicate or the re-used original - IDirectSoundBuffer_Stop (dsbuffer); - } - - //judgecutor: Sound pitching -#if 0 - if (cv_rndsoundpitch.value) - { - // At first reset the buffer back to original frequency - hr = IDirectSoundBuffer_SetFrequency(dsbuffer, DSBFREQUENCY_ORIGINAL); - if (SUCCEEDED (hr)) - { - - IDirectSoundBuffer_GetFrequency(dsbuffer, &freq); - - // Now pitch it - freq *= recalc_pitch(pitch); - IDirectSoundBuffer_SetFrequency(dsbuffer, freq); - } - else - cv_rndsoundpitch = 0; - } -#else - pitch = 0; -#endif - // store information on the playing sound - StackSounds[handle].lpSndBuf = dsbuffer; - StackSounds[handle].priority = priority; - StackSounds[handle].duplicate = (dsbuffer != (LPDIRECTSOUNDBUFFER)S_sfx[id].data); - - //CONS_Printf("StackSounds[%d].lpSndBuf is %s\n", handle, StackSounds[handle].lpSndBuf == NULL ? "Null":"valid"); - //CONS_Printf("StackSounds[%d].priority is %d\n", handle, StackSounds[handle].priority); - //CONS_Printf("StackSounds[%d].duplicate is %s\n", handle, StackSounds[handle].duplicate ? "TRUE":"FALSE"); - - I_UpdateSoundVolume (dsbuffer, vol); - -#ifdef SURROUND - // Prepare the surround sound buffer - // Use a normal sound data for the left channel (with pan == 0) - // and an inverted sound data for the right channel (with pan == 255) - - dssurround = CreateInvertedSound(id); - - // Surround must be pitched too -#if 0 - if (cv_rndsoundpitch.value) - IDirectSoundBuffer_SetFrequency(dssurround, freq); -#endif - if (sep == -128) - { - I_UpdateSoundPanning(dssurround, 255); - I_UpdateSoundVolume(dssurround, vol); - I_UpdateSoundPanning(dsbuffer, 0); - IDirectSoundBuffer_SetCurrentPosition(dssurround, 0); - } - else - // Perform normal operation -#endif - - I_UpdateSoundPanning (dsbuffer, sep); - - IDirectSoundBuffer_SetCurrentPosition (dsbuffer, 0); - - hr = IDirectSoundBuffer_Play (dsbuffer, 0, 0, 0); - if (hr == DSERR_BUFFERLOST) - { - //CONS_Printf("buffer lost\n"); - // restores the buffer memory and all other settings for the buffer - hr = IDirectSoundBuffer_Restore (dsbuffer); - if (SUCCEEDED (hr)) - { - LPBYTE dsdata; - // reload sample data here - int lumpnum = S_sfx[id].lumpnum; - if (lumpnum < 0) - lumpnum = S_GetSfxLumpNum (&S_sfx[id]); - dsdata = W_CacheLumpNum (lumpnum, PU_CACHE); - - // Well... Data lenght must be -8!!! - CopySoundData (dsbuffer, dsdata + 8, S_sfx[id].length - 8); - - // play - hr = IDirectSoundBuffer_Play (dsbuffer, 0, 0, 0); - } - else - I_Error("I_StartSound : ->Restore FAILED, %s",DXErrorToString(hr)); - } - -#ifdef SURROUND - if (sep == -128) - { - hr = IDirectSoundBuffer_Play (dssurround, 0, 0, 0); - //CONS_Printf("Surround playback\n"); - if (hr == DSERR_BUFFERLOST) - { - // restores the buffer memory and all other settings for the surround buffer - hr = IDirectSoundBuffer_Restore (dssurround); - if (SUCCEEDED (hr)) - { - LPBYTE dsdata; - lumpnumt_t lumpnum = S_sfx[id].lumpnum; - - if (lumpnum < 0) - lumpnum = S_GetSfxLumpNum (&S_sfx[id]); - dsdata = W_CacheLumpNum (lumpnum, PU_CACHE); - CopyAndInvertSoundData (dssurround, (LPBYTE)dsdata + 8, S_sfx[id].length - 8); - - hr = IDirectSoundBuffer_Play (dssurround, 0, 0, 0); - } - else - I_Error("I_StartSound : ->Restore FAILED, %s",DXErrorToString(hr)); - } - } - StackSounds[handle].lpSurround = dssurround; -#endif - - // Returns a handle - return handle; -} - - -// -------------------------------------------------------------------------- -// Stop a sound if it is playing, -// free the corresponding 'playing sound slot' in StackSounds[] -// -------------------------------------------------------------------------- -void I_StopSound (INT32 handle) -{ - LPDIRECTSOUNDBUFFER dsbuffer; - HRESULT hr; - - if (nosound || handle < 0) - return; - - //CONS_Printf("I_StopSound (%d)\n", handle); - - dsbuffer = StackSounds[handle].lpSndBuf; - hr = IDirectSoundBuffer_Stop (dsbuffer); - - // free duplicates of original sound buffer (DirectSound hassles) - if (StackSounds[handle].duplicate) - { - //CONS_Printf("\t\trelease a duplicate..\n"); - IDirectSoundBuffer_Release (dsbuffer); - } - -#ifdef SURROUND - // Stop and release the surround sound buffer - dsbuffer = StackSounds[handle].lpSurround; - if (dsbuffer != NULL) - { - IDirectSoundBuffer_Stop(dsbuffer); - IDirectSoundBuffer_Release(dsbuffer); - } - StackSounds[handle].lpSurround = NULL; -#endif - - StackSounds[handle].lpSndBuf = NULL; -} - - -// -------------------------------------------------------------------------- -// Returns whether the sound is currently playing or not -// -------------------------------------------------------------------------- -INT32 I_SoundIsPlaying(INT32 handle) -{ - LPDIRECTSOUNDBUFFER dsbuffer; - DWORD dwStatus; - - if (nosound || handle == -1) - return FALSE; - - dsbuffer = StackSounds[handle].lpSndBuf; - if (dsbuffer) - { - IDirectSoundBuffer_GetStatus (dsbuffer, &dwStatus); - if (dwStatus & (DSBSTATUS_PLAYING | DSBSTATUS_LOOPING)) - return TRUE; - } - - return FALSE; -} - - -// -------------------------------------------------------------------------- -// Update properties of a sound currently playing -// -------------------------------------------------------------------------- -void I_UpdateSoundParams(INT32 handle, - INT32 vol, - INT32 sep, - INT32 pitch) -{ - LPDIRECTSOUNDBUFFER dsbuffer; -#ifdef SURROUND - LPDIRECTSOUNDBUFFER dssurround; - DWORD dwStatus; - DWORD pos; - boolean surround_inuse = FALSE; -#endif - - if (nosound) - return; - - pitch = 0; /// \todo pitch setup - dsbuffer = StackSounds[handle].lpSndBuf; - -#ifdef SURROUND - if (dsbuffer == NULL) - return; - - dssurround = StackSounds[handle].lpSurround; - if (dssurround) - { - IDirectSoundBuffer_GetStatus(dssurround, &dwStatus); - surround_inuse = (dwStatus & (DSBSTATUS_PLAYING | DSBSTATUS_LOOPING)); - } - // If pan changed to stereo... - if (sep != -128) - { - if (surround_inuse) - { - IDirectSoundBuffer_Stop(dssurround); - surround_inuse = FALSE; - } - } - else if (!surround_inuse) // Just update volumes and start the surround if need - { - I_UpdateSoundVolume(dssurround, vol); - I_UpdateSoundPanning(dsbuffer, 0); - IDirectSoundBuffer_GetCurrentPosition(dsbuffer, &pos, NULL); - IDirectSoundBuffer_SetCurrentPosition(dssurround, pos); - IDirectSoundBuffer_Play(dssurround, 0, 0, 0); - surround_inuse = TRUE; - } - else - I_UpdateSoundVolume(dssurround, vol); - I_UpdateSoundVolume(dsbuffer, vol); - - if (!surround_inuse) - I_UpdateSoundPanning(dsbuffer, sep); -#else - if (dsbuffer) - { - I_UpdateSoundVolume (dsbuffer, vol); - I_UpdateSoundPanning (dsbuffer, sep); - } -#endif -} - - -// -// Shutdown DirectSound -// -void I_ShutdownSound(void) -{ - int i; - - CONS_Printf("I_ShutdownSound()\n"); - -#ifdef HW3SOUND - if (hws_mode != HWS_DEFAULT_MODE) - { - HW3S_Shutdown(); - Shutdown3DSDriver(); - return; - } -#endif - // release any temporary 'duplicated' secondary buffers - for (i = 0; i < MAXSTACKSOUNDS; i++) - if (StackSounds[i].lpSndBuf) - // stops the sound and release it if it is a duplicate - I_StopSound (i); - - if (DSnd) - { - IDirectSound_Release(DSnd); - DSnd = NULL; - } -} - - -// ========================================================================== -// Startup DirectSound -// ========================================================================== -void I_StartupSound(void) -{ - HRESULT hr; - LPDIRECTSOUNDBUFFER lpDsb; - DSBUFFERDESC dsbdesc; - WAVEFORMATEX wfm; - int cooplevel; - int frequency; - -#ifdef HW3SOUND - const char *sdrv_name = NULL; - snddev_t snddev; -#endif - - sound_started = false; - - if (dedicated) - return; - - if (nosound) - return; - - // Secure and configure sound device first. - CONS_Printf("I_StartupSound: "); - - // frequency of primary buffer may be set at cmd-line - if (M_CheckParm ("-freq") && M_IsNextParm()) - { - frequency = atoi(M_GetNextParm()); - CONS_Printf(" requested frequency of %d hz\n", frequency); - CV_SetValue(&cv_samplerate,frequency); - } - else - frequency = cv_samplerate.value; - - // Set cooperative level - // Cooperative sound with other applications can be requested at cmd-line - if (M_CheckParm("-coopsound")) - cooplevel = DSSCL_PRIORITY; - else - cooplevel = DSSCL_EXCLUSIVE; - -#ifdef HW3SOUND - if (M_CheckParm("-ds3d")) - { - hws_mode = HWS_DS3D; - sdrv_name = "s_ds3d.dll"; - } -#if 1 - else if (M_CheckParm("-fmod3d")) - { - hws_mode = HWS_FMOD3D; - sdrv_name = "s_fmod.dll"; - } - else if (M_CheckParm("-sounddriver") && M_IsNextParm()) - { - hws_mode = HWS_OTHER; - sdrv_name = M_GetNextParm(); - } -#else - else if (M_CheckParm("-sounddriver") && M_IsNextParm()) - { - hws_mode = HWS_OTHER; - sdrv_name = M_GetNextParm(); - } - else if (!M_CheckParm("-nosd")) - { - hws_mode = HWS_FMOD3D; - sdrv_name = "s_fmod.dll"; - } -#endif - - // There must be further sound drivers (such as A3D and EAX)!!! - - if (hws_mode != HWS_DEFAULT_MODE && sdrv_name != NULL) - { - if (Init3DSDriver(sdrv_name)) - { - //nosound = true; - snddev.sample_rate = frequency; - snddev.bps = 16; - snddev.numsfxs = NUMSFX; - snddev.cooplevel = cooplevel; - snddev.hWnd = hWndMain; - if (HW3S_Init(I_Error, &snddev)) - { - CONS_Printf("Using external sound driver %s\n", sdrv_name); - I_AddExitFunc(I_ShutdownSound); - return; - } - // Falls back to default sound system - CONS_Printf("Not using external sound driver %s\n", sdrv_name); - HW3S_Shutdown(); - Shutdown3DSDriver(); - } - hws_mode = HWS_DEFAULT_MODE; - } -#endif - - // Create DirectSound, use the default sound device - hr = DirectSoundCreate(NULL, &DSnd, NULL); - if (FAILED(hr)) - { - CONS_Printf(" DirectSoundCreate FAILED\n" - " there is no sound device or the sound device is under\n" - " the control of another application\n"); - nosound = true; - return; - } - - // register exit code, now that we have at least DirectSound to close - I_AddExitFunc(I_ShutdownSound); - hr = IDirectSound_SetCooperativeLevel (DSnd, hWndMain, cooplevel); - if (FAILED(hr)) - { - CONS_Printf(" SetCooperativeLevel FAILED\n"); - nosound = true; - return; - } - - // Set up DSBUFFERDESC structure. - ZeroMemory (&dsbdesc, sizeof (DSBUFFERDESC)); - dsbdesc.dwSize = sizeof (DSBUFFERDESC); - dsbdesc.dwFlags = DSBCAPS_PRIMARYBUFFER | - DSBCAPS_CTRLVOLUME; - dsbdesc.dwBufferBytes = 0; // Must be 0 for primary buffer - dsbdesc.lpwfxFormat = NULL; // Must be NULL for primary buffer - - // Set up structure for the desired format - ZeroMemory (&wfm, sizeof (WAVEFORMATEX)); - wfm.wFormatTag = WAVE_FORMAT_PCM; - wfm.nChannels = 2; //STEREO SOUND! - wfm.nSamplesPerSec = frequency; - wfm.wBitsPerSample = 16; - wfm.nBlockAlign = (WORD)(wfm.wBitsPerSample / 8 * wfm.nChannels); - wfm.nAvgBytesPerSec = wfm.nSamplesPerSec * wfm.nBlockAlign; - - // Gain access to the primary buffer - hr = IDirectSound_CreateSoundBuffer (DSnd, &dsbdesc, &lpDsb, NULL); - if (FAILED(hr)) - { - CONS_Printf("CreateSoundBuffer FAILED: %s (ErrNo %d)\n", DXErrorToString(hr), hr); - nosound = true; - return; - } - - // Set the primary buffer to the desired format, - // but only if we are allowed to do it - if (cooplevel >= DSSCL_PRIORITY) - { - if (SUCCEEDED (hr)) - { - // Set primary buffer to the desired format. If this fails, - // we'll just ignore and go with the default. - hr = IDirectSoundBuffer_SetFormat (lpDsb, &wfm); - if (FAILED(hr)) - CONS_Printf("I_StartupSound : couldn't set primary buffer format.\n"); - else - CV_SetValue(&cv_samplerate,wfm.nSamplesPerSec); - } - // move any on-board sound memory into a contiguous block - // to make the largest portion of free memory available. - - CONS_Printf(" Compacting onboard sound-memory..."); - hr = IDirectSound_Compact (DSnd); - CONS_Printf(" %s\n", SUCCEEDED(hr) ? "Done\n" : "Failed\n")); - } - - // set the primary buffer to play continuously, for performance - // "... this method will ensure that the primary buffer is playing even when no secondary - // buffers are playing; in that case, silence will be played. This can reduce processing - // overhead when sounds are started and stopped in sequence, because the primary buffer - // will be playing continuously rather than stopping and starting between secondary buffers." - hr = IDirectSoundBuffer_Play (lpDsb, 0, 0, DSBPLAY_LOOPING); - if (FAILED (hr)) - CONS_Printf(" Primary buffer continuous play FAILED\n"); - -#ifdef DEBUGSOUND - { - DSCAPS DSCaps; - DSCaps.dwSize = sizeof (DSCAPS); - hr = IDirectSound_GetCaps (DSnd, &DSCaps); - if (SUCCEEDED (hr)) - { - if (DSCaps.dwFlags & DSCAPS_CERTIFIED) - CONS_Printf("This driver has been certified by Microsoft\n"); - if (DSCaps.dwFlags & DSCAPS_EMULDRIVER) - CONS_Printf("No driver with DirectSound support installed (no hardware mixing)\n"); - if (DSCaps.dwFlags & DSCAPS_PRIMARY16BIT) - CONS_Printf("Supports 16-bit primary buffer\n"); - if (DSCaps.dwFlags & DSCAPS_PRIMARY8BIT) - CONS_Printf("Supports 8-bit primary buffer\n"); - if (DSCaps.dwFlags & DSCAPS_SECONDARY16BIT) - CONS_Printf("Supports 16-bit, hardware-mixed secondary buffers\n"); - if (DSCaps.dwFlags & DSCAPS_SECONDARY8BIT) - CONS_Printf("Supports 8-bit, hardware-mixed secondary buffers\n"); - - CONS_Printf("Maximum number of hardware buffers: %d\n", DSCaps.dwMaxHwMixingStaticBuffers); - CONS_Printf("Size of total hardware memory: %d\n", DSCaps.dwTotalHwMemBytes); - CONS_Printf("Size of free hardware memory= %d\n", DSCaps.dwFreeHwMemBytes); - CONS_Printf("Play Cpu Overhead (%% cpu cycles): %d\n", DSCaps.dwPlayCpuOverheadSwBuffers); - } - else - CONS_Printf(" couldn't get sound device caps.\n"); - } -#endif - - // save pointer to the primary DirectSound buffer for volume changes - DSndPrimary = lpDsb; - - ZeroMemory (StackSounds, sizeof (StackSounds)); - - CONS_Printf("sound initialised.\n"); - sound_started = true; -} - - -// ========================================================================== -// -// MUSIC API using MidiStream -// -// ========================================================================== - -#define SPECIAL_HANDLE_CLEANMIDI -1999 // tell I_StopSong() to do a full (slow) midiOutReset() on exit - -static BOOL bMusicStarted; - -static UINT uMIDIDeviceID, uCallbackStatus; -static HMIDISTRM hStream; -static HANDLE hBufferReturnEvent; // for synch between the callback thread and main program thread - // (we need to synch when we decide to stop/free stream buffers) - -static int nCurrentBuffer = 0, nEmptyBuffers; - -static BOOL bBuffersPrepared = FALSE; -static DWORD dwVolCache[MAX_MIDI_IN_TRACKS]; - DWORD dwVolumePercent; // accessed by win_main.c - - // this is accessed by mid2strm.c conversion code - BOOL bMidiLooped = FALSE; -static BOOL bMidiPlaying = FALSE; -static BOOL bMidiPaused = FALSE; -static CONVERTINFO ciStreamBuffers[NUM_STREAM_BUFFERS]; - -#define STATUS_KILLCALLBACK 100 // Signals that the callback should die -#define STATUS_CALLBACKDEAD 200 // Signals callback is done processing -#define STATUS_WAITINGFOREND 300 // Callback's waiting for buffers to play - -#define DEBUG_CALLBACK_TIMEOUT 2000 // Wait 2 seconds for callback - // faB: don't freeze the main code if we debug.. - -#define VOL_CACHE_INIT 127 // for dwVolCache[] - -static BOOL bMidiCanSetVolume; // midi caps - -static void Mid2StreamFreeBuffers(void); -static void CALLBACK MidiStreamCallback (HMIDIIN hMidi, UINT uMsg, DWORD dwInstance, - DWORD dwParam1, DWORD dwParam2); -static BOOL StreamBufferSetup(LPBYTE pMidiData, size_t iMidiSize); - -// ------------------- -// MidiErrorMessageBox -// Calls the midiOutGetErrorText() function and displays the text which -// corresponds to a midi subsystem error code. -// ------------------- -static void MidiErrorMessageBox(MMRESULT mmr) -{ - char szTemp[256] = ""; - - /*szTemp[0] = '\2'; //white text to stand out*/ - if((MMSYSERR_NOERROR == midiOutGetErrorTextA(mmr, szTemp/*+1*/, sizeof (szTemp))) && *szTemp) - CONS_Printf("%s\n",szTemp); - /*MessageBox (GetActiveWindow(), szTemp+1, "LEGACY", - MB_OK | MB_ICONSTOP);*/ - //wsprintf(szDebug, "Midi subsystem error: %s", szTemp); -} - - -// ---------------- -// I_InitAudioMixer -// ---------------- -#ifdef TESTCODE -void I_InitAudioMixer (void) -{ - UINT cMixerDevs = mixerGetNumDevs(); - CONS_Printf("%d mixer devices available\n", cMixerDevs); -} -#endif - -// ----------- -// I_InitDigMusic -// Startup Digital device for streaming output -// ----------- -void I_InitDigMusic(void) -{ - if (dedicated) - nodigimusic = true; - else - CONS_Printf("I_InitDigMusic()\n"); - -#ifdef FMODSOUND - if (!nodigimusic) - { - // Tails 11-21-2002 - if (FSOUND_GetVersion() < FMOD_VERSION) - { - //I_Error("FMOD Error : You are using the wrong DLL version!\nYou should be using FMOD %s\n", "FMOD_VERSION"); - CONS_Printf("FMOD Error : You are using the wrong DLL version!\nYou should be using FMOD %s\n", "FMOD_VERSION"); - nodigimusic = true; - } - - /* - INITIALIZE - */ -#if 1 - if (!FSOUND_SetHWND(hWndMain)) - { -// I_Error("FMOD(Init,FSOUND_SetHWND): %s\n", FMOD_ErrorString(FSOUND_GetError())); - //FSOUND_SetOutput(FSOUND_OUTPUT_DSOUND); - } - //else -#endif - - if (!FSOUND_Init(44100, 32, FSOUND_INIT_DONTLATENCYADJUST)) - { - //I_Error("FMOD(Init,FSOUND_Init): %s\n", FMOD_ErrorString(FSOUND_GetError())); - CONS_Printf("FMOD(Init,FSOUND_Init): %s\n", FMOD_ErrorString(FSOUND_GetError())); - nodigimusic = true; - } - else - I_AddExitFunc(I_ShutdownDigMusic); - } -#endif -} - -// ----------- -// I_InitMIDIMusic -// Startup Midi device for streaming output -// ----------- -void I_InitMIDIMusic(void) -{ - DWORD idx; - MMRESULT mmrRetVal; - UINT cMidiDevs; - MIDIOUTCAPS MidiOutCaps; - const char *szTechnology; - - bMusicStarted = false; - - if (dedicated) - nomidimusic = true; - else - CONS_Printf("I_InitMIDIMusic()\n"); - - if (nomidimusic) - return; - - // check out number of MIDI devices available - // - cMidiDevs = midiOutGetNumDevs(); - if (!cMidiDevs) - { - CONS_Printf("No MIDI devices available, music is disabled\n"); - nomidimusic = true; - return; - } -#ifdef DEBUGMIDISTREAM - else - { - CONS_Printf("%d MIDI devices available\n", cMidiDevs); - } -#endif - - if (M_CheckParm("-winmidi") && M_IsNextParm()) - uMIDIDeviceID = atoi(M_GetNextParm()); - else - uMIDIDeviceID = MIDI_MAPPER; - - // get MIDI device caps - // - if ((mmrRetVal = midiOutGetDevCaps (uMIDIDeviceID, &MidiOutCaps, sizeof (MIDIOUTCAPS))) != - MMSYSERR_NOERROR) - { - CONS_Printf("midiOutGetCaps FAILED : \n"); - MidiErrorMessageBox (mmrRetVal); - } - else - { - CONS_Printf("MIDI product name: %s\n", MidiOutCaps.szPname); - switch (MidiOutCaps.wTechnology) - { - case MOD_FMSYNTH: szTechnology = "FM Synth"; break; - case MOD_MAPPER: szTechnology = "Microsoft MIDI Mapper"; break; - case MOD_MIDIPORT: szTechnology = "MIDI hardware port"; break; - case MOD_SQSYNTH: szTechnology = "Square wave synthesizer"; break; - case MOD_SYNTH: szTechnology = "Synthesizer"; break; - default: szTechnology = "unknown"; break; - } - CONS_Printf("MIDI technology: %s\n", szTechnology); - CONS_Printf("MIDI caps:\n"); - if (MidiOutCaps.dwSupport & MIDICAPS_CACHE) - CONS_Printf("-Patch caching\n"); - if (MidiOutCaps.dwSupport & MIDICAPS_LRVOLUME) - CONS_Printf("-Separate left and right volume control\n"); - if (MidiOutCaps.dwSupport & MIDICAPS_STREAM) - CONS_Printf("-Direct support for midiStreamOut()\n"); - if (MidiOutCaps.dwSupport & MIDICAPS_VOLUME) - CONS_Printf("-Volume control\n"); - bMidiCanSetVolume = ((MidiOutCaps.dwSupport & MIDICAPS_VOLUME)!=0); - } - -#ifdef TESTCODE - I_InitAudioMixer (); -#endif - - // ---------------------------------------------------------------------- - // Midi2Stream initialization - // ---------------------------------------------------------------------- - - // create event for synch'ing the callback thread to main program thread - // when we will need it - hBufferReturnEvent = CreateEvent(NULL, FALSE, FALSE, - TEXT("SRB2 Midi Playback: Wait For Buffer Return")); - - if (!hBufferReturnEvent) - { - I_GetLastErrorMsgBox(); - nomidimusic = true; - return; - } - - if ((mmrRetVal = midiStreamOpen(&hStream, - &uMIDIDeviceID, - (DWORD)1, (DWORD_PTR)MidiStreamCallback/*NULL*/, - (DWORD)0, - CALLBACK_FUNCTION /*CALLBACK_NULL*/)) != MMSYSERR_NOERROR) - { - CONS_Printf("I_RegisterSong: midiStreamOpen FAILED\n"); - MidiErrorMessageBox(mmrRetVal); - nomidimusic = true; - return; - } - - // stream buffers are initially unallocated (set em NULL) - for (idx = 0; idx < NUM_STREAM_BUFFERS; idx++) - ZeroMemory (&ciStreamBuffers[idx].mhBuffer, sizeof (MIDIHDR)); - // ---------------------------------------------------------------------- - - // register exit code - I_AddExitFunc(I_ShutdownMIDIMusic); - - bMusicStarted = true; -} - -// --------------- -// I_InitMusic -// --------------- -void I_InitMusic(void) -{ - I_InitDigMusic(); - I_InitMIDIMusic(); -} - -// --------------- -// I_ShutdownDigMusic -// --------------- -void I_ShutdownDigMusic(void) -{ - CONS_Printf("I_ShutdownDigMusic: \n"); - -#ifdef FMODSOUND - if (!nodigimusic && FSOUND_GetError() != FMOD_ERR_UNINITIALIZED) - { - if (FSOUND_GetError() != FMOD_ERR_NONE && FSOUND_GetError() != FMOD_ERR_CHANNEL_ALLOC && FSOUND_GetError() != FMOD_ERR_MEDIAPLAYER) - if (devparm) CONS_Printf("FMOD(Shutdown,Unknown): %s\n", FMOD_ErrorString(FSOUND_GetError())); - if (mod) - { - if (FMUSIC_IsPlaying(mod)) - if (!FMUSIC_StopSong(mod)) - if (devparm) CONS_Printf("FMOD(Shutdown,FMUSIC_StopSong): %s\n", FMOD_ErrorString(FSOUND_GetError())); - if (!FMUSIC_FreeSong(mod)) - if (devparm) CONS_Printf("FMOD(Shutdown,FMUSIC_FreeSong): %s\n", FMOD_ErrorString(FSOUND_GetError())); - } - if (fmus) - { - if (FSOUND_IsPlaying(fsoundchannel)) - if (!FSOUND_Stream_Stop(fmus)) - if (devparm) CONS_Printf("FMOD(Shutdown,FSOUND_Stream_Stop): %s\n", FMOD_ErrorString(FSOUND_GetError())); - if (!FSOUND_Stream_Close(fmus)) - if (devparm) CONS_Printf("FMOD(Shutdown,FSOUND_Stream_Close): %s\n", FMOD_ErrorString(FSOUND_GetError())); - } - FSOUND_Close(); - remove("fmod.tmp"); // Delete the temp file - //if (!FSOUND_StopSound(FSOUND_ALL)) - //if (FSOUND_GetError() != FMOD_ERR_MEDIAPLAYER) CONS_Printf("FMOD(Shutdown,FSOUND_StopSound): %s\n", FMOD_ErrorString(FSOUND_GetError())); - //FMUSIC_StopAllSongs(); - //if (FSOUND_GetError() != FMOD_ERR_NONE && FSOUND_GetError() != FMOD_ERR_MEDIAPLAYER) CONS_Printf("FMOD(Shutdown,FMUSIC_StopAllSongs): %s\n", FMOD_ErrorString(FSOUND_GetError())); - } -#endif -} - -// --------------- -// I_ShutdownMIDIMusic -// --------------- -void I_ShutdownMIDIMusic(void) -{ - DWORD idx; - MMRESULT mmrRetVal; - HGLOBAL lp = NULL; - - CONS_Printf("I_ShutdownMIDIMusic: \n"); - - if (nomidimusic) - return; - - if (!bMusicStarted) - return; - - if (hStream) - { - I_StopSong (SPECIAL_HANDLE_CLEANMIDI); - } - - Mid2StreamConverterCleanup(); - Mid2StreamFreeBuffers(); - - // Free our stream buffers - for (idx = 0; idx < NUM_STREAM_BUFFERS; idx++) - { - if (ciStreamBuffers[idx].mhBuffer.lpData) - { - //GlobalFreePtr(ciStreamBuffers[idx].mhBuffer.lpData); - lp = GlobalPtrHandle(ciStreamBuffers[idx].mhBuffer.lpData); - GlobalUnlock(lp); - GlobalFree(lp); - ciStreamBuffers[idx].mhBuffer.lpData = NULL; - } - } - - if (hStream) - { - if ((mmrRetVal = midiStreamClose(hStream)) != MMSYSERR_NOERROR) - MidiErrorMessageBox(mmrRetVal); - hStream = NULL; - } - - CloseHandle(hBufferReturnEvent); - - bMusicStarted = false; -} - -// --------------- -// I_ShutdownMusic -// --------------- -void I_ShutdownMusic(void) -{ - if (!nodigimusic) - I_ShutdownDigMusic(); - - if (!nomidimusic) - I_ShutdownMIDIMusic(); -} - -// -------------------- -// SetAllChannelVolumes -// Given a percent in tenths of a percent, sets volume on all channels to -// reflect the new value. -// -------------------- -static void SetAllChannelVolumes(DWORD dwVolumePercent) -{ - DWORD dwEvent, dwStatus, dwVol, idx; - MMRESULT mmrRetVal; - - if (!bMidiPlaying) - return; - - for (idx = 0, dwStatus = MIDI_CTRLCHANGE; idx < MAX_MIDI_IN_TRACKS; idx++, dwStatus++) - { - dwVol = (dwVolCache[idx] * dwVolumePercent) / 1000; - //CONS_Printf("channel %d vol %d\n", idx, dwVol); - dwEvent = dwStatus | ((DWORD)MIDICTRL_VOLUME << 8) - | ((DWORD)dwVol << 16); - if ((mmrRetVal = midiOutShortMsg((HMIDIOUT)hStream, dwEvent)) - != MMSYSERR_NOERROR) - { - MidiErrorMessageBox(mmrRetVal); - return; - } - } -} - - -// ---------------- -// I_SetMusicVolume -// Set the midi output volume -// ---------------- -void I_SetMIDIMusicVolume(INT32 volume) -{ - MMRESULT mmrRetVal; - int iVolume; - - if (nomidimusic) - return; - - if (bMidiCanSetVolume) - { - // method A - // current volume is 0-31, we need 0-0xFFFF in each word (left/right channel) - iVolume = (volume << 11) | (volume << 27); - if ((mmrRetVal = midiOutSetVolume ((HMIDIOUT)(size_t)uMIDIDeviceID, iVolume)) != MMSYSERR_NOERROR) - { - CONS_Printf("I_SetMusicVolume: couldn't set volume\n"); - MidiErrorMessageBox(mmrRetVal); - } - } - else - { - // method B - dwVolumePercent = (volume * 1000) / 32; - SetAllChannelVolumes (dwVolumePercent); - } -} - -void I_SetDigMusicVolume(INT32 volume) -{ -#ifdef FMODSOUND - if (volume != -1) - fmodvol = (volume<<3)+(volume>>2); - if (!nodigimusic) - { - if (FSOUND_GetError() != FMOD_ERR_NONE && FSOUND_GetError() != FMOD_ERR_CHANNEL_ALLOC && FSOUND_GetError() != FMOD_ERR_MEDIAPLAYER) - if (devparm) CONS_Printf("FMOD(Volume,Unknown): %s\n", FMOD_ErrorString(FSOUND_GetError())); - if (mod) - { - if (FMUSIC_GetType(mod) != FMUSIC_TYPE_NONE) - { - if (!FMUSIC_SetMasterVolume(mod, fmodvol) && devparm) - CONS_Printf("FMOD(Volume,FMUSIC_SetMasterVolume): %s\n", - FMOD_ErrorString(FSOUND_GetError())); - } - else if (devparm) - CONS_Printf("FMOD(Volume,FMUSIC_GetType): %s\n", FMOD_ErrorString(FSOUND_GetError())); - } - if (fmus) - { - if (!FSOUND_SetVolume(fsoundchannel, fmodvol)) - if (devparm) CONS_Printf("FMOD(Volume,FSOUND_SetVolume): %s\n", FMOD_ErrorString(FSOUND_GetError())); - } - } -#else - (void)volume; -#endif -} - - -// ---------- -// I_PlaySong -// Note: doesn't use the handle, would be useful to switch between mid's after -// some trigger (would do several RegisterSong, then PlaySong the chosen one) -// ---------- -boolean I_PlaySong(INT32 handle, INT32 bLooping) -{ - MMRESULT mmrRetVal; - - if (nomidimusic) - return false; - -#ifdef DEBUGMIDISTREAM - CONS_Printf("I_PlaySong: looping %d\n", bLooping); -#endif - - // unpause the song first if it was paused - if (bMidiPaused) - I_PauseSong(handle); - - // Clear the status of our callback so it will handle - // MOM_DONE callbacks once more - uCallbackStatus = 0; - bMidiPlaying = FALSE; - if ((mmrRetVal = midiStreamRestart(hStream)) != MMSYSERR_NOERROR) - { - MidiErrorMessageBox(mmrRetVal); - Mid2StreamConverterCleanup(); - Mid2StreamFreeBuffers(); - midiStreamClose(hStream); - //I_Error("I_PlaySong: midiStreamRestart error"); - midiStreamOpen(&hStream, &uMIDIDeviceID, (DWORD)1, - (DWORD_PTR)MidiStreamCallback/*NULL*/, - (DWORD)0, CALLBACK_FUNCTION /*CALLBACK_NULL*/); - } - else bMidiPlaying = TRUE; - bMidiLooped = bLooping; - return bMidiPlaying; -} - - -// ----------- -// I_PauseSong -// calls midiStreamPause() to pause the midi playback -// ----------- -void I_PauseSong (INT32 handle) -{ - (void)handle; -#ifdef FMODSOUND - if (!nodigimusic) - { - if (FSOUND_GetError() != FMOD_ERR_NONE && FSOUND_GetError() != FMOD_ERR_CHANNEL_ALLOC && FSOUND_GetError() != FMOD_ERR_MEDIAPLAYER) - if (devparm) CONS_Printf("FMOD(Pause,Unknown): %s\n", FMOD_ErrorString(FSOUND_GetError())); - if (mod) - { - if (!FMUSIC_GetPaused(mod)) - if (!FMUSIC_SetPaused(mod, true)) - if (devparm) CONS_Printf("FMOD(Pause,FMUSIC_SetPaused): %s\n", FMOD_ErrorString(FSOUND_GetError())); - } - if (fmus) - { - if (!FSOUND_GetPaused(fsoundchannel)) - if (!FSOUND_SetPaused(fsoundchannel, true)) - if (devparm) CONS_Printf("FMOD(Pause,FSOUND_SetPaused): %s\n", FMOD_ErrorString(FSOUND_GetError())); - } - } -#endif - - if (nomidimusic) - return; - -#ifdef DEBUGMIDISTREAM - CONS_Printf("I_PauseSong: \n"); -#endif - - if (!bMidiPaused) - { - midiStreamPause(hStream); - bMidiPaused = true; - } -} - - -// ------------ -// I_ResumeSong -// un-pause the midi song with midiStreamRestart -// ------------ -void I_ResumeSong (INT32 handle) -{ - (void)handle; -#ifdef FMODSOUND - if (!nodigimusic) - { - if (FSOUND_GetError() != FMOD_ERR_NONE && FSOUND_GetError() != FMOD_ERR_CHANNEL_ALLOC && FSOUND_GetError() != FMOD_ERR_MEDIAPLAYER) - if (devparm) CONS_Printf("FMOD(Resume,Unknown): %s\n", FMOD_ErrorString(FSOUND_GetError())); - if (mod != NULL) - { - if (FMUSIC_GetPaused(mod)) - if (!FMUSIC_SetPaused(mod, false)) - if (devparm) CONS_Printf("FMOD(Resume,FMUSIC_SetPaused): %s\n", FMOD_ErrorString(FSOUND_GetError())); - } - if (fmus != NULL) - { - if (FSOUND_GetPaused(fsoundchannel)) - if (!FSOUND_SetPaused(fsoundchannel, false)) - if (devparm) CONS_Printf("FMOD(Resume,FSOUND_SetPaused): %s\n", FMOD_ErrorString(FSOUND_GetError())); - } - } -#endif - - if (nomidimusic) - return; - -#ifdef DEBUGMIDISTREAM - CONS_Printf("I_ResumeSong: \n"); -#endif - - if (bMidiPaused) - { - midiStreamRestart(hStream); - bMidiPaused = false; - } -} - - -// ---------- -// I_StopSong -// ---------- -// faB: -1999 is a special handle here, it means we stop the midi when exiting -// Legacy, this will do a midiOutReset() for a more 'sure' midi off. -void I_StopSong(INT32 handle) -{ - MMRESULT mmrRetVal; - - if (nomidimusic) - return; - -#ifdef DEBUGMIDISTREAM - CONS_Printf("I_StopSong: \n"); -#endif - - if (bMidiPlaying || (uCallbackStatus != STATUS_CALLBACKDEAD)) - { - bMidiPlaying = bMidiPaused = FALSE; - if (uCallbackStatus != STATUS_CALLBACKDEAD && - uCallbackStatus != STATUS_WAITINGFOREND) - uCallbackStatus = STATUS_KILLCALLBACK; - - //CONS_Printf("a: %d\n",I_GetTime()); - if ((mmrRetVal = midiStreamStop(hStream)) != MMSYSERR_NOERROR) - { - MidiErrorMessageBox(mmrRetVal); - return; - } - - //faB: if we don't call midiOutReset() seems we have to stop the buffers - // ourselves (or it doesn't play anymore) - if (!bMidiPaused && (handle != SPECIAL_HANDLE_CLEANMIDI)) - { - midiStreamPause(hStream); - } - //CONS_Printf("b: %d\n",I_GetTime()); - else - //faB: this damn call takes 1 second and a half !!! still do it on exit - // to be sure everything midi is cleaned as much as possible - if (handle == SPECIAL_HANDLE_CLEANMIDI) - { - if ((mmrRetVal = midiOutReset((HMIDIOUT)hStream)) != MMSYSERR_NOERROR) - { - MidiErrorMessageBox(mmrRetVal); - return; - } - } - //CONS_Printf("c: %d\n",I_GetTime()); - - // Wait for the callback thread to release this thread, which it will do by - // calling SetEvent() once all buffers are returned to it - if ((devparm) - && (WaitForSingleObject(hBufferReturnEvent, DEBUG_CALLBACK_TIMEOUT) - == WAIT_TIMEOUT)) - { - // Note, this is a risky move because the callback may be genuinely busy, but - // when we're debugging, it's safer and faster than freezing the application, - // which leaves the MIDI device locked up and forces a system reset... - CONS_Printf("Timed out waiting for MIDI callback\n"); - uCallbackStatus = STATUS_CALLBACKDEAD; - } - //CONS_Printf("d: %d\n",I_GetTime()); - } - - if (uCallbackStatus == STATUS_CALLBACKDEAD) - { - uCallbackStatus = 0; - Mid2StreamConverterCleanup(); - Mid2StreamFreeBuffers(); - //faB: we could close the stream here and re-open later to avoid - // a little quirk in mmsystem (see DirectX6 mstream note) - midiStreamClose(hStream); - midiStreamOpen(&hStream, &uMIDIDeviceID, (DWORD)1, - (DWORD_PTR)MidiStreamCallback/*NULL*/, - (DWORD)0, CALLBACK_FUNCTION /*CALLBACK_NULL*/); - } -} - -void I_StopDigSong(void) -{ -#ifdef FMODSOUND - if (!nodigimusic) - { - if (FSOUND_GetError() != FMOD_ERR_NONE && FSOUND_GetError() != FMOD_ERR_INVALID_PARAM && FSOUND_GetError() != FMOD_ERR_CHANNEL_ALLOC && FSOUND_GetError() != FMOD_ERR_MEDIAPLAYER) - if (devparm) CONS_Printf("FMOD(Stop,Unknown): %s\n", FMOD_ErrorString(FSOUND_GetError())); - if (mod) - { - if (FMUSIC_IsPlaying(mod)) - { - if (!FMUSIC_StopSong(mod)) - if (devparm) CONS_Printf("FMOD(Stop,FMUSIC_StopSong): %s\n", FMOD_ErrorString(FSOUND_GetError())); - } - } - if (fmus) - { - if (FSOUND_IsPlaying(fsoundchannel)) - { - if (!FSOUND_Stream_Stop(fmus)) - if (devparm) CONS_Printf("FMOD(Stop,FSOUND_Stream_Stop): %s\n", FMOD_ErrorString(FSOUND_GetError())); - } - } - //if (!FSOUND_StopSound(FSOUND_ALL)) - //if (FSOUND_GetError() != FMOD_ERR_MEDIAPLAYER) CONS_Printf("FMOD(Stop,FSOUND_StopSound): %s\n", FMOD_ErrorString(FSOUND_GetError())); - //FMUSIC_StopAllSongs(); - //if (FSOUND_GetError() != FMOD_ERR_NONE && FSOUND_GetError() != FMOD_ERR_MEDIAPLAYER) CONS_Printf("FMOD(Stop,FMUSIC_StopAllSongs): %s\n", FMOD_ErrorString(FSOUND_GetError())); - } -#endif -} - -void I_UnRegisterSong(INT32 handle) -{ - handle = 0; - if (nomidimusic) - return; - - //faB: we might free here whatever is allocated per-music - // (but we don't cause I hate malloc's) - Mid2StreamConverterCleanup(); - -#ifdef DEBUGMIDISTREAM - CONS_Printf("I_UnregisterSong: \n"); -#endif -} - -int I_SetSongSpeed(unsigned int speed) -{ -#ifdef FMODSOUND - if (music_disabled || nodigimusic) - return 0; //there no music or FMOD is not loaded - - if((!fmus || !FSOUND_IsPlaying(fsoundchannel)) && (!mod || !FMUSIC_IsPlaying(mod))) - return 0; //there no FMOD music playing - - if (speed == 0) - return 1; //yes, we can set the speed - - if (fmus) - { - if (FSOUND_IsPlaying(fsoundchannel) - && !FSOUND_SetFrequency(fsoundchannel,(int)(((float)speed*(float)fsoundfreq)/100.0f))) - { - if (devparm) - CONS_Printf("FMOD(ChangeSpeed,FSOUND_SetFrequency): %s\n", FMOD_ErrorString(FSOUND_GetError())); - } - else - return 1; - } - else if (mod) - { - if (FMUSIC_IsPlaying(mod) - && !FMUSIC_SetMasterSpeed(mod,(float)speed/100.0f)) - { - if (devparm) - CONS_Printf("FMOD(ChangeSpeed,FMUSIC_SetMasterSpeed): %s\n", FMOD_ErrorString(FSOUND_GetError())); - } - else - return 1; - } -#else - (void)speed; -#endif - return 0; -} - -// Special FMOD support Tails 11-21-2002 -boolean I_StartDigSong(const char *musicname, INT32 looping) -{ -#ifdef FMODSOUND - char filename[9]; - void *data; - int lumpnum; - - if (FSOUND_GetError() != FMOD_ERR_NONE && FSOUND_GetError() != FMOD_ERR_CHANNEL_ALLOC && - FSOUND_GetError() != FMOD_ERR_MEDIAPLAYER && FSOUND_GetError() != FMOD_ERR_INVALID_PARAM) - if (devparm) CONS_Printf("FMOD(Start,Unknown): %s\n", FMOD_ErrorString(FSOUND_GetError())); - - if (fmus) - { - if (FSOUND_IsPlaying(fsoundchannel)) - if (!FSOUND_Stream_Stop(fmus)) - if (devparm) CONS_Printf("FMOD(Start,FSOUND_Stream_Stop): %s\n", FMOD_ErrorString(FSOUND_GetError())); - if (!FSOUND_Stream_Close(fmus)) - if (devparm) CONS_Printf("FMOD(Start,FSOUND_Stream_Close): %s\n", FMOD_ErrorString(FSOUND_GetError())); - fsoundchannel = -1; - fmus = NULL; - } - if (mod) - { - if (FMUSIC_IsPlaying(mod)) - if (!FMUSIC_StopSong(mod)) - if (devparm) CONS_Printf("FMOD(Start,FMUSIC_StopSong): %s\n", FMOD_ErrorString(FSOUND_GetError())); - if (!FMUSIC_FreeSong(mod)) - if (devparm) CONS_Printf("FMOD(Start,FMUSIC_FreeSong): %s\n", FMOD_ErrorString(FSOUND_GetError())); - mod = NULL; - } - //if (!FSOUND_StopSound(FSOUND_ALL)) - //if (FSOUND_GetError() != FMOD_ERR_MEDIAPLAYER) CONS_Printf("FMOD(Start,FSOUND_StopSound): %s\n", FMOD_ErrorString(FSOUND_GetError())); - //FMUSIC_StopAllSongs(); - //if (FSOUND_GetError() != FMOD_ERR_NONE && FSOUND_GetError() != FMOD_ERR_MEDIAPLAYER) CONS_Printf("FMOD(Start,FMUSIC_StopAllSongs): %s\n", FMOD_ErrorString(FSOUND_GetError())); - - // Create the filename we need - sprintf(filename, "o_%s", musicname); - - lumpnum = W_CheckNumForName(filename); - - if (lumpnum == -1) - { - // Graue 02-29-2004: don't worry about missing music, there might still be a MIDI - return false; // No music found. Oh well! - } - - data = W_CacheLumpName (filename, PU_CACHE); - - I_SaveMemToFile (data, W_LumpLength(lumpnum), "fmod.tmp"); - - Z_Free(data); - - mod = FMUSIC_LoadSong("fmod.tmp"); - - if (FSOUND_GetError() != FMOD_ERR_NONE) - { - if (FSOUND_GetError() != FMOD_ERR_FILE_FORMAT) - if (devparm) CONS_Printf("FMOD(Start,FMUSIC_LoadSong): %s\n", FMOD_ErrorString(FSOUND_GetError())); - - if (mod) - { - if (FMUSIC_IsPlaying(mod)) - if (!FMUSIC_StopSong(mod)) - if (devparm) CONS_Printf("FMOD(Start,FMUSIC_StopSong): %s\n", FMOD_ErrorString(FSOUND_GetError())); - if (!FMUSIC_FreeSong(mod)) - if (devparm) CONS_Printf("FMOD(Start,FMUSIC_FreeSong): %s\n", FMOD_ErrorString(FSOUND_GetError())); - mod = NULL; - } - } - - if (mod) - { - if (!FMUSIC_SetLooping(mod, (signed char)looping)) - { - if (devparm) CONS_Printf("FMOD(Start,FMUSIC_SetLooping): %s\n", FMOD_ErrorString(FSOUND_GetError())); - } -// else if (FMUSIC_GetType(mod) == FMUSIC_TYPE_MOD || FMUSIC_GetType(mod) == FMUSIC_TYPE_S3M) -// { -// if (!FMUSIC_SetPanSeperation(mod, 0.85f)) /* 15% crossover */ -// CONS_Printf("FMOD(Start,FMUSIC_SetPanSeperation): %s\n", FMOD_ErrorString(FSOUND_GetError())); -// } - else if (!FMUSIC_SetPanSeperation(mod, 0.0f)) - { - if (devparm) CONS_Printf("FMOD(Start,FMUSIC_SetPanSeperation): %s\n", FMOD_ErrorString(FSOUND_GetError())); - } - } - else - { - fmus = FSOUND_Stream_OpenFile("fmod.tmp", ((looping) ? (FSOUND_LOOP_NORMAL) : (0)),0); - if (fmus == NULL) - { - if (devparm) CONS_Printf("FMOD(Start,FSOUND_Stream_Open): %s\n", FMOD_ErrorString(FSOUND_GetError())); - return false; - } - } - - // Scan the Ogg Vorbis file for the COMMENT= field for a custom loop point - if (fmus && looping) - { - int scan; - char *dataum; - char looplength[64]; - unsigned int loopstart = 0; - int newcount = 0; - const int freq = 44100; - int lumplength = W_LumpLength(lumpnum); - int length = FSOUND_Stream_GetLengthMs(fmus); - - if (length == 0) - { - if (devparm) CONS_Printf("FMOD(Start,FSOUND_Stream_GetLengthMs): %s\n", FMOD_ErrorString(FSOUND_GetError())); - } - else - { - //freq = FSOUND_GetFrequency(fsoundchannel); - - data = W_CacheLumpName (filename, PU_CACHE); - - dataum = (char *)data; - - for (scan = 0;scan < lumplength; scan++) - { - if (*dataum++ == 'C'){ - if (*dataum++ == 'O'){ - if (*dataum++ == 'M'){ - if (*dataum++ == 'M'){ - if (*dataum++ == 'E'){ - if (*dataum++ == 'N'){ - if (*dataum++ == 'T'){ - if (*dataum++ == '='){ - if (*dataum++ == 'L'){ - if (*dataum++ == 'O'){ - if (*dataum++ == 'O'){ - if (*dataum++ == 'P'){ - if (*dataum++ == 'P'){ - if (*dataum++ == 'O'){ - if (*dataum++ == 'I'){ - if (*dataum++ == 'N'){ - if (*dataum++ == 'T'){ - if (*dataum++ == '=') - { - - while (*dataum != 1 && newcount != 63) - { - looplength[newcount++] = *dataum++; - } - - looplength[newcount] = '\n'; - - loopstart = atoi(looplength); - } - else - dataum--;} - else - dataum--;} - else - dataum--;} - else - dataum--;} - else - dataum--;} - else - dataum--;} - else - dataum--;} - else - dataum--;} - else - dataum--;} - else - dataum--;} - else - dataum--;} - else - dataum--;} - else - dataum--;} - else - dataum--;} - else - dataum--;} - else - dataum--;} - else - dataum--;} - } - - Z_Free(data); - } - - if (loopstart > 0) - { - const unsigned int loopend = (unsigned int)((freq/1000.0f)*length-(freq/1000.0f)); - //const unsigned int loopend = (((freq/2)*length)/500)-8; - if (!FSOUND_Stream_SetLoopPoints(fmus, loopstart, loopend) && devparm) - CONS_Printf("FMOD(Start,FSOUND_Stream_SetLoopPoints): %s\n", - FMOD_ErrorString(FSOUND_GetError())); - } - } - - /* - PLAY SONG - */ - if (mod) - { - if (FMUSIC_PlaySong(mod)) - { - fsoundchannel = -1; - I_SetDigMusicVolume(-1); - return true; - } - else - { - if (devparm) - CONS_Printf("FMOD(Start,FMUSIC_PlaySong): %s\n", - FMOD_ErrorString(FSOUND_GetError())); - return false; - } - } - if (fmus) - { - fsoundchannel = FSOUND_Stream_PlayEx(FSOUND_FREE, fmus, NULL, TRUE); - - if (fsoundchannel == -1) - { - if (devparm) - CONS_Printf("FMOD(Start,FSOUND_Stream_PlayEx): %s\n", - FMOD_ErrorString(FSOUND_GetError())); - return false; - } - else if (!FSOUND_SetPaused(fsoundchannel, FALSE)) - { - if (devparm) - CONS_Printf("FMOD(Start,FSOUND_SetPaused): %s\n", - FMOD_ErrorString(FSOUND_GetError())); - return false; - } - - I_SetDigMusicVolume(-1); - fsoundfreq = FSOUND_GetFrequency(fsoundchannel); - return true; - } -#else - (void)musicname; - (void)looping; -#endif - return false; - -///////////////////////////////////////////////////////////////////////////////// -} - -// -------------- -// I_RegisterSong -// Prepare a song for playback -// - setup midi stream buffers, and activate the callback procedure -// which will continually fill the buffers with new data -// -------------- - -INT32 I_RegisterSong(void *data, int len) -{ - char *pMidiFileData = NULL; // MIDI music buffer to be played or NULL - - if (nomidimusic) - return 1; - if (!data || !len) - return 0; - -#ifdef DEBUGMIDISTREAM - CONS_Printf("I_RegisterSong: \n"); -#endif - // check for MID format file - if (!memcmp(data, "MThd", 4)) - pMidiFileData = data; - else - { - CONS_Printf("Music lump is not MID music format\n"); - return 0; - } - -#ifdef DEBUGMIDISTREAM - I_SaveMemToFile(pMidiFileData, len, "debug.mid"); -#endif - - // setup midi stream buffer - if (StreamBufferSetup((LPBYTE)pMidiFileData, len)) - { - Mid2StreamConverterCleanup(); - I_Error("I_RegisterSong: StreamBufferSetup FAILED"); - } - - return 1; -} - -// ----------------- -// StreamBufferSetup -// This function uses the filename stored in the global character array to -// open a MIDI file. Then it goes about converting at least the first part of -// that file into a midiStream buffer for playback. -// ----------------- - -// ----------------- -// StreamBufferSetup -// - returns TRUE if a problem occurs -// ----------------- -static BOOL StreamBufferSetup(LPBYTE pMidiData, size_t iMidiSize) -{ - MMRESULT mmrRetVal; - MIDIPROPTIMEDIV mptd; - BOOL bFoundEnd = FALSE; - int dwConvertFlag, nChkErr, idx; - -#ifdef DEBUGMIDISTREAM - if (hStream == NULL) - I_Error("StreamBufferSetup: hStream is NULL!"); -#endif - - // pause midi stream before manipulating the buffers - midiStreamPause(hStream); - - // allocate the stream buffers (only once) - for (idx = 0; idx < NUM_STREAM_BUFFERS; idx++) - { - ciStreamBuffers[idx].mhBuffer.dwBufferLength = OUT_BUFFER_SIZE; - if (!ciStreamBuffers[idx].mhBuffer.lpData) - { - ciStreamBuffers[idx].mhBuffer.lpData = GlobalAllocPtr(GHND, OUT_BUFFER_SIZE); - if (!ciStreamBuffers[idx].mhBuffer.lpData) - return FALSE; - } - } - - // returns TRUE in case of conversion error - if (Mid2StreamConverterInit(pMidiData, iMidiSize)) - return TRUE; - - // Initialize the volume cache array to some pre-defined value - for (idx = 0; idx < MAX_MIDI_IN_TRACKS; idx++) - dwVolCache[idx] = VOL_CACHE_INIT; - - mptd.cbStruct = sizeof (mptd); - mptd.dwTimeDiv = ifs.dwTimeDivision; - if ((mmrRetVal = midiStreamProperty(hStream, (LPBYTE)&mptd, MIDIPROP_SET|MIDIPROP_TIMEDIV)) - != MMSYSERR_NOERROR) - { - MidiErrorMessageBox(mmrRetVal); - return TRUE; - } - - nEmptyBuffers = 0; - dwConvertFlag = CONVERTF_RESET; - - for (nCurrentBuffer = 0; nCurrentBuffer < NUM_STREAM_BUFFERS; nCurrentBuffer++) - { - // Tell the converter to convert up to one entire buffer's length of output - // data. Also, set a flag so it knows to reset any saved state variables it - // may keep from call to call. - ciStreamBuffers[nCurrentBuffer].dwStartOffset = 0; - ciStreamBuffers[nCurrentBuffer].dwMaxLength = OUT_BUFFER_SIZE; - ciStreamBuffers[nCurrentBuffer].tkStart = 0; - ciStreamBuffers[nCurrentBuffer].bTimesUp = FALSE; - - if ((nChkErr = Mid2StreamConvertToBuffer(dwConvertFlag, &ciStreamBuffers[nCurrentBuffer])) - != CONVERTERR_NOERROR) - { - if (nChkErr == CONVERTERR_DONE) - bFoundEnd = TRUE; - else - { - CONS_Printf("StreamBufferSetup: initial conversion pass failed\n"); - return TRUE; - } - } - ciStreamBuffers[nCurrentBuffer].mhBuffer.dwBytesRecorded - = ciStreamBuffers[nCurrentBuffer].dwBytesRecorded; - - if (!bBuffersPrepared) - { - if ((mmrRetVal = midiOutPrepareHeader((HMIDIOUT)hStream, - &ciStreamBuffers[nCurrentBuffer].mhBuffer, sizeof (MIDIHDR))) != MMSYSERR_NOERROR) - { - MidiErrorMessageBox(mmrRetVal); - return TRUE; - } - } - if ((mmrRetVal = midiStreamOut(hStream, &ciStreamBuffers[nCurrentBuffer].mhBuffer, - sizeof (MIDIHDR))) != MMSYSERR_NOERROR) - { - MidiErrorMessageBox(mmrRetVal); - break; - } - dwConvertFlag = 0; - - if (bFoundEnd) - break; - } - - bBuffersPrepared = TRUE; - nCurrentBuffer = 0; - - // MIDI volume - dwVolumePercent = (cv_midimusicvolume.value * 1000) / 32; - if (hStream) - SetAllChannelVolumes(dwVolumePercent); - - return FALSE; -} - -// ---------------- -// SetChannelVolume -// Call here delayed by MIDI stream callback, to adapt the volume event of the -// midi stream to our own set volume percentage. -// ---------------- -void I_SetMidiChannelVolume(DWORD dwChannel, DWORD dwVolumePercent) -{ - DWORD dwEvent, dwVol; - MMRESULT mmrRetVal; - - if (!bMidiPlaying) - return; - - dwVol = (dwVolCache[dwChannel] * dwVolumePercent) / 1000; - dwEvent = MIDI_CTRLCHANGE|dwChannel|((DWORD)MIDICTRL_VOLUME << 8)|((DWORD)dwVol << 16); - if ((mmrRetVal = midiOutShortMsg((HMIDIOUT)hStream, dwEvent)) != MMSYSERR_NOERROR) - { -#ifdef DEBUGMIDISTREAM - MidiErrorMessageBox(mmrRetVal); -#endif - return; - } -} - -// ------------------ -// MidiStreamCallback -// This is the callback handler which continually refills MIDI data buffers -// as they're returned to us from the audio subsystem. -// ------------------ -static void CALLBACK MidiStreamCallback(HMIDIIN hMidi, UINT uMsg, DWORD dwInstance, - DWORD dwParam1, DWORD dwParam2) -{ - MMRESULT mmrRetVal; - int nChkErr; - MIDIEVENT* pme; - MIDIHDR* pmh; - - hMidi = NULL; - dwParam1 = dwParam2 = dwInstance = 0; - switch (uMsg) - { - case MOM_DONE: - // dwParam1 is LPMIDIHDR - if (uCallbackStatus == STATUS_CALLBACKDEAD) - return; - - nEmptyBuffers++; - - // we reached end of song, but we wait until all the buffers are returned - if (uCallbackStatus == STATUS_WAITINGFOREND) - { - if (nEmptyBuffers < NUM_STREAM_BUFFERS) - return; - else - { - // stop the song when end reached (was not looping) - uCallbackStatus = STATUS_CALLBACKDEAD; - SetEvent(hBufferReturnEvent); - I_StopSong(0); - return; - } - } - - // This flag is set whenever the callback is waiting for all buffers to come back. - if (uCallbackStatus == STATUS_KILLCALLBACK) - { - // Count NUM_STREAM_BUFFERS-1 being returned for the last time - if (nEmptyBuffers < NUM_STREAM_BUFFERS) - return; - // Then send a stop message when we get the last buffer back... - else - { - // Change the status to callback dead - uCallbackStatus = STATUS_CALLBACKDEAD; - SetEvent(hBufferReturnEvent); - return; - } - } - - dwProgressBytes += ciStreamBuffers[nCurrentBuffer].mhBuffer.dwBytesRecorded; - - // ------------------------------------------------- - // Fill an available buffer with audio data again... - // ------------------------------------------------- - - if (bMidiPlaying && nEmptyBuffers) - { - ciStreamBuffers[nCurrentBuffer].dwStartOffset = 0; - ciStreamBuffers[nCurrentBuffer].dwMaxLength = OUT_BUFFER_SIZE; - ciStreamBuffers[nCurrentBuffer].tkStart = 0; - ciStreamBuffers[nCurrentBuffer].dwBytesRecorded = 0; - ciStreamBuffers[nCurrentBuffer].bTimesUp = FALSE; - - if ((nChkErr = Mid2StreamConvertToBuffer(0, &ciStreamBuffers[nCurrentBuffer])) - != CONVERTERR_NOERROR) - { - if (nChkErr == CONVERTERR_DONE) - { - // Don't include this one in the count - uCallbackStatus = STATUS_WAITINGFOREND; - return; - } - else - { - // We're not in the main thread, so we can't call I_Error() now. - // Log the error message out, and post exit message. - CONS_Printf("MidiStreamCallback(): conversion pass failed!\n"); - PostMessage(hWndMain, WM_CLOSE, 0, 0); - return; - } - } - - ciStreamBuffers[nCurrentBuffer].mhBuffer.dwBytesRecorded - = ciStreamBuffers[nCurrentBuffer].dwBytesRecorded; - - if ((mmrRetVal = midiStreamOut(hStream, &ciStreamBuffers[nCurrentBuffer].mhBuffer, - sizeof (MIDIHDR))) != MMSYSERR_NOERROR) - { - MidiErrorMessageBox(mmrRetVal); - Mid2StreamConverterCleanup(); - return; - } - - nCurrentBuffer = (nCurrentBuffer + 1) % NUM_STREAM_BUFFERS; - nEmptyBuffers--; - } - - break; - case MOM_POSITIONCB: - pmh = (MIDIHDR*)(size_t)dwParam1; - pme = (MIDIEVENT*)(pmh->lpData + pmh->dwOffset); - if (MIDIEVENT_TYPE(pme->dwEvent) == MIDI_CTRLCHANGE) - { -#ifdef DEBUGMIDISTREAM - if (MIDIEVENT_DATA1(pme->dwEvent) == MIDICTRL_VOLUME_LSB) - { - CONS_Printf("Got an LSB volume event\n"); - PostMessage(hWndMain, WM_CLOSE, 0, 0); // can't I_Error() here - break; - } -#endif - // this is meant to respond to our own intention, from mid2strm.c - if (MIDIEVENT_DATA1(pme->dwEvent) != MIDICTRL_VOLUME) - break; - - // Mask off the channel number and cache the volume data byte - dwVolCache[MIDIEVENT_CHANNEL(pme->dwEvent)] = MIDIEVENT_VOLUME(pme->dwEvent); - // call SetChannelVolume() later to adjust MIDI volume control message to our - // own current volume level. - PostMessage(hWndMain, WM_MSTREAM_UPDATEVOLUME, - MIDIEVENT_CHANNEL(pme->dwEvent), 0L); - } - break; - default: - break; - } - - return; -} - -// --------------------- -// Mid2StreamFreeBuffers -// This function unprepares and frees all our buffers -- something we must -// do to work around a bug in MMYSYSTEM that prevents a device from playing -// back properly unless it is closed and reopened after each stop. -// --------------------- -static void Mid2StreamFreeBuffers(void) -{ - DWORD idx; - MMRESULT mmrRetVal; - - if (bBuffersPrepared) - { - for (idx = 0; idx < NUM_STREAM_BUFFERS; idx++) - { - if ((mmrRetVal = midiOutUnprepareHeader((HMIDIOUT)hStream, - &ciStreamBuffers[idx].mhBuffer, sizeof (MIDIHDR))) != MMSYSERR_NOERROR) - { - MidiErrorMessageBox(mmrRetVal); - } - } - bBuffersPrepared = FALSE; - } - - // Don't free the stream buffers here, but rather allocate them once at startup, - // and free them at shutdown. -} diff --git a/src/win32ce/win_sys.c b/src/win32ce/win_sys.c deleted file mode 100644 index 3b6a47258..000000000 --- a/src/win32ce/win_sys.c +++ /dev/null @@ -1,3542 +0,0 @@ -// Emacs style mode select -*- C++ -*- -//----------------------------------------------------------------------------- -// -// Copyright (C) 1998-2000 by DooM Legacy Team. -// -// 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 2 -// 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. -//----------------------------------------------------------------------------- -/// \file -/// \brief win32 system i/o -/// -/// Startup & Shutdown routines for music,sound,timer,keyboard,... -/// Signal handler to trap errors and exit cleanly. - -#include "../doomdef.h" -#include -#include -#include -#include -#include -#include -#include -#include - -#include - -#include "../m_misc.h" -#include "../i_video.h" -#include "../i_sound.h" -#include "../i_system.h" - -#include "../d_net.h" -#include "../g_game.h" - -#include "../d_main.h" - -#include "../m_argv.h" - -#include "../w_wad.h" -#include "../z_zone.h" -#include "../g_input.h" - -#include "../keys.h" - -#include "../screen.h" - -// Wheel support for Win95/WinNT3.51 -#include - -// Taken from Win98/NT4.0 -#ifndef SM_MOUSEWHEELPRESENT -#define SM_MOUSEWHEELPRESENT 75 -#endif - -#ifndef MSH_MOUSEWHEEL -#ifdef UNICODE -#define MSH_MOUSEWHEEL L"MSWHEEL_ROLLMSG" -#else -#define MSH_MOUSEWHEEL "MSWHEEL_ROLLMSG" -#endif -#endif - -#include "win_main.h" -#include "../i_joy.h" - -#define DIRECTINPUT_VERSION 0x700 -// Force dinput.h to generate old DX3 headers. -#define DXVERSION_NTCOMPATIBLE 0x0300 -#include - -#include "fabdxlib.h" - -#ifdef __DEBUG__ -#undef NDEBUG -#endif - -/// \brief max number of joystick buttons -#define JOYBUTTONS_MAX 32 // rgbButtons[32] -/// \brief max number of joystick button events -#define JOYBUTTONS_MIN min((JOYBUTTONS),(JOYBUTTONS_MAX)) - -/// \brief max number of joysick axies -#define JOYAXISSET_MAX 4 // (lX, lY), (lZ,lRx), (lRy, lRz), rglSlider[2] is very diff -/// \brief max number ofjoystick axis events -#define JOYAXISSET_MIN min((JOYAXISSET),(JOYAXISSET_MAX)) - -/// \brief max number of joystick hats -#define JOYHATS_MAX 4 // rgdwPOV[4]; -/// \brief max number of joystick hat events -#define JOYHATS_MIN min((JOYHATS),(JOYHATS_MAX)) - -/// \brief max number of mouse buttons -#define MOUSEBUTTONS_MAX 8 // 8 bit of BYTE and DIMOFS_BUTTON7 -/// \brief max number of muse button events -#define MOUSEBUTTONS_MIN min((MOUSEBUTTONS),(MOUSEBUTTONS_MAX)) - -// ================== -// DIRECT INPUT STUFF -// ================== -BOOL bDX0300; // if true, we created a DirectInput 0x0300 version -static LPDIRECTINPUT lpDI = NULL; -static LPDIRECTINPUTDEVICE lpDIK = NULL; // Keyboard -static LPDIRECTINPUTDEVICE lpDIM = NULL; // mice -static LPDIRECTINPUTDEVICE lpDIJ = NULL; // joystick 1P -static LPDIRECTINPUTEFFECT lpDIE[NumberofForces]; // joystick 1Es -static LPDIRECTINPUTDEVICE2 lpDIJA = NULL; // joystick 1I -static LPDIRECTINPUTDEVICE lpDIJ2 = NULL; // joystick 2P -static LPDIRECTINPUTEFFECT lpDIE2[NumberofForces]; // joystick 1Es -static LPDIRECTINPUTDEVICE2 lpDIJ2A = NULL;// joystick 2I - -// Do not execute cleanup code more than once. See Shutdown_xxx() routines. -UINT8 graphics_started = 0; -UINT8 keyboard_started = 0; -UINT8 sound_started = 0; -static boolean mouse_enabled = false; -static boolean joystick_detected = false; -static boolean joystick2_detected = false; - -static void I_ShutdownKeyboard(void); -static void I_GetKeyboardEvents(void); -static void I_ShutdownJoystick(void); -static void I_ShutdownJoystick2 (void); - -static boolean entering_con_command = false; - -// -// Why would this be system specific?? hmmmm.... -// -// it is for virtual reality system, next incoming feature :) -static ticcmd_t emptycmd; -ticcmd_t *I_BaseTiccmd(void) -{ - return &emptycmd; -} - -static ticcmd_t emptycmd2; -ticcmd_t *I_BaseTiccmd2(void) -{ - return &emptycmd2; -} - -// Allocates the base zone memory, -// this function returns a valid pointer and size, -// else it should interrupt the program immediately. -// -// now checks if mem could be allocated, this is still -// prehistoric... there's a lot to do here: memory locking, detection -// of win95 etc... -// - -BOOL win9x; - -/** \brief WinNT system platform -*/ -static BOOL winnt; - -static void I_DetectWin9x(void) -{ - OSVERSIONINFO osvi; - - osvi.dwOSVersionInfoSize = sizeof (OSVERSIONINFO); - GetVersionEx(&osvi); - - winnt = (osvi.dwPlatformId == VER_PLATFORM_WIN32_NT); - // 95 or 98 what the hell - win9x = true; -} - -// return free and total memory in the system -UINT32 I_GetFreeMem(UINT32* total) -{ - MEMORYSTATUS info; - - info.dwLength = sizeof (MEMORYSTATUS); - GlobalMemoryStatus(&info); - if (total) - *total = (ULONG)info.dwTotalPhys; - return (ULONG)info.dwAvailPhys; -} - -// --------- -// I_Profile -// Two little functions to profile our code using the high resolution timer -// --------- -static LARGE_INTEGER ProfileCount; -void I_BeginProfile(void) -{ - if (!QueryPerformanceCounter(&ProfileCount)) - I_Error("I_BeginProfile failed"); // can't profile without the high res timer -} - -// we're supposed to use this to measure very small amounts of time, -// that's why we return a DWORD and not a 64bit value -DWORD I_EndProfile(void) -{ - LARGE_INTEGER CurrTime; - DWORD ret; - if (!QueryPerformanceCounter (&CurrTime)) - I_Error("I_EndProfile failed"); - if (CurrTime.QuadPart - ProfileCount.QuadPart > (LONGLONG)0xFFFFFFFFUL) - I_Error("I_EndProfile overflow"); - ret = (DWORD)(CurrTime.QuadPart - ProfileCount.QuadPart); - // we can call I_EndProfile() several time, I_BeginProfile() need be called just once - ProfileCount = CurrTime; - - return ret; -} - -// --------- -// I_GetTime -// Use the High Resolution Timer if available, -// else use the multimedia timer which has 1 millisecond precision on Windowz 95, -// but lower precision on Windows NT -// --------- -static long hacktics = 0; // used locally for keyboard repeat keys -static DWORD starttickcount = 0; // hack for win2k time bug - -tic_t I_GetTime(void) -{ - tic_t newtics = 0; - - if (!starttickcount) // high precision timer - { - LARGE_INTEGER currtime; // use only LowPart if high resolution counter is not available - static LARGE_INTEGER basetime = {{0, 0}}; - - // use this if High Resolution timer is found - static LARGE_INTEGER frequency; - - if (!basetime.LowPart) - { - if (!QueryPerformanceFrequency(&frequency)) - frequency.QuadPart = 0; - else - QueryPerformanceCounter(&basetime); - } - - if (frequency.LowPart && QueryPerformanceCounter(&currtime)) - { - newtics = (int)((currtime.QuadPart - basetime.QuadPart) * TICRATE - / frequency.QuadPart); - } - else - { - currtime.LowPart = timeGetTime(); - if (!basetime.LowPart) - basetime.LowPart = currtime.LowPart; - newtics = ((currtime.LowPart - basetime.LowPart)/(1000/TICRATE)); - } - } - else - newtics = (GetTickCount() - starttickcount)/(1000/TICRATE); - - hacktics = newtics; // a local counter for keyboard repeat key - return newtics; -} - - -void I_Sleep(void) -{ - if (cv_sleep.value != -1) - Sleep(cv_sleep.value); -} - - -// should move to i_video -void I_WaitVBL(INT32 count) -{ - count = 0; -} - -// this is probably to activate the 'loading' disc icon -// it should set a flag, that I_FinishUpdate uses to know -// whether it draws a small 'loading' disc icon on the screen or not -// -// also it should explicitly draw the disc because the screen is -// possibly not refreshed while loading -// -void I_BeginRead(void) {} - -// see above, end the 'loading' disc icon, set the flag false -// -void I_EndRead(void) {} - -// =========================================================================================== -// EVENTS -// =========================================================================================== -static inline BOOL I_ReadyConsole(HANDLE ci) -{ - DWORD gotinput; - if (ci == (HANDLE)-1) return FALSE; - if (WaitForSingleObject(ci,0) != WAIT_OBJECT_0) return FALSE; - if (GetFileType(ci) != FILE_TYPE_CHAR) return FALSE; - return (GetNumberOfConsoleInputEvents(ci, &gotinput) && gotinput); -} - -static inline VOID I_GetConsoleEvents(VOID) -{ - event_t ev = {0,0,0,0}; - HANDLE ci = GetStdHandle(STD_INPUT_HANDLE); - HANDLE co = GetStdHandle(STD_OUTPUT_HANDLE); - CONSOLE_SCREEN_BUFFER_INFO CSBI; - INPUT_RECORD input; - DWORD t; - - while (I_ReadyConsole(ci) && ReadConsoleInput(ci, &input, 1, &t) && t) - { - memset(&ev,0x00,sizeof (ev)); - switch (input.EventType) - { - case KEY_EVENT: - if (input.Event.KeyEvent.bKeyDown) - { - ev.type = ev_console; - entering_con_command = true; - switch (input.Event.KeyEvent.wVirtualKeyCode) - { - case VK_ESCAPE: - case VK_TAB: - ev.data1 = KEY_NULL; - break; - case VK_SHIFT: - ev.data1 = KEY_SHIFT; - break; - case VK_RETURN: - entering_con_command = false; - // Fall through. - default: - ev.data1 = MapVirtualKey(input.Event.KeyEvent.wVirtualKeyCode,2); // convert in to char - } - if (co != (HANDLE)-1 && GetFileType(co) == FILE_TYPE_CHAR) - { - if (ev.data1 && ev.data1 != KEY_SHIFT) - { -#ifdef _UNICODE - WriteConsole(co, &input.Event.KeyEvent.uChar.UnicodeChar, 1, &t, NULL); -#else - WriteConsole(co, &input.Event.KeyEvent.uChar.AsciiChar, 1, &t, NULL); -#endif - } - if (input.Event.KeyEvent.wVirtualKeyCode == VK_BACK - && GetConsoleScreenBufferInfo(co,&CSBI)) - { - WriteConsoleOutputCharacterA(co, " ",1, CSBI.dwCursorPosition, &t); - } - } - } - else - { - ev.type = ev_keyup; - switch (input.Event.KeyEvent.wVirtualKeyCode) - { - case VK_SHIFT: - ev.data1 = KEY_SHIFT; - break; - default: - break; - } - } - if (ev.data1) D_PostEvent(&ev); - break; - case MOUSE_EVENT: - case WINDOW_BUFFER_SIZE_EVENT: - case MENU_EVENT: - case FOCUS_EVENT: - break; - } - } -} - -// ---------- -// I_GetEvent -// Post new events for all sorts of user-input -// ---------- -void I_GetEvent(void) -{ - I_GetConsoleEvents(); - I_GetKeyboardEvents(); - I_GetMouseEvents(); - I_GetJoystickEvents(); - I_GetJoystick2Events(); -} - -// ---------- -// I_OsPolling -// ---------- -void I_OsPolling(void) -{ - MSG msg; - HANDLE ci = GetStdHandle(STD_INPUT_HANDLE); - - // we need to dispatch messages to the window - // so the window procedure can respond to messages and PostEvent() for keys - // during D_SRB2Main startup. - // this one replaces the main loop of windows since I_OsPolling is called in the main loop - do - { - while (PeekMessage(&msg, NULL, 0, 0, PM_NOREMOVE)) - { - if (GetMessage(&msg, NULL, 0, 0)) - { - TranslateMessage(&msg); - DispatchMessage(&msg); - } - else // winspec : this is quit message - I_Quit(); - } - if (!appActive && !netgame && !I_ReadyConsole(ci)) - WaitMessage(); - } while (!appActive && !netgame && !I_ReadyConsole(ci)); - - // this is called by the network synchronization, - // check keys and allow escaping - I_GetEvent(); - - // reset "emulated keys" - gamekeydown[KEY_MOUSEWHEELUP] = 0; - gamekeydown[KEY_MOUSEWHEELDOWN] = 0; -} - -// =========================================================================================== -// TIMER -// =========================================================================================== - -static void I_ShutdownTimer(void) -{ - timeEndPeriod(1); -} - -// -// Installs the timer interrupt handler with timer speed as TICRATE. -// -#define TIMER_ID 1 -#define TIMER_RATE (1000/TICRATE) -void I_StartupTimer(void) -{ - // for win2k time bug - if (M_CheckParm("-gettickcount")) - { - starttickcount = GetTickCount(); - CONS_Printf("Using GetTickCount()\n"); - } - timeBeginPeriod(1); - I_AddExitFunc(I_ShutdownTimer); -} - -// =========================================================================================== -// EXIT CODE, ERROR HANDLING -// =========================================================================================== - -static int errorcount = 0; // phuck recursive errors -static int shutdowning = false; - -// -// Used to trap various signals, to make sure things get shut down cleanly. -// -#ifdef NDEBUG -static void signal_handler(int num) -{ - //static char msg[] = "oh no! back to reality!\r\n"; - const char *sigmsg; - char sigdef[64]; - - D_QuitNetGame(); // Fix server freezes - I_ShutdownSystem(); - - switch (num) - { - case SIGINT: - sigmsg = "interrupt"; - break; - case SIGILL: - sigmsg = "illegal instruction - invalid function image"; - break; - case SIGFPE: - sigmsg = "floating point exception"; - break; - case SIGSEGV: - sigmsg = "segment violation"; - break; - case SIGTERM: - sigmsg = "software termination signal from kill"; - break; - case SIGBREAK: - sigmsg = "Ctrl-Break sequence"; - break; - case SIGABRT: - sigmsg = "abnormal termination triggered by abort call"; - break; - default: - sprintf(sigdef, "signal number %d", num); - sigmsg = sigdef; - } - -#ifdef LOGMESSAGES - if (logstream != INVALID_HANDLE_VALUE) - { - I_OutputMsg("signal_handler() error: %s\r\n", sigmsg); - CloseHandle(logstream); - logstream = INVALID_HANDLE_VALUE; - } -#endif - - MessageBoxA(hWndMain, va("signal_handler(): %s", sigmsg), "SRB2 error", MB_OK|MB_ICONERROR); - - signal(num, SIG_DFL); // default signal action - raise(num); -} -#endif - -// -// put an error message (with format) on stderr -// -void I_OutputMsg(const char *fmt, ...) -{ - HANDLE co = GetStdHandle(STD_OUTPUT_HANDLE); - DWORD bytesWritten; - va_list argptr; - char txt[8192]; - - va_start(argptr,fmt); - vsprintf(txt, fmt, argptr); - va_end(argptr); - - OutputDebugStringA(txt); - if (co != (HANDLE)-1) - { - if (GetFileType(co) == FILE_TYPE_CHAR) - { - static COORD coordNextWrite = {0,0}; - char *oldLines = NULL; - DWORD oldLength = 0; - CONSOLE_SCREEN_BUFFER_INFO csbi; - - // Save the lines that we're going to obliterate. - GetConsoleScreenBufferInfo(co, &csbi); - oldLength = csbi.dwSize.X * (csbi.dwCursorPosition.Y - coordNextWrite.Y) + csbi.dwCursorPosition.X - coordNextWrite.X; - - if(oldLength > 0) - { - char *blank = malloc(oldLength); - oldLines = malloc(oldLength); - if(!oldLines || !blank) return; - - ReadConsoleOutputCharacterA(co, oldLines, oldLength, coordNextWrite, &bytesWritten); - - // Move to where we what to print - which is where we would've been, - // had console input not been in the way, - SetConsoleCursorPosition(co, coordNextWrite); - - // Blank out. - memset(blank, ' ', oldLength); - WriteConsoleA(co, blank, oldLength, &bytesWritten, NULL); - free(blank); - - // And back to where we want to print again. - SetConsoleCursorPosition(co, coordNextWrite); - } - - // Actually write the string now! - WriteConsoleA(co, txt, (DWORD)strlen(txt), &bytesWritten, NULL); - - // Next time, output where we left off. - GetConsoleScreenBufferInfo(co, &csbi); - coordNextWrite = csbi.dwCursorPosition; - - // Restore what was overwritten. - if(oldLines && entering_con_command) - { - WriteConsoleA(co, oldLines, oldLength, &bytesWritten, NULL); - free(oldLines); - } - } - else // Redirected to a file. - WriteFile(co, txt, (DWORD)strlen(txt), &bytesWritten, NULL); - } - -#ifdef LOGMESSAGES - if (logstream != (HANDLE)-1) - WriteFile (logstream, txt, (DWORD)strlen(txt), &bytesWritten, NULL); -#endif -} - -// display error messy after shutdowngfx -// -void I_Error(const char *error, ...) -{ - va_list argptr; - char txt[8192]; - - // added 11-2-98 recursive error detecting - if (shutdowning) - { - errorcount++; - // try to shutdown each subsystem separately - if (errorcount == 5) - I_ShutdownGraphics(); - if (errorcount == 6) - I_ShutdownSystem(); - if (errorcount == 7) - { - M_SaveConfig(NULL); - G_SaveGameData(); - } - if (errorcount > 20) - { - // Don't print garbage - va_start(argptr,error); - vsprintf(txt, error, argptr); - va_end(argptr); - - MessageBoxA(hWndMain, txt, "SRB2 Recursive Error", MB_OK|MB_ICONERROR); - exit(-1); // recursive errors detected - } - } - shutdowning = true; - - // put message to stderr - va_start(argptr, error); - wvsprintfA(txt, error, argptr); - va_end(argptr); - - CONS_Printf("I_Error(): %s\n", txt); - - // uncomment this line to print to stderr as well - //wsprintf(stderr, "I_Error(): %s\n", txt); - - // saving one time is enough! - if (!errorcount) - { - M_SaveConfig(NULL); // save game config, cvars.. - G_SaveGameData(); - } - - // save demo, could be useful for debug - // NOTE: demos are normally not saved here. - if (demorecording) - G_CheckDemoStatus(); - - D_QuitNetGame(); - - // shutdown everything that was started - I_ShutdownSystem(); - -#ifdef LOGMESSAGES - if (logstream != INVALID_HANDLE_VALUE) - { - CloseHandle(logstream); - logstream = INVALID_HANDLE_VALUE; - } -#endif - - MessageBoxA(hWndMain, txt, "SRB2 Error", MB_OK|MB_ICONERROR); - - exit(-1); -} - -static inline VOID ShowEndTxt(HANDLE co) -{ - int i; - UINT16 j, att = 0; - int nlflag = 1; - CONSOLE_SCREEN_BUFFER_INFO backupcon; - COORD resizewin = {80,-1}; - DWORD bytesWritten; - CHAR let = 0; - UINT16 *text; - void *data; - int endoomnum = W_GetNumForName("ENDOOM"); - //HANDLE ci = GetStdHandle(STD_INPUT_HANDLE); - - /* get the lump with the text */ - data = text = W_CacheLumpNum(endoomnum, PU_CACHE); - - backupcon.wAttributes = FOREGROUND_RED|FOREGROUND_GREEN|FOREGROUND_BLUE; // Just in case - GetConsoleScreenBufferInfo(co, &backupcon); //Store old state - resizewin.Y = backupcon.dwSize.Y; - if (backupcon.dwSize.X < resizewin.X) - SetConsoleScreenBufferSize(co, resizewin); - - for (i = 1; i <= 80*25; i++) // print 80x25 text and deal with the attributes too - { - j = (UINT16)(*text >> 8); // attribute first - if (j != att) // attribute changed? - { - att = j; // save current attribute - SetConsoleTextAttribute(co, j); //set fg and bg color for buffer - } - - let = (char)(*text++ & 0xff); // now the text - WriteConsoleA(co, &let, 1, &bytesWritten, NULL); - - if (nlflag && !(i % 80) && backupcon.dwSize.X > resizewin.X) // do we need a nl? - { - att = backupcon.wAttributes; - SetConsoleTextAttribute(co, att); // all attributes off - WriteConsoleA(co, "\n", 1, &bytesWritten, NULL); - } - } - SetConsoleTextAttribute(co, backupcon.wAttributes); // all attributes off - //if (nlflag) - // WriteConsoleA(co, "\n", 1, &bytesWritten, NULL); - - getchar(); //pause! - - Z_Free(data); -} - - -// -// I_Quit: shutdown everything cleanly, in reverse order of Startup. -// -void I_Quit(void) -{ - HANDLE co = GetStdHandle(STD_OUTPUT_HANDLE); - // when recording a demo, should exit using 'q', - // but sometimes we forget and use Alt+F4, so save here too. - if (demorecording) - G_CheckDemoStatus(); - - M_SaveConfig(NULL); // save game config, cvars.. - G_SaveGameData(); - - // maybe it needs that the ticcount continues, - // or something else that will be finished by I_ShutdownSystem(), - // so do it before. - D_QuitNetGame(); - - // shutdown everything that was started - I_ShutdownSystem(); - - if (shutdowning || errorcount) - I_Error("Error detected (%d)", errorcount); - -#ifdef LOGMESSAGES - if (logstream != INVALID_HANDLE_VALUE) - { - I_OutputMsg("I_Quit(): end of logstream.\r\n"); - CloseHandle(logstream); - logstream = INVALID_HANDLE_VALUE; - } -#endif - if (!M_CheckParm("-noendtxt") && W_CheckNumForName("ENDOOM")!=-1 - && co != INVALID_HANDLE_VALUE && GetFileType(co) == FILE_TYPE_CHAR) - { - printf("\r"); - ShowEndTxt(co); - } - fflush(stderr); - exit(0); -} - -// -------------------------------------------------------------------------- -// I_ShowLastError -// Displays a GetLastError() error message in a MessageBox -// -------------------------------------------------------------------------- -void I_GetLastErrorMsgBox(void) -{ - LPSTR lpMsgBuf = NULL; - - FormatMessageA(FORMAT_MESSAGE_ALLOCATE_BUFFER|FORMAT_MESSAGE_FROM_SYSTEM, - NULL, GetLastError(), MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), // Default language - lpMsgBuf, 0, NULL); - - // Display the string. - MessageBoxA(NULL, lpMsgBuf, "GetLastError", MB_OK|MB_ICONINFORMATION); - - // put it in console too and log if any - CONS_Printf("Error: %s\n", lpMsgBuf); - - // Free the buffer. - LocalFree(lpMsgBuf); -} - -// =========================================================================================== -// CLEAN STARTUP & SHUTDOWN HANDLING, JUST CLOSE EVERYTHING YOU OPENED. -// =========================================================================================== -// -// -static quitfuncptr quit_funcs[MAX_QUIT_FUNCS] = -{ - NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, - NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL -}; - -// Adds a function to the list that need to be called by I_SystemShutdown(). -// -void I_AddExitFunc(void (*func)()) -{ - int c; - - for (c = 0; c < MAX_QUIT_FUNCS; c++) - { - if (!quit_funcs[c]) - { - quit_funcs[c] = func; - break; - } - } -} - -// Removes a function from the list that need to be called by I_SystemShutdown(). -// -void I_RemoveExitFunc(void (*func)()) -{ - int c; - - for (c = 0; c < MAX_QUIT_FUNCS; c++) - { - if (quit_funcs[c] == func) - { - while (c < MAX_QUIT_FUNCS - 1) - { - quit_funcs[c] = quit_funcs[c+1]; - c++; - } - quit_funcs[MAX_QUIT_FUNCS-1] = NULL; - break; - } - } -} - -// =========================================================================================== -// DIRECT INPUT HELPER CODE -// =========================================================================================== - -// Create a DirectInputDevice interface, -// create a DirectInputDevice2 interface if possible -static void CreateDevice2(LPDIRECTINPUT di, REFGUID pguid, LPDIRECTINPUTDEVICE* lpDEV, - LPDIRECTINPUTDEVICE2* lpDEV2) -{ - HRESULT hr, hr2; - LPDIRECTINPUTDEVICE lpdid1; - LPDIRECTINPUTDEVICE2 lpdid2 = NULL; - - hr = IDirectInput_CreateDevice(di, pguid, &lpdid1, NULL); - - if (SUCCEEDED(hr)) - { - // get Device2 but only if we are not in DirectInput version 3 - if (!bDX0300 && lpDEV2) - { - LPDIRECTINPUTDEVICE2 *rp = &lpdid2; - LPVOID *tp = (LPVOID *)rp; - hr2 = IDirectInputDevice_QueryInterface(lpdid1, &IID_IDirectInputDevice2, tp); - if (FAILED(hr2)) - { - CONS_Printf("\2Could not create IDirectInput device 2"); - lpdid2 = NULL; - } - } - } - else - I_Error("Could not create IDirectInput device"); - - *lpDEV = lpdid1; - if (lpDEV2) // only if we requested it - *lpDEV2 = lpdid2; -} - -// =========================================================================================== -// DIRECT INPUT MOUSE -// =========================================================================================== - -#define DI_MOUSE_BUFFERSIZE 16 // number of data elements in mouse buffer - -// -// Initialise the mouse. -// -static void I_ShutdownMouse(void); - -void I_StartupMouse(void) -{ - // this gets called when cv_usemouse is initted - // for the win32 version, we want to startup the mouse later -} - -static HANDLE mouse2filehandle = INVALID_HANDLE_VALUE; - -static void I_ShutdownMouse2(void) -{ - if (mouse2filehandle != INVALID_HANDLE_VALUE) - { - event_t event; - int i; - - SetCommMask(mouse2filehandle, 0); - - EscapeCommFunction(mouse2filehandle, CLRDTR); - EscapeCommFunction(mouse2filehandle, CLRRTS); - - PurgeComm(mouse2filehandle, PURGE_TXABORT|PURGE_RXABORT|PURGE_TXCLEAR|PURGE_RXCLEAR); - - CloseHandle(mouse2filehandle); - - // emulate the up of all mouse buttons - for (i = 0; i < MOUSEBUTTONS; i++) - { - event.type = ev_keyup; - event.data1 = KEY_2MOUSE1 + i; - D_PostEvent(&event); - } - - mouse2filehandle = INVALID_HANDLE_VALUE; - } -} - -#define MOUSECOMBUFFERSIZE 256 -static int handlermouse2x, handlermouse2y, handlermouse2buttons; - -static void I_PoolMouse2(void) -{ - UINT8 buffer[MOUSECOMBUFFERSIZE]; - COMSTAT ComStat; - DWORD dwErrorFlags, dwLength; - char dx, dy; - - static int bytenum; - static UINT8 combytes[4]; - DWORD i; - - ClearCommError(mouse2filehandle, &dwErrorFlags, &ComStat); - dwLength = min(MOUSECOMBUFFERSIZE, ComStat.cbInQue); - - if (dwLength > 0) - { - if (!ReadFile(mouse2filehandle, buffer, dwLength, &dwLength, NULL)) - { - CONS_Printf("\2Read Error on secondary mouse port\n"); - return; - } - - // parse the mouse packets - for (i = 0; i < dwLength; i++) - { - if ((buffer[i] & 64) == 64) - bytenum = 0; - - if (bytenum < 4) - combytes[bytenum] = buffer[i]; - bytenum++; - - if (bytenum == 1) - { - handlermouse2buttons &= ~3; - handlermouse2buttons |= ((combytes[0] & (32+16)) >>4); - } - else if (bytenum == 3) - { - dx = (char)((combytes[0] & 3) << 6); - dy = (char)((combytes[0] & 12) << 4); - dx = (char)(dx + combytes[1]); - dy = (char)(dy + combytes[2]); - handlermouse2x += dx; - handlermouse2y += dy; - } - else if (bytenum == 4) // fourth byte (logitech mouses) - { - if (buffer[i] & 32) - handlermouse2buttons |= 4; - else - handlermouse2buttons &= ~4; - } - } - } -} - -// secondary mouse doesn't use DirectX, therefore forget all about grabbing, acquire, etc. -void I_StartupMouse2(void) -{ - DCB dcb; - - if (mouse2filehandle != INVALID_HANDLE_VALUE) - I_ShutdownMouse2(); - - if (!cv_usemouse2.value) - return; - - if (mouse2filehandle != INVALID_HANDLE_VALUE) - { - // COM file handle - mouse2filehandle = CreateFileA(cv_mouse2port.string, GENERIC_READ|GENERIC_WRITE, - 0, // exclusive access - NULL, // no security attrs - OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL); - if (mouse2filehandle == INVALID_HANDLE_VALUE) - { - int e = GetLastError(); - if (e == 5) - CONS_Printf("\2Can't open %s: Access denied\n" - "The port is probably already used by another device (mouse, modem,...)\n", - cv_mouse2port.string); - else - CONS_Printf("\2Can't open %s: error %d\n", cv_mouse2port.string, e); - return; - } - } - - // buffers - SetupComm(mouse2filehandle, MOUSECOMBUFFERSIZE, MOUSECOMBUFFERSIZE); - - // purge buffers - PurgeComm(mouse2filehandle, PURGE_TXABORT|PURGE_RXABORT|PURGE_TXCLEAR|PURGE_RXCLEAR); - - // setup port to 1200 7N1 - dcb.DCBlength = sizeof (DCB); - - GetCommState(mouse2filehandle, &dcb); - - dcb.BaudRate = CBR_1200; - dcb.ByteSize = 7; - dcb.Parity = NOPARITY; - dcb.StopBits = ONESTOPBIT; - - dcb.fDtrControl = DTR_CONTROL_ENABLE; - dcb.fRtsControl = RTS_CONTROL_ENABLE; - - dcb.fBinary = dcb.fParity = TRUE; - - SetCommState(mouse2filehandle, &dcb); - - I_AddExitFunc(I_ShutdownMouse2); -} - -#define MAX_MOUSE_BTNS 5 -static int center_x, center_y; -static int old_mparms[3], new_mparms[3] = {0, 0, 1}; -static boolean restore_mouse = FALSE; -static int old_mouse_state = 0; -unsigned int MSHWheelMessage = 0; - -static void I_DoStartupSysMouse(void) -{ - boolean valid; - RECT w_rect; - - valid = SystemParametersInfo(SPI_GETMOUSE, 0, old_mparms, 0); - if (valid) - { - new_mparms[2] = old_mparms[2]; - restore_mouse = SystemParametersInfo(SPI_SETMOUSE, 0, new_mparms, 0); - } - - if (bAppFullScreen) - { - w_rect.top = 0; - w_rect.left = 0; - } - else - { - w_rect.top = windowPosY; - w_rect.left = windowPosX; - } - - w_rect.bottom = w_rect.top + VIDHEIGHT; - w_rect.right = w_rect.left + VIDWIDTH; - center_x = w_rect.left + (VIDWIDTH >> 1); - center_y = w_rect.top + (VIDHEIGHT >> 1); - SetCursor(NULL); - SetCursorPos(center_x, center_y); - SetCapture(hWndMain); - ClipCursor(&w_rect); -} - -static void I_ShutdownSysMouse(void) -{ - if (restore_mouse) - SystemParametersInfo(SPI_SETMOUSE, 0, old_mparms, 0); - ClipCursor(NULL); - ReleaseCapture(); -} - -void I_RestartSysMouse(void) -{ - if (nodinput) - { - I_ShutdownSysMouse(); - I_DoStartupSysMouse(); - } -} - -void I_GetSysMouseEvents(int mouse_state) -{ - int i; - event_t event; - int xmickeys = 0, ymickeys = 0; - POINT c_pos; - - for (i = 0; i < MAX_MOUSE_BTNS; i++) - { - // check if button pressed - if ((mouse_state & (1 << i)) && !(old_mouse_state & (1 << i))) - { - event.type = ev_keydown; - event.data1 = KEY_MOUSE1 + i; - D_PostEvent(&event); - } - // check if button released - if (!(mouse_state & (1 << i)) && (old_mouse_state & (1 << i))) - { - event.type = ev_keyup; - event.data1 = KEY_MOUSE1 + i; - D_PostEvent(&event); - } - } - old_mouse_state = mouse_state; - - // proceed mouse movements - GetCursorPos(&c_pos); - xmickeys = c_pos.x - center_x; - ymickeys = c_pos.y - center_y; - - if (xmickeys || ymickeys) - { - event.type = ev_mouse; - event.data1 = 0; - event.data2 = xmickeys; - event.data3 = -ymickeys; - D_PostEvent(&event); - SetCursorPos(center_x, center_y); - } -} - -// This is called just before entering the main game loop, -// when we are going fullscreen and the loading screen has finished. -void I_DoStartupMouse(void) -{ - DIPROPDWORD dip; - - // mouse detection may be skipped by setting usemouse false - if (!cv_usemouse.value || M_CheckParm("-nomouse")) - { - mouse_enabled = false; - return; - } - - if (nodinput) - { - CONS_Printf("\tMouse will not use DirectInput.\n"); - // System mouse input will be initiated by VID_SetMode - I_AddExitFunc(I_ShutdownMouse); - - MSHWheelMessage = RegisterWindowMessage(MSH_MOUSEWHEEL); - } - else if (!lpDIM) // acquire the mouse only once - { - CreateDevice2(lpDI, &GUID_SysMouse, &lpDIM, NULL); - - if (lpDIM) - { - if (FAILED(IDirectInputDevice_SetDataFormat(lpDIM, &c_dfDIMouse))) - I_Error("Couldn't set mouse data format"); - - // create buffer for buffered data - dip.diph.dwSize = sizeof (dip); - dip.diph.dwHeaderSize = sizeof (dip.diph); - dip.diph.dwObj = 0; - dip.diph.dwHow = DIPH_DEVICE; - dip.dwData = DI_MOUSE_BUFFERSIZE; - if (FAILED(IDirectInputDevice_SetProperty(lpDIM, DIPROP_BUFFERSIZE, &dip.diph))) - I_Error("Couldn't set mouse buffer size"); - - if (FAILED(IDirectInputDevice_SetCooperativeLevel(lpDIM, hWndMain, - DISCL_EXCLUSIVE|DISCL_FOREGROUND))) - { - I_Error("Couldn't set mouse coop level"); - } - I_AddExitFunc(I_ShutdownMouse); - } - else - I_Error("Couldn't create mouse input"); - } - - // if re-enabled while running, just set mouse_enabled true again, - // do not acquire the mouse more than once - mouse_enabled = true; -} - -// -// Shutdown Mouse DirectInput device -// -static void I_ShutdownMouse(void) -{ - int i; - event_t event; - - CONS_Printf("I_ShutdownMouse()\n"); - - if (lpDIM) - { - IDirectInputDevice_Unacquire(lpDIM); - IDirectInputDevice_Release(lpDIM); - lpDIM = NULL; - } - - // emulate the up of all mouse buttons - for (i = 0; i < MOUSEBUTTONS; i++) - { - event.type = ev_keyup; - event.data1 = KEY_MOUSE1 + i; - D_PostEvent(&event); - } - if (nodinput) - I_ShutdownSysMouse(); - - mouse_enabled = false; -} - -// -// Get buffered data from the mouse -// -void I_GetMouseEvents(void) -{ - DIDEVICEOBJECTDATA rgdod[DI_MOUSE_BUFFERSIZE]; - DWORD dwItems, d; - HRESULT hr; - - event_t event; - int xmickeys, ymickeys; - - if (mouse2filehandle != INVALID_HANDLE_VALUE) - { - //mouse movement - static UINT8 lastbuttons2 = 0; - - I_PoolMouse2(); - // post key event for buttons - if (handlermouse2buttons != lastbuttons2) - { - int i, j = 1, k; - k = handlermouse2buttons ^ lastbuttons2; // only changed bit to 1 - lastbuttons2 = (UINT8)handlermouse2buttons; - - for (i = 0; i < MOUSEBUTTONS; i++, j <<= 1) - if (k & j) - { - if (handlermouse2buttons & j) - event.type = ev_keydown; - else - event.type = ev_keyup; - event.data1 = KEY_2MOUSE1 + i; - D_PostEvent(&event); - } - } - - if (handlermouse2x || handlermouse2y) - { - event.type = ev_mouse2; - event.data1 = 0; - event.data2 = handlermouse2x<<1; - event.data3 = -handlermouse2y<<1; - handlermouse2x = 0; - handlermouse2y = 0; - - D_PostEvent(&event); - } - } - - if (!mouse_enabled || nodinput) - return; - -getBufferedData: - dwItems = DI_MOUSE_BUFFERSIZE; - hr = IDirectInputDevice_GetDeviceData(lpDIM, sizeof (DIDEVICEOBJECTDATA), rgdod, &dwItems, 0); - - // If data stream was interrupted, reacquire the device and try again. - if (hr == DIERR_INPUTLOST || hr == DIERR_NOTACQUIRED) - { - hr = IDirectInputDevice_Acquire(lpDIM); - if (SUCCEEDED(hr)) - goto getBufferedData; - } - - // We got buffered input, act on it - if (SUCCEEDED(hr)) - { - xmickeys = ymickeys = 0; - - // dwItems contains number of elements read (could be 0) - for (d = 0; d < dwItems; d++) - { - if (rgdod[d].dwOfs >= DIMOFS_BUTTON0 && - rgdod[d].dwOfs < DIMOFS_BUTTON0 + MOUSEBUTTONS) - { - if (rgdod[d].dwData & 0x80) // Button down - event.type = ev_keydown; - else - event.type = ev_keyup; // Button up - - event.data1 = rgdod[d].dwOfs - DIMOFS_BUTTON0 + KEY_MOUSE1; - D_PostEvent(&event); - } - else if (rgdod[d].dwOfs == DIMOFS_X) - xmickeys += rgdod[d].dwData; - else if (rgdod[d].dwOfs == DIMOFS_Y) - ymickeys += rgdod[d].dwData; - - else if (rgdod[d].dwOfs == DIMOFS_Z) - { - // z-axes the wheel - if ((int)rgdod[d].dwData > 0) - event.data1 = KEY_MOUSEWHEELUP; - else - event.data1 = KEY_MOUSEWHEELDOWN; - event.type = ev_keydown; - D_PostEvent(&event); - } - - } - - if (xmickeys || ymickeys) - { - event.type = ev_mouse; - event.data1 = 0; - event.data2 = xmickeys; - event.data3 = -ymickeys; - D_PostEvent(&event); - } - } -} - -// =========================================================================================== -// DIRECT INPUT JOYSTICK -// =========================================================================================== - -struct DIJoyInfo_s -{ - BYTE X,Y,Z,Rx,Ry,Rz,U,V; - LONG ForceAxises; -}; -typedef struct DIJoyInfo_s DIJoyInfo_t; - -// private info - static BYTE iJoyNum; // used by enumeration - static DIJoyInfo_t JoyInfo; - static BYTE iJoy2Num; - static DIJoyInfo_t JoyInfo2; - -//----------------------------------------------------------------------------- -// Name: EnumAxesCallback() -// Desc: Callback function for enumerating the axes on a joystick and counting -// each force feedback enabled axis -//----------------------------------------------------------------------------- -static BOOL CALLBACK EnumAxesCallback(const DIDEVICEOBJECTINSTANCE* pdidoi, - VOID* pContext) -{ - DWORD* pdwNumForceFeedbackAxis = (DWORD*) pContext; - - if ((pdidoi->dwFlags & DIDOI_FFACTUATOR) != 0) - (*pdwNumForceFeedbackAxis)++; - - return DIENUM_CONTINUE; -} - - -static HRESULT SetupForceTacile(LPDIRECTINPUTDEVICE2 DJI, LPDIRECTINPUTEFFECT *DJE, DWORD FFAXIS, FFType EffectType,REFGUID EffectGUID) -{ - HRESULT hr; - DIEFFECT eff; - DWORD rgdwAxes[2] = { DIJOFS_X, DIJOFS_Y }; - LONG rglDirection[2] = { 0, 0 }; - DICONSTANTFORCE cf = { 0 }; // LONG lMagnitude - DIRAMPFORCE rf = {0,0}; // LONG lStart, lEnd; - DIPERIODIC pf = {0,0,0,0}; - ZeroMemory(&eff, sizeof (eff)); - if (FFAXIS > 2) - FFAXIS = 2; //up to 2 FFAXIS - eff.dwSize = sizeof (DIEFFECT); - eff.dwFlags = DIEFF_CARTESIAN | DIEFF_OBJECTOFFSETS; // Cartesian and data format offsets - eff.dwDuration = INFINITE; - eff.dwSamplePeriod = 0; - eff.dwGain = DI_FFNOMINALMAX; - eff.dwTriggerButton = DIEB_NOTRIGGER; - eff.dwTriggerRepeatInterval = 0; - eff.cAxes = FFAXIS; - eff.rgdwAxes = rgdwAxes; - eff.rglDirection = rglDirection; - eff.lpEnvelope = NULL; - eff.lpvTypeSpecificParams = NULL; - if (EffectType == ConstantForce) - { - eff.cbTypeSpecificParams = sizeof (cf); - eff.lpvTypeSpecificParams = &cf; - } - else if (EffectType == RampForce) - { - eff.cbTypeSpecificParams = sizeof (rf); - eff.lpvTypeSpecificParams = &rf; - } - else if (EffectType >= SquareForce && SawtoothDownForce >= EffectType) - { - eff.cbTypeSpecificParams = sizeof (pf); - eff.lpvTypeSpecificParams = &pf; - } -#if (DIRECTINPUT_VERSION >= 0x0600) - //eff.dwStartDelay = 0; -#endif - - // Create the prepared effect - if (FAILED(hr = IDirectInputDevice2_CreateEffect(DJI, EffectGUID, - &eff, DJE, NULL))) - { - return hr; - } - - if (NULL == *DJE) - return E_FAIL; - - return hr; -} - -static BOOL CALLBACK DIEnumEffectsCallback1(LPCDIEFFECTINFO pdei, LPVOID pvRef) -{ - LPDIRECTINPUTEFFECT *DJE = pvRef; - if (DIEFT_GETTYPE(pdei->dwEffType) == DIEFT_CONSTANTFORCE) - { - if (SUCCEEDED(SetupForceTacile(lpDIJA,DJE, JoyInfo.ForceAxises, ConstantForce, &pdei->guid))) - return DIENUM_STOP; - } - if (DIEFT_GETTYPE(pdei->dwEffType) == DIEFT_RAMPFORCE) - { - if (SUCCEEDED(SetupForceTacile(lpDIJA,DJE, JoyInfo.ForceAxises, RampForce, &pdei->guid))) - return DIENUM_STOP; - } - return DIENUM_CONTINUE; -} - -static BOOL CALLBACK DIEnumEffectsCallback2(LPCDIEFFECTINFO pdei, LPVOID pvRef) -{ - LPDIRECTINPUTEFFECT *DJE = pvRef; - if (DIEFT_GETTYPE(pdei->dwEffType) == DIEFT_CONSTANTFORCE) - { - if (SUCCEEDED(SetupForceTacile(lpDIJ2A,DJE, JoyInfo2.ForceAxises, ConstantForce, &pdei->guid))) - return DIENUM_STOP; - } - if (DIEFT_GETTYPE(pdei->dwEffType) == DIEFT_RAMPFORCE) - { - if (SUCCEEDED(SetupForceTacile(lpDIJ2A,DJE, JoyInfo2.ForceAxises, RampForce, &pdei->guid))) - return DIENUM_STOP; - } - return DIENUM_CONTINUE; -} - -static REFGUID DIETable[] = -{ - &GUID_ConstantForce, //ConstantForce - &GUID_RampForce, //RampForce - &GUID_Square, //SquareForce - &GUID_Sine, //SineForce - &GUID_Triangle, //TriangleForce - &GUID_SawtoothUp, //SawtoothUpForce - &GUID_SawtoothDown, //SawtoothDownForce - (REFGUID)-1, //NumberofForces -}; - -static HRESULT SetupAllForces(LPDIRECTINPUTDEVICE2 DJI, LPDIRECTINPUTEFFECT DJE[], DWORD FFAXIS) -{ - FFType ForceType = EvilForce; - if (DJI == lpDIJA) - { - IDirectInputDevice2_EnumEffects(DJI,DIEnumEffectsCallback1,&DJE[ConstantForce],DIEFT_CONSTANTFORCE); - IDirectInputDevice2_EnumEffects(DJI,DIEnumEffectsCallback1,&DJE[RampForce],DIEFT_RAMPFORCE); - } - else if (DJI == lpDIJA) - { - IDirectInputDevice2_EnumEffects(DJI,DIEnumEffectsCallback2,&DJE[ConstantForce],DIEFT_CONSTANTFORCE); - IDirectInputDevice2_EnumEffects(DJI,DIEnumEffectsCallback2,&DJE[RampForce],DIEFT_RAMPFORCE); - } - for (ForceType = SquareForce; ForceType > NumberofForces && DIETable[ForceType] != (REFGUID)-1; ForceType++) - if (DIETable[ForceType]) - SetupForceTacile(DJI,&DJE[ForceType], FFAXIS, ForceType, DIETable[ForceType]); - return S_OK; -} - -static void LimitEffect(LPDIEFFECT eff, FFType EffectType) -{ - LPDICONSTANTFORCE pCF = eff->lpvTypeSpecificParams; - LPDIPERIODIC pDP= eff->lpvTypeSpecificParams; - if (eff->rglDirection) - { - } -/* if (eff->dwDuration != INFINITE && eff->dwDuration < 0) - { - eff->dwDuration = 0; - }*/ - if (eff->dwGain != 0) - { - if (eff->dwGain > DI_FFNOMINALMAX) - eff->dwGain = DI_FFNOMINALMAX; - //else if (eff->dwGain < -DI_FFNOMINALMAX) - // eff->dwGain = DI_FFNOMINALMAX; - } - if (EffectType == ConstantForce && pCF->lMagnitude) - { - } - else if (EffectType >= SquareForce && SawtoothDownForce >= EffectType && pDP) - { - } - -} - -static HRESULT SetForceTacile(LPDIRECTINPUTEFFECT SDIE, const JoyFF_t *FF,DWORD FFAXIS, FFType EffectType) -{ - DIEFFECT eff; - HRESULT hr; - LONG Magnitude; - LONG rglDirection[2] = { 0, 0 }; - DICONSTANTFORCE cf = { 0 }; // LONG lMagnitude - DIRAMPFORCE rf = {0,0}; // LONG lStart, lEnd; - DIPERIODIC pf = {0,0,0,0}; - if (!FF) - IDirectInputEffect_Stop(SDIE); - Magnitude = FF->Magnitude; - ZeroMemory(&eff, sizeof (eff)); - eff.dwSize = sizeof (eff); - //DIEP_START - eff.dwFlags = DIEFF_CARTESIAN | DIEFF_OBJECTOFFSETS; // Cartesian and data format offsets - //DIEP_DURATION - eff.dwDuration = FF->Duration; - //DIEP_GAIN - eff.dwGain = FF->Gain; - //DIEP_DIRECTION - eff.rglDirection = rglDirection; - //DIEP_TYPESPECIFICPARAMS - if (FFAXIS > 1) - { - double dMagnitude; - dMagnitude = (double)Magnitude; - dMagnitude = hypot(dMagnitude, dMagnitude); - Magnitude = (DWORD)dMagnitude; - rglDirection[0] = FF->ForceX; - rglDirection[1] = FF->ForceY; - } - if (EffectType == ConstantForce) - { - cf.lMagnitude = Magnitude; - eff.cbTypeSpecificParams = sizeof (cf); - eff.lpvTypeSpecificParams = &cf; - } - else if (EffectType == RampForce) - { - rf.lStart = FF->Start; - rf.lEnd = FF->End; - eff.cbTypeSpecificParams = sizeof (rf); - eff.lpvTypeSpecificParams = &rf; - } - else if (EffectType >= SquareForce && SawtoothDownForce >= EffectType) - { - pf.dwMagnitude = Magnitude; - pf.lOffset = FF->Offset; - pf.dwPhase = FF->Phase; - pf.dwPeriod = FF->Period; - eff.cbTypeSpecificParams = sizeof (pf); - eff.lpvTypeSpecificParams = &pf; - } - - LimitEffect(&eff, EffectType); - - hr = IDirectInputEffect_SetParameters(SDIE, &eff, - DIEP_START|DIEP_DURATION|DIEP_GAIN|DIEP_DIRECTION|DIEP_TYPESPECIFICPARAMS); - return hr; -} - -void I_Tactile(FFType Type, const JoyFF_t *Effect) -{ - if (!lpDIJA) return; - if (FAILED(IDirectInputDevice2_Acquire(lpDIJA))) - return; - if (Type == EvilForce) - IDirectInputDevice2_SendForceFeedbackCommand(lpDIJA,DISFFC_STOPALL); - if (Type <= EvilForce || Type > NumberofForces || !lpDIE[Type]) - return; - SetForceTacile(lpDIE[Type], Effect, JoyInfo.ForceAxises, Type); -} - -void I_Tactile2(FFType Type, const JoyFF_t *Effect) -{ - if (!lpDIJ2A) return; - if (FAILED(IDirectInputDevice2_Acquire(lpDIJ2A))) - return; - if (Type == EvilForce) - IDirectInputDevice2_SendForceFeedbackCommand(lpDIJ2A,DISFFC_STOPALL); - if (Type <= EvilForce || Type > NumberofForces || !lpDIE2[Type]) - return; - SetForceTacile(lpDIE2[Type],Effect, JoyInfo2.ForceAxises, Type); -} - -// ------------------ -// SetDIDwordProperty (HELPER) -// Set a DWORD property on a DirectInputDevice. -// ------------------ -static HRESULT SetDIDwordProperty(LPDIRECTINPUTDEVICE pdev, - REFGUID guidProperty, - DWORD dwObject, - DWORD dwHow, - DWORD dwValue) -{ - DIPROPDWORD dipdw; - - dipdw.diph.dwSize = sizeof (dipdw); - dipdw.diph.dwHeaderSize = sizeof (dipdw.diph); - dipdw.diph.dwObj = dwObject; - dipdw.diph.dwHow = dwHow; - dipdw.dwData = dwValue; - - return IDirectInputDevice_SetProperty(pdev, guidProperty, &dipdw.diph); -} - - -// --------------- -// DIEnumJoysticks -// There is no such thing as a 'system' joystick, contrary to mouse, -// we must enumerate and choose one joystick device to use -// --------------- -static BOOL CALLBACK DIEnumJoysticks (LPCDIDEVICEINSTANCE lpddi, - LPVOID pvRef) //cv_usejoystick -{ - LPDIRECTINPUTDEVICE pdev; - DIPROPRANGE diprg; - DIDEVCAPS caps; - BOOL bUseThisOne = FALSE; - - iJoyNum++; - - //faB: if cv holds a string description of joystick, the value from atoi() is 0 - // else, the value was probably set by user at console to one of the previously - // enumerated joysticks - if (((consvar_t *)pvRef)->value == iJoyNum -#ifndef _UNICODE - || !lstrcmpA(((consvar_t *)pvRef)->string, lpddi->tszProductName) -#endif - ) - bUseThisOne = TRUE; - - //CONS_Printf(" cv joy is %s\n", ((consvar_t *)pvRef)->string); - - // print out device name - CONS_Printf("%c%d: %s\n", - (bUseThisOne) ? '\2' : ' ', // show name in white if this is the one we will use - iJoyNum, - //(GET_DIDEVICE_SUBTYPE(lpddi->dwDevType) == DIDEVTYPEJOYSTICK_GAMEPAD) ? "Gamepad " : "Joystick", - lpddi->tszProductName); //, lpddi->tszInstanceName); - - // use specified joystick (cv_usejoystick.value in pvRef) - if (!bUseThisOne) - return DIENUM_CONTINUE; - - ((consvar_t *)pvRef)->value = iJoyNum; - if (IDirectInput_CreateDevice (lpDI, &lpddi->guidInstance, - &pdev, NULL) != DI_OK) - { - // if it failed, then we can't use this joystick for some - // bizarre reason. (Maybe the user unplugged it while we - // were in the middle of enumerating it.) So continue enumerating - CONS_Printf("DIEnumJoysticks(): CreateDevice FAILED\n"); - return DIENUM_CONTINUE; - } - - // get the Device capabilities - // - caps.dwSize = sizeof (DIDEVCAPS_DX3); - if (FAILED(IDirectInputDevice_GetCapabilities (pdev, &caps))) - { - CONS_Printf("DIEnumJoysticks(): GetCapabilities FAILED\n"); - IDirectInputDevice_Release (pdev); - return DIENUM_CONTINUE; - } - if (!(caps.dwFlags & DIDC_ATTACHED)) // should be, since we enumerate only attached devices - return DIENUM_CONTINUE; - - Joystick.bJoyNeedPoll = ((caps.dwFlags & DIDC_POLLEDDATAFORMAT) != 0); - - if (caps.dwFlags & DIDC_FORCEFEEDBACK) - JoyInfo.ForceAxises = 0; - else - JoyInfo.ForceAxises = -1; - - Joystick.bGamepadStyle = (GET_DIDEVICE_SUBTYPE(caps.dwDevType) == DIDEVTYPEJOYSTICK_GAMEPAD); - //DEBUG CONS_Printf("Gamepad: %d\n", Joystick.bGamepadStyle); - - - CONS_Printf("Capabilities: %d axes, %d buttons, %d POVs, poll %d, Gamepad %d\n", - caps.dwAxes, caps.dwButtons, caps.dwPOVs, Joystick.bJoyNeedPoll, Joystick.bGamepadStyle); - - // Set the data format to "simple joystick" - a predefined data format - // - // A data format specifies which controls on a device we - // are interested in, and how they should be reported. - // - // This tells DirectInput that we will be passing a - // DIJOYSTATE structure to IDirectInputDevice::GetDeviceState. - if (IDirectInputDevice_SetDataFormat (pdev, &c_dfDIJoystick) != DI_OK) - { - CONS_Printf("DIEnumJoysticks(): SetDataFormat FAILED\n"); - IDirectInputDevice_Release (pdev); - return DIENUM_CONTINUE; - } - - // Set the cooperativity level to let DirectInput know how - // this device should interact with the system and with other - // DirectInput applications. - if (IDirectInputDevice_SetCooperativeLevel (pdev, hWndMain, - DISCL_EXCLUSIVE | DISCL_FOREGROUND) != DI_OK) - { - CONS_Printf("DIEnumJoysticks(): SetCooperativeLevel FAILED\n"); - IDirectInputDevice_Release (pdev); - return DIENUM_CONTINUE; - } - - // set the range of the joystick axis - diprg.diph.dwSize = sizeof (DIPROPRANGE); - diprg.diph.dwHeaderSize = sizeof (DIPROPHEADER); - diprg.diph.dwHow = DIPH_BYOFFSET; - diprg.lMin = -JOYAXISRANGE; // value for extreme left - diprg.lMax = +JOYAXISRANGE; // value for extreme right - - diprg.diph.dwObj = DIJOFS_X; // set the x-axis range - if (FAILED(IDirectInputDevice_SetProperty(pdev, DIPROP_RANGE, &diprg.diph))) - { - //goto SetPropFail; - JoyInfo.X = FALSE; - } - else JoyInfo.X = TRUE; - - diprg.diph.dwObj = DIJOFS_Y; // set the y-axis range - if (FAILED(IDirectInputDevice_SetProperty(pdev, DIPROP_RANGE, &diprg.diph))) - { -//SetPropFail: -// CONS_Printf("DIEnumJoysticks(): SetProperty FAILED\n"); -// IDirectInputDevice_Release (pdev); -// return DIENUM_CONTINUE; - JoyInfo.Y = FALSE; - } - else JoyInfo.Y = TRUE; - - diprg.diph.dwObj = DIJOFS_Z; // set the z-axis range - if (FAILED(IDirectInputDevice_SetProperty(pdev, DIPROP_RANGE, &diprg.diph))) - { - //CONS_Printf("DIJOFS_Z not found\n"); - JoyInfo.Z = FALSE; - } - else JoyInfo.Z = TRUE; - - diprg.diph.dwObj = DIJOFS_RX; // set the x-rudder range - if (FAILED(IDirectInputDevice_SetProperty(pdev, DIPROP_RANGE, &diprg.diph))) - { - //CONS_Printf("DIJOFS_RX (x-rudder) not found\n"); - JoyInfo.Rx = FALSE; - } - else JoyInfo.Rx = TRUE; - - diprg.diph.dwObj = DIJOFS_RY; // set the y-rudder range - if (FAILED(IDirectInputDevice_SetProperty(pdev, DIPROP_RANGE, &diprg.diph))) - { - //CONS_Printf("DIJOFS_RY (y-rudder) not found\n"); - JoyInfo.Ry = FALSE; - } - else JoyInfo.Ry = TRUE; - - diprg.diph.dwObj = DIJOFS_RZ; // set the z-rudder range - if (FAILED(IDirectInputDevice_SetProperty(pdev, DIPROP_RANGE, &diprg.diph))) - { - //CONS_Printf("DIJOFS_RZ (z-rudder) not found\n"); - JoyInfo.Rz = FALSE; - } - else JoyInfo.Rz = TRUE; - diprg.diph.dwObj = DIJOFS_SLIDER(0); // set the x-misc range - if (FAILED(IDirectInputDevice_SetProperty(pdev, DIPROP_RANGE, &diprg.diph))) - { - //CONS_Printf("DIJOFS_RZ (x-misc) not found\n"); - JoyInfo.U = FALSE; - } - else JoyInfo.U = TRUE; - - diprg.diph.dwObj = DIJOFS_SLIDER(1); // set the y-misc range - if (FAILED(IDirectInputDevice_SetProperty(pdev, DIPROP_RANGE, &diprg.diph))) - { - //CONS_Printf("DIJOFS_RZ (y-misc) not found\n"); - JoyInfo.V = FALSE; - } - else JoyInfo.V = TRUE; - - // set X axis dead zone to 25% (to avoid accidental turning) - if (!Joystick.bGamepadStyle) - { - if (JoyInfo.X) - if (FAILED(SetDIDwordProperty (pdev, DIPROP_DEADZONE, DIJOFS_X, - DIPH_BYOFFSET, 2500))) - { - CONS_Printf("DIEnumJoysticks(): couldn't SetProperty for X DEAD ZONE"); - //IDirectInputDevice_Release (pdev); - //return DIENUM_CONTINUE; - } - if (JoyInfo.Y) - if (FAILED(SetDIDwordProperty (pdev, DIPROP_DEADZONE, DIJOFS_Y, - DIPH_BYOFFSET, 2500))) - { - CONS_Printf("DIEnumJoysticks(): couldn't SetProperty for Y DEAD ZONE\n"); - //IDirectInputDevice_Release (pdev); - //return DIENUM_CONTINUE; - } - if (JoyInfo.Z) - if (FAILED(SetDIDwordProperty (pdev, DIPROP_DEADZONE, DIJOFS_Z, - DIPH_BYOFFSET, 2500))) - { - CONS_Printf("DIEnumJoysticks(): couldn't SetProperty for Z DEAD ZONE\n"); - //IDirectInputDevice_Release (pdev); - //return DIENUM_CONTINUE; - } - if (JoyInfo.Rx) - if (FAILED(SetDIDwordProperty (pdev, DIPROP_DEADZONE, DIJOFS_RX, - DIPH_BYOFFSET, 2500))) - { - CONS_Printf("DIEnumJoysticks(): couldn't SetProperty for RX DEAD ZONE\n"); - //IDirectInputDevice_Release (pdev); - //return DIENUM_CONTINUE; - } - if (JoyInfo.Ry) - if (FAILED(SetDIDwordProperty (pdev, DIPROP_DEADZONE, DIJOFS_RY, - DIPH_BYOFFSET, 2500))) - { - CONS_Printf("DIEnumJoysticks(): couldn't SetProperty for RY DEAD ZONE\n"); - //IDirectInputDevice_Release (pdev); - //return DIENUM_CONTINUE; - } - if (JoyInfo.Rz) - if (FAILED(SetDIDwordProperty (pdev, DIPROP_DEADZONE, DIJOFS_RZ, - DIPH_BYOFFSET, 2500))) - { - CONS_Printf("DIEnumJoysticks(): couldn't SetProperty for RZ DEAD ZONE\n"); - //IDirectInputDevice_Release (pdev); - //return DIENUM_CONTINUE; - } - if (JoyInfo.U) - if (FAILED(SetDIDwordProperty (pdev, DIPROP_DEADZONE, DIJOFS_SLIDER(0), - DIPH_BYOFFSET, 2500))) - { - CONS_Printf("DIEnumJoysticks(): couldn't SetProperty for U DEAD ZONE\n"); - //IDirectInputDevice_Release (pdev); - //return DIENUM_CONTINUE; - } - if (JoyInfo.V) - if (FAILED(SetDIDwordProperty (pdev, DIPROP_DEADZONE, DIJOFS_SLIDER(1), - DIPH_BYOFFSET, 2500))) - { - CONS_Printf("DIEnumJoysticks(): couldn't SetProperty for V DEAD ZONE\n"); - //IDirectInputDevice_Release (pdev); - //return DIENUM_CONTINUE; - } - } - - // query for IDirectInputDevice2 - we need this to poll the joystick - if (bDX0300) - { - FFType i = EvilForce; - // we won't use the poll - lpDIJA = NULL; - for (i = 0; i > NumberofForces; i++) - lpDIE[i] = NULL; - } - else - { - LPDIRECTINPUTDEVICE2 *rp = &lpDIJA; - LPVOID *tp = (LPVOID *)rp; - if (FAILED(IDirectInputDevice_QueryInterface(pdev, &IID_IDirectInputDevice2, tp))) - { - CONS_Printf("DIEnumJoysticks(): QueryInterface FAILED\n"); - IDirectInputDevice_Release (pdev); - return DIENUM_CONTINUE; - } - - if (lpDIJA && JoyInfo.ForceAxises != -1) - { - // Since we will be playing force feedback effects, we should disable the - // auto-centering spring. - if (FAILED(SetDIDwordProperty(pdev, DIPROP_AUTOCENTER, 0, DIPH_DEVICE, FALSE))) - { - //NOP - } - - // Enumerate and count the axes of the joystick - if (FAILED(IDirectInputDevice_EnumObjects(pdev, EnumAxesCallback, - (VOID*)&JoyInfo.ForceAxises, DIDFT_AXIS))) - { - JoyInfo.ForceAxises = -1; - } - else - { - SetupAllForces(lpDIJA,lpDIE,JoyInfo.ForceAxises); - } - } - } - - // we successfully created an IDirectInputDevice. So stop looking - // for another one. - lpDIJ = pdev; - return DIENUM_STOP; -} - -// -------------- -// I_InitJoystick -// This is called everytime the 'use_joystick' variable changes -// It is normally called at least once at startup when the config is loaded -// -------------- -void I_InitJoystick(void) -{ - HRESULT hr; - - // cleanup - I_ShutdownJoystick(); - - //joystick detection can be skipped by setting use_joystick to 0 - if (M_CheckParm("-nojoy")) - { - CONS_Printf("Joystick disabled\n"); - return; - } - else - // don't do anything at the registration of the joystick cvar, - // until config is loaded - if (!lstrcmpA(cv_usejoystick.string, "0")) - return; - - // acquire the joystick only once - if (!lpDIJ) - { - joystick_detected = false; - - CONS_Printf("Looking for joystick devices:\n"); - iJoyNum = 0; - hr = IDirectInput_EnumDevices(lpDI, DIDEVTYPE_JOYSTICK, DIEnumJoysticks, - (void *)&cv_usejoystick, // our user parameter is joystick number - DIEDFL_ATTACHEDONLY); - if (FAILED(hr)) - { - CONS_Printf("\nI_InitJoystick(): EnumDevices FAILED\n"); - cv_usejoystick.value = 0; - return; - } - - if (!lpDIJ) - { - if (!iJoyNum) - CONS_Printf("none found\n"); - else - { - CONS_Printf("none used\n"); - if (cv_usejoystick.value > 0 && cv_usejoystick.value > iJoyNum) - { - CONS_Printf("\2Set the use_joystick variable to one of the" - " enumerated joystick numbers\n"); - } - } - cv_usejoystick.value = 0; - return; - } - - I_AddExitFunc(I_ShutdownJoystick); - - // set coop level - if (FAILED(IDirectInputDevice_SetCooperativeLevel(lpDIJ, hWndMain, - DISCL_NONEXCLUSIVE|DISCL_FOREGROUND))) - { - I_Error("I_InitJoystick: SetCooperativeLevel FAILED"); - } - } - else - CONS_Printf("Joystick already initialized\n"); - - // we don't unacquire joystick, so let's just pretend we re-acquired it - joystick_detected = true; -} -//Joystick 2 - -// --------------- -// DIEnumJoysticks2 -// There is no such thing as a 'system' joystick, contrary to mouse, -// we must enumerate and choose one joystick device to use -// --------------- -static BOOL CALLBACK DIEnumJoysticks2 (LPCDIDEVICEINSTANCE lpddi, - LPVOID pvRef) //cv_usejoystick -{ - LPDIRECTINPUTDEVICE pdev; - DIPROPRANGE diprg; - DIDEVCAPS caps; - BOOL bUseThisOne = FALSE; - - iJoy2Num++; - - //faB: if cv holds a string description of joystick, the value from atoi() is 0 - // else, the value was probably set by user at console to one of the previsouly - // enumerated joysticks - if (((consvar_t *)pvRef)->value == iJoy2Num -#ifndef _UNICODE - || !lstrcmpA(((consvar_t *)pvRef)->string, lpddi->tszProductName) -#endif - ) - bUseThisOne = TRUE; - - //CONS_Printf(" cv joy2 is %s\n", ((consvar_t *)pvRef)->string); - - // print out device name - CONS_Printf("%c%d: %s\n", - (bUseThisOne) ? '\2' : ' ', // show name in white if this is the one we will use - iJoy2Num, - //(GET_DIDEVICE_SUBTYPE(lpddi->dwDevType) == DIDEVTYPEJOYSTICK_GAMEPAD) ? "Gamepad " : "Joystick", - lpddi->tszProductName); //, lpddi->tszInstanceName); - - // use specified joystick (cv_usejoystick.value in pvRef) - if (!bUseThisOne) - return DIENUM_CONTINUE; - - ((consvar_t *)pvRef)->value = iJoy2Num; - if (IDirectInput_CreateDevice (lpDI, &lpddi->guidInstance, - &pdev, NULL) != DI_OK) - { - // if it failed, then we can't use this joystick for some - // bizarre reason. (Maybe the user unplugged it while we - // were in the middle of enumerating it.) So continue enumerating - CONS_Printf("DIEnumJoysticks2(): CreateDevice FAILED\n"); - return DIENUM_CONTINUE; - } - - - // get the Device capabilities - // - caps.dwSize = sizeof (DIDEVCAPS_DX3); - if (FAILED(IDirectInputDevice_GetCapabilities (pdev, &caps))) - { - CONS_Printf("DIEnumJoysticks2(): GetCapabilities FAILED\n"); - IDirectInputDevice_Release (pdev); - return DIENUM_CONTINUE; - } - if (!(caps.dwFlags & DIDC_ATTACHED)) // should be, since we enumerate only attached devices - return DIENUM_CONTINUE; - - Joystick2.bJoyNeedPoll = ((caps.dwFlags & DIDC_POLLEDDATAFORMAT) != 0); - - if (caps.dwFlags & DIDC_FORCEFEEDBACK) - JoyInfo2.ForceAxises = 0; - else - JoyInfo2.ForceAxises = -1; - - Joystick2.bGamepadStyle = (GET_DIDEVICE_SUBTYPE(caps.dwDevType) == DIDEVTYPEJOYSTICK_GAMEPAD); - //DEBUG CONS_Printf("Gamepad: %d\n", Joystick2.bGamepadStyle); - - - CONS_Printf("Capabilities: %d axes, %d buttons, %d POVs, poll %d, Gamepad %d\n", - caps.dwAxes, caps.dwButtons, caps.dwPOVs, Joystick2.bJoyNeedPoll, Joystick2.bGamepadStyle); - - - // Set the data format to "simple joystick" - a predefined data format - // - // A data format specifies which controls on a device we - // are interested in, and how they should be reported. - // - // This tells DirectInput that we will be passing a - // DIJOYSTATE structure to IDirectInputDevice::GetDeviceState. - if (IDirectInputDevice_SetDataFormat (pdev, &c_dfDIJoystick) != DI_OK) - { - CONS_Printf("DIEnumJoysticks2(): SetDataFormat FAILED\n"); - IDirectInputDevice_Release (pdev); - return DIENUM_CONTINUE; - } - - // Set the cooperativity level to let DirectInput know how - // this device should interact with the system and with other - // DirectInput applications. - if (IDirectInputDevice_SetCooperativeLevel (pdev, hWndMain, - DISCL_EXCLUSIVE | DISCL_FOREGROUND) != DI_OK) - { - CONS_Printf("DIEnumJoysticks2(): SetCooperativeLevel FAILED\n"); - IDirectInputDevice_Release (pdev); - return DIENUM_CONTINUE; - } - - // set the range of the joystick axis - diprg.diph.dwSize = sizeof (DIPROPRANGE); - diprg.diph.dwHeaderSize = sizeof (DIPROPHEADER); - diprg.diph.dwHow = DIPH_BYOFFSET; - diprg.lMin = -JOYAXISRANGE; // value for extreme left - diprg.lMax = +JOYAXISRANGE; // value for extreme right - - diprg.diph.dwObj = DIJOFS_X; // set the x-axis range - if (FAILED(IDirectInputDevice_SetProperty(pdev, DIPROP_RANGE, &diprg.diph))) - { - //goto SetPropFail; - JoyInfo2.X = FALSE; - } - else JoyInfo2.X = TRUE; - - diprg.diph.dwObj = DIJOFS_Y; // set the y-axis range - if (FAILED(IDirectInputDevice_SetProperty(pdev, DIPROP_RANGE, &diprg.diph))) - { -//SetPropFail: -// CONS_Printf("DIEnumJoysticks(): SetProperty FAILED\n"); -// IDirectInputDevice_Release (pdev); -// return DIENUM_CONTINUE; - JoyInfo2.Y = FALSE; - } - else JoyInfo2.Y = TRUE; - - diprg.diph.dwObj = DIJOFS_Z; // set the z-axis range - if (FAILED(IDirectInputDevice_SetProperty(pdev, DIPROP_RANGE, &diprg.diph))) - { - //CONS_Printf("DIJOFS_Z not found\n"); - JoyInfo2.Z = FALSE; - } - else JoyInfo2.Z = TRUE; - - diprg.diph.dwObj = DIJOFS_RX; // set the x-rudder range - if (FAILED(IDirectInputDevice_SetProperty(pdev, DIPROP_RANGE, &diprg.diph))) - { - //CONS_Printf("DIJOFS_RX (x-rudder) not found\n"); - JoyInfo2.Rx = FALSE; - } - else JoyInfo2.Rx = TRUE; - - diprg.diph.dwObj = DIJOFS_RY; // set the y-rudder range - if (FAILED(IDirectInputDevice_SetProperty(pdev, DIPROP_RANGE, &diprg.diph))) - { - //CONS_Printf("DIJOFS_RY (y-rudder) not found\n"); - JoyInfo2.Ry = FALSE; - } - else JoyInfo2.Ry = TRUE; - - diprg.diph.dwObj = DIJOFS_RZ; // set the z-rudder range - if (FAILED(IDirectInputDevice_SetProperty(pdev, DIPROP_RANGE, &diprg.diph))) - { - //CONS_Printf("DIJOFS_RZ (z-rudder) not found\n"); - JoyInfo2.Rz = FALSE; - } - else JoyInfo2.Rz = TRUE; - diprg.diph.dwObj = DIJOFS_SLIDER(0); // set the x-misc range - if (FAILED(IDirectInputDevice_SetProperty(pdev, DIPROP_RANGE, &diprg.diph))) - { - //CONS_Printf("DIJOFS_RZ (x-misc) not found\n"); - JoyInfo2.U = FALSE; - } - else JoyInfo2.U = TRUE; - - diprg.diph.dwObj = DIJOFS_SLIDER(1); // set the y-misc range - if (FAILED(IDirectInputDevice_SetProperty(pdev, DIPROP_RANGE, &diprg.diph))) - { - //CONS_Printf("DIJOFS_RZ (y-misc) not found\n"); - JoyInfo2.V = FALSE; - } - else JoyInfo2.V = TRUE; - - // set X axis dead zone to 25% (to avoid accidental turning) - if (!Joystick2.bGamepadStyle) - { - if (JoyInfo2.X) - if (FAILED(SetDIDwordProperty (pdev, DIPROP_DEADZONE, DIJOFS_X, - DIPH_BYOFFSET, 2500))) - { - CONS_Printf("DIEnumJoysticks2(): couldn't SetProperty for X DEAD ZONE"); - //IDirectInputDevice_Release (pdev); - //return DIENUM_CONTINUE; - } - if (JoyInfo2.Y) - if (FAILED(SetDIDwordProperty (pdev, DIPROP_DEADZONE, DIJOFS_Y, - DIPH_BYOFFSET, 2500))) - { - CONS_Printf("DIEnumJoysticks2(): couldn't SetProperty for Y DEAD ZONE\n"); - //IDirectInputDevice_Release (pdev); - //return DIENUM_CONTINUE; - } - if (JoyInfo2.Z) - if (FAILED(SetDIDwordProperty (pdev, DIPROP_DEADZONE, DIJOFS_Z, - DIPH_BYOFFSET, 2500))) - { - CONS_Printf("DIEnumJoysticks2(): couldn't SetProperty for Z DEAD ZONE\n"); - //IDirectInputDevice_Release (pdev); - //return DIENUM_CONTINUE; - } - if (JoyInfo2.Rx) - if (FAILED(SetDIDwordProperty (pdev, DIPROP_DEADZONE, DIJOFS_RX, - DIPH_BYOFFSET, 2500))) - { - CONS_Printf("DIEnumJoysticks2(): couldn't SetProperty for RX DEAD ZONE\n"); - //IDirectInputDevice_Release (pdev); - //return DIENUM_CONTINUE; - } - if (JoyInfo2.Ry) - if (FAILED(SetDIDwordProperty (pdev, DIPROP_DEADZONE, DIJOFS_RY, - DIPH_BYOFFSET, 2500))) - { - CONS_Printf("DIEnumJoysticks2(): couldn't SetProperty for RY DEAD ZONE\n"); - //IDirectInputDevice_Release (pdev); - //return DIENUM_CONTINUE; - } - if (JoyInfo2.Rz) - if (FAILED(SetDIDwordProperty (pdev, DIPROP_DEADZONE, DIJOFS_RZ, - DIPH_BYOFFSET, 2500))) - { - CONS_Printf("DIEnumJoysticks2(): couldn't SetProperty for RZ DEAD ZONE\n"); - //IDirectInputDevice_Release (pdev); - //return DIENUM_CONTINUE; - } - if (JoyInfo2.U) - if (FAILED(SetDIDwordProperty (pdev, DIPROP_DEADZONE, DIJOFS_SLIDER(0), - DIPH_BYOFFSET, 2500))) - { - CONS_Printf("DIEnumJoysticks2(): couldn't SetProperty for U DEAD ZONE\n"); - //IDirectInputDevice_Release (pdev); - //return DIENUM_CONTINUE; - } - if (JoyInfo2.V) - if (FAILED(SetDIDwordProperty (pdev, DIPROP_DEADZONE, DIJOFS_SLIDER(1), - DIPH_BYOFFSET, 2500))) - { - CONS_Printf("DIEnumJoysticks2(): couldn't SetProperty for V DEAD ZONE\n"); - //IDirectInputDevice_Release (pdev); - //return DIENUM_CONTINUE; - } - } - - // query for IDirectInputDevice2 - we need this to poll the joystick - if (bDX0300) - { - FFType i = EvilForce; - // we won't use the poll - lpDIJA = NULL; - for (i = 0; i > NumberofForces; i++) - lpDIE[i] = NULL; - } - else - { - LPDIRECTINPUTDEVICE2 *rp = &lpDIJ2A; - LPVOID *tp = (LPVOID *)rp; - if (FAILED(IDirectInputDevice_QueryInterface(pdev, &IID_IDirectInputDevice2, tp))) - { - CONS_Printf("DIEnumJoysticks2(): QueryInterface FAILED\n"); - IDirectInputDevice_Release (pdev); - return DIENUM_CONTINUE; - } - - if (lpDIJ2A && JoyInfo2.ForceAxises != -1) - { - // Since we will be playing force feedback effects, we should disable the - // auto-centering spring. - if (FAILED(SetDIDwordProperty(pdev, DIPROP_AUTOCENTER, 0, DIPH_DEVICE, FALSE))) - { - //NOP - } - - // Enumerate and count the axes of the joystick - if (FAILED(IDirectInputDevice_EnumObjects(pdev, EnumAxesCallback, - (VOID*)&JoyInfo2.ForceAxises, DIDFT_AXIS))) - { - JoyInfo2.ForceAxises = -1; - } - else - { - SetupAllForces(lpDIJ2A,lpDIE2,JoyInfo2.ForceAxises); - } - } - } - - // we successfully created an IDirectInputDevice. So stop looking - // for another one. - lpDIJ2 = pdev; - return DIENUM_STOP; -} - - -// -------------- -// I_InitJoystick2 -// This is called everytime the 'use_joystick2' variable changes -// It is normally called at least once at startup when the config is loaded -// -------------- -void I_InitJoystick2 (void) -{ - HRESULT hr; - - // cleanup - I_ShutdownJoystick2 (); - - joystick2_detected = false; - - // joystick detection can be skipped by setting use_joystick to 0 - if (M_CheckParm("-nojoy")) - { - CONS_Printf("Joystick2 disabled\n"); - return; - } - else - // don't do anything at the registration of the joystick cvar, - // until config is loaded - if (!lstrcmpA(cv_usejoystick2.string, "0")) - return; - - // acquire the joystick only once - if (!lpDIJ2) - { - joystick2_detected = false; - - CONS_Printf("Looking for joystick devices:\n"); - iJoy2Num = 0; - hr = IDirectInput_EnumDevices(lpDI, DIDEVTYPE_JOYSTICK, - DIEnumJoysticks2, - (void *)&cv_usejoystick2, // our user parameter is joystick number - DIEDFL_ATTACHEDONLY); - if (FAILED(hr)) - { - CONS_Printf("\nI_InitJoystick2(): EnumDevices FAILED\n"); - cv_usejoystick2.value = 0; - return; - } - - if (!lpDIJ2) - { - if (iJoy2Num == 0) - CONS_Printf("none found\n"); - else - { - CONS_Printf("none used\n"); - if (cv_usejoystick2.value > 0 && - cv_usejoystick2.value > iJoy2Num) - { - CONS_Printf("\2Set the use_joystick2 variable to one of the" - " enumerated joysticks number\n"); - } - } - cv_usejoystick2.value = 0; - return; - } - - I_AddExitFunc (I_ShutdownJoystick2); - - // set coop level - if (FAILED(IDirectInputDevice_SetCooperativeLevel (lpDIJ2, hWndMain, DISCL_NONEXCLUSIVE | DISCL_FOREGROUND))) - I_Error("I_InitJoystick2: SetCooperativeLevel FAILED"); - - // later - //if (FAILED(IDirectInputDevice_Acquire (lpDIJ2))) - // I_Error("Couldn't acquire Joystick2"); - - joystick2_detected = true; - } - else - CONS_Printf("Joystick2 already initialized\n"); - - //faB: we don't unacquire joystick, so let's just pretend we re-acquired it - joystick2_detected = true; -} - -/** \brief Joystick 1 buttons states -*/ -static INT64 lastjoybuttons = 0; - -/** \brief Joystick 1 hats state -*/ -static INT64 lastjoyhats = 0; - -static void I_ShutdownJoystick(void) -{ - int i; - event_t event; - - lastjoybuttons = lastjoyhats = 0; - - event.type = ev_keyup; - - // emulate the up of all joystick buttons - for (i = 0;i < JOYBUTTONS;i++) - { - event.data1 = KEY_JOY1+i; - D_PostEvent(&event); - } - - // emulate the up of all joystick hats - for (i = 0;i < JOYHATS*4;i++) - { - event.data1 = KEY_HAT1+i; - D_PostEvent(&event); - } - - // reset joystick position - event.type = ev_joystick; - for (i = 0;i < JOYAXISSET; i++) - { - event.data1 = i; - D_PostEvent(&event); - } - - if (joystick_detected) - CONS_Printf("I_ShutdownJoystick()\n"); - - for (i = 0; i > NumberofForces; i++) - { - if (lpDIE[i]) - { - IDirectInputEffect_Release(lpDIE[i]); - lpDIE[i] = NULL; - - } - } - if (lpDIJ) - { - IDirectInputDevice_Unacquire(lpDIJ); - IDirectInputDevice_Release(lpDIJ); - lpDIJ = NULL; - } - if (lpDIJA) - { - IDirectInputDevice2_Release(lpDIJA); - lpDIJA = NULL; - } - joystick_detected = false; -} - -/** \brief Joystick 2 buttons states -*/ -static INT64 lastjoy2buttons = 0; - -/** \brief Joystick 2 hats state -*/ -static INT64 lastjoy2hats = 0; - -static void I_ShutdownJoystick2(void) -{ - int i; - event_t event; - - lastjoy2buttons = lastjoy2hats = 0; - - event.type = ev_keyup; - - // emulate the up of all joystick buttons - for (i = 0;i < JOYBUTTONS;i++) - { - event.data1 = KEY_2JOY1+i; - D_PostEvent(&event); - } - - // emulate the up of all joystick hats - for (i = 0;i < JOYHATS*4;i++) - { - event.data1 = KEY_2HAT1+i; - D_PostEvent(&event); - } - - // reset joystick position - event.type = ev_joystick2; - for (i = 0;i < JOYAXISSET; i++) - { - event.data1 = i; - D_PostEvent(&event); - } - - if (joystick2_detected) - CONS_Printf("I_ShutdownJoystick2()\n"); - - for (i = 0; i > NumberofForces; i++) - { - if (lpDIE2[i]) - { - IDirectInputEffect_Release(lpDIE2[i]); - lpDIE2[i] = NULL; - } - } - if (lpDIJ2) - { - IDirectInputDevice_Unacquire(lpDIJ2); - IDirectInputDevice_Release(lpDIJ2); - lpDIJ2 = NULL; - } - if (lpDIJ2A) - { - IDirectInputDevice2_Release(lpDIJ2A); - lpDIJ2A = NULL; - } - joystick2_detected = false; -} - -// ------------------- -// I_GetJoystickEvents -// Get current joystick axis and button states -// ------------------- -void I_GetJoystickEvents(void) -{ - HRESULT hr; - DIJOYSTATE js; // DirectInput joystick state - int i; - INT64 joybuttons = 0; - INT64 joyhats = 0; - event_t event; - - if (!lpDIJ) - return; - - // if input is lost then acquire and keep trying - for (;;) - { - // poll the joystick to read the current state - // if the device doesn't require polling, this function returns almost instantly - if (lpDIJA) - { - hr = IDirectInputDevice2_Poll(lpDIJA); - if (hr == DIERR_INPUTLOST || hr == DIERR_NOTACQUIRED) - goto acquire; - else if (FAILED(hr)) - { - CONS_Printf("I_GetJoystickEvents(): Poll FAILED\n"); - return; - } - } - - // get the input's device state, and put the state in dims - hr = IDirectInputDevice_GetDeviceState(lpDIJ, sizeof (DIJOYSTATE), &js); - - if (hr == DIERR_INPUTLOST || hr == DIERR_NOTACQUIRED) - { - // DirectInput is telling us that the input stream has - // been interrupted. We aren't tracking any state - // between polls, so we don't have any special reset - // that needs to be done. We just re-acquire and - // try again. - goto acquire; - } - else if (FAILED(hr)) - { - CONS_Printf("I_GetJoystickEvents(): GetDeviceState FAILED\n"); - return; - } - - break; -acquire: - if (FAILED(IDirectInputDevice_Acquire(lpDIJ))) - return; - } - - // look for as many buttons as g_input code supports, we don't use the others - for (i = JOYBUTTONS_MIN - 1; i >= 0; i--) - { - joybuttons <<= 1; - if (js.rgbButtons[i]) - joybuttons |= 1; - } - - for (i = JOYHATS_MIN -1; i >=0; i--) - { - if (js.rgdwPOV[i] != 0xffff && js.rgdwPOV[i] != 0xffffffff) - { - if (js.rgdwPOV[i] > 270 * DI_DEGREES || js.rgdwPOV[i] < 90 * DI_DEGREES) - joyhats |= 1<<(0 + 4*i); // UP - else if (js.rgdwPOV[i] > 90 * DI_DEGREES && js.rgdwPOV[i] < 270 * DI_DEGREES) - joyhats |= 1<<(1 + 4*i); // DOWN - if (js.rgdwPOV[i] > 0 * DI_DEGREES && js.rgdwPOV[i] < 180 * DI_DEGREES) - joyhats |= 1<<(3 + 4*i); // LEFT - else if (js.rgdwPOV[i] > 180 * DI_DEGREES && js.rgdwPOV[i] < 360 * DI_DEGREES) - joyhats |= 1<<(2 + 4*i); // RIGHT - } - } - - if (joybuttons != lastjoybuttons) - { - INT64 j = 1; // keep only bits that changed since last time - INT64 newbuttons = joybuttons ^ lastjoybuttons; - lastjoybuttons = joybuttons; - - for (i = 0; i < JOYBUTTONS && i < JOYBUTTONS_MAX; i++, j <<= 1) - { - if (newbuttons & j) // button changed state? - { - if (joybuttons & j) - event.type = ev_keydown; - else - event.type = ev_keyup; - event.data1 = KEY_JOY1 + i; - D_PostEvent(&event); - } - } - } - - if (joyhats != lastjoyhats) - { - INT64 j = 1; // keep only bits that changed since last time - INT64 newhats = joyhats ^ lastjoyhats; - lastjoyhats = joyhats; - - for (i = 0; i < JOYHATS*4 && i < JOYHATS_MAX*4; i++, j <<= 1) - { - if (newhats & j) // button changed state? - { - if (joyhats & j) - event.type = ev_keydown; - else - event.type = ev_keyup; - event.data1 = KEY_HAT1 + i; - D_PostEvent(&event); - } - } - - } - - // send joystick axis positions - event.type = ev_joystick; - event.data1 = event.data2 = event.data3 = 0; - - if (Joystick.bGamepadStyle) - { - // gamepad control type, on or off, live or die - if (JoyInfo.X) - { - if (js.lX < -(JOYAXISRANGE/2)) - event.data2 = -1; - else if (js.lX > JOYAXISRANGE/2) - event.data2 = 1; - } - if (JoyInfo.Y) - { - if (js.lY < -(JOYAXISRANGE/2)) - event.data3 = -1; - else if (js.lY > JOYAXISRANGE/2) - event.data3 = 1; - } - } - else - { - // analog control style, just send the raw data - if (JoyInfo.X) event.data2 = js.lX; // x axis - if (JoyInfo.Y) event.data3 = js.lY; // y axis - } - - D_PostEvent(&event); -#if JOYAXISSET > 1 - event.data1 = 1; - event.data2 = event.data3 = 0; - - if (Joystick.bGamepadStyle) - { - // gamepad control type, on or off, live or die - if (JoyInfo.Z) - { - if (js.lZ < -(JOYAXISRANGE/2)) - event.data2 = -1; - else if (js.lZ > JOYAXISRANGE/2) - event.data2 = 1; - } - if (JoyInfo.Rx) - { - if (js.lRx < -(JOYAXISRANGE/2)) - event.data3 = -1; - else if (js.lRx > JOYAXISRANGE/2) - event.data3 = 1; - } - } - else - { - // analog control style, just send the raw data - if (JoyInfo.Z) event.data2 = js.lZ; // z axis - if (JoyInfo.Rx) event.data3 = js.lRx; // rx axis - } - - D_PostEvent(&event); -#endif -#if JOYAXISSET > 2 - event.data1 = 2; - event.data2 = event.data3 = 0; - - if (Joystick.bGamepadStyle) - { - // gamepad control type, on or off, live or die - if (JoyInfo.Rx) - { - if (js.lRy < -(JOYAXISRANGE/2)) - event.data2 = -1; - else if (js.lRy > JOYAXISRANGE/2) - event.data2 = 1; - } - if (JoyInfo.Rz) - { - if (js.lRz < -(JOYAXISRANGE/2)) - event.data3 = -1; - else if (js.lRz > JOYAXISRANGE/2) - event.data3 = 1; - } - } - else - { - // analog control style, just send the raw data - if (JoyInfo.Ry) event.data2 = js.lRy; // ry axis - if (JoyInfo.Rz) event.data3 = js.lRz; // rz axis - } - - D_PostEvent(&event); -#endif -#if JOYAXISSET > 3 - event.data1 = 3; - event.data2 = event.data3 = 0; - if (Joystick.bGamepadStyle) - { - // gamepad control type, on or off, live or die - if (JoyInfo.U) - { - if (js.rglSlider[0] < -(JOYAXISRANGE/2)) - event.data2 = -1; - else if (js.rglSlider[0] > JOYAXISRANGE/2) - event.data2 = 1; - } - if (JoyInfo.V) - { - if (js.rglSlider[1] < -(JOYAXISRANGE/2)) - event.data3 = -1; - else if (js.rglSlider[1] > JOYAXISRANGE/2) - event.data3 = 1; - } - } - else - { - // analog control style, just send the raw data - if (JoyInfo.U) event.data2 = js.rglSlider[0]; // U axis - if (JoyInfo.V) event.data3 = js.rglSlider[1]; // V axis - } - D_PostEvent(&event); -#endif -} - -// ------------------- -// I_GetJoystickEvents -// Get current joystick axis and button states -// ------------------- -void I_GetJoystick2Events(void) -{ - HRESULT hr; - DIJOYSTATE js; // DirectInput joystick state - int i; - INT64 joybuttons = 0; - INT64 joyhats = 0; - event_t event; - - if (!lpDIJ2) - return; - - // if input is lost then acquire and keep trying - for (;;) - { - // poll the joystick to read the current state - // if the device doesn't require polling, this function returns almost instantly - if (lpDIJ2A) - { - hr = IDirectInputDevice2_Poll(lpDIJ2A); - if (hr == DIERR_INPUTLOST || hr == DIERR_NOTACQUIRED) - goto acquire; - else if (FAILED(hr)) - { - CONS_Printf("I_GetJoystick2Events(): Poll FAILED\n"); - return; - } - } - - // get the input's device state, and put the state in dims - hr = IDirectInputDevice_GetDeviceState(lpDIJ2, sizeof (DIJOYSTATE), &js); - - if (hr == DIERR_INPUTLOST || hr == DIERR_NOTACQUIRED) - { - // DirectInput is telling us that the input stream has - // been interrupted. We aren't tracking any state - // between polls, so we don't have any special reset - // that needs to be done. We just re-acquire and - // try again. - goto acquire; - } - else if (FAILED(hr)) - { - CONS_Printf("I_GetJoystickEvents2(): GetDeviceState FAILED\n"); - return; - } - - break; -acquire: - if (FAILED(IDirectInputDevice_Acquire(lpDIJ2))) - return; - } - - // look for as many buttons as g_input code supports, we don't use the others - for (i = JOYBUTTONS_MIN - 1; i >= 0; i--) - { - joybuttons <<= 1; - if (js.rgbButtons[i]) - joybuttons |= 1; - } - - for (i = JOYHATS_MIN -1; i >=0; i--) - { - if (js.rgdwPOV[i] != 0xffff && js.rgdwPOV[i] != 0xffffffff) - { - if (js.rgdwPOV[i] > 270 * DI_DEGREES || js.rgdwPOV[i] < 90 * DI_DEGREES) - joyhats |= 1<<(0 + 4*i); // UP - else if (js.rgdwPOV[i] > 90 * DI_DEGREES && js.rgdwPOV[i] < 270 * DI_DEGREES) - joyhats |= 1<<(1 + 4*i); // DOWN - if (js.rgdwPOV[i] > 0 * DI_DEGREES && js.rgdwPOV[i] < 180 * DI_DEGREES) - joyhats |= 1<<(3 + 4*i); // LEFT - else if (js.rgdwPOV[i] > 180 * DI_DEGREES && js.rgdwPOV[i] < 360 * DI_DEGREES) - joyhats |= 1<<(2 + 4*i); // RIGHT - } - } - - if (joybuttons != lastjoy2buttons) - { - INT64 j = 1; // keep only bits that changed since last time - INT64 newbuttons = joybuttons ^ lastjoy2buttons; - lastjoy2buttons = joybuttons; - - for (i = 0; i < JOYBUTTONS && i < JOYBUTTONS_MAX; i++, j <<= 1) - { - if (newbuttons & j) // button changed state? - { - if (joybuttons & j) - event.type = ev_keydown; - else - event.type = ev_keyup; - event.data1 = KEY_2JOY1 + i; - D_PostEvent(&event); - } - } - } - - if (joyhats != lastjoy2hats) - { - INT64 j = 1; // keep only bits that changed since last time - INT64 newhats = joyhats ^ lastjoy2hats; - lastjoy2hats = joyhats; - - for (i = 0; i < JOYHATS*4 && i < JOYHATS_MAX*4; i++, j <<= 1) - { - if (newhats & j) // button changed state? - { - if (joyhats & j) - event.type = ev_keydown; - else - event.type = ev_keyup; - event.data1 = KEY_2HAT1 + i; - D_PostEvent(&event); - } - } - - } - - // send joystick axis positions - event.type = ev_joystick2; - event.data1 = event.data2 = event.data3 = 0; - - if (Joystick2.bGamepadStyle) - { - // gamepad control type, on or off, live or die - if (JoyInfo2.X) - { - if (js.lX < -(JOYAXISRANGE/2)) - event.data2 = -1; - else if (js.lX > JOYAXISRANGE/2) - event.data2 = 1; - } - if (JoyInfo2.Y) - { - if (js.lY < -(JOYAXISRANGE/2)) - event.data3 = -1; - else if (js.lY > JOYAXISRANGE/2) - event.data3 = 1; - } - } - else - { - // analog control style, just send the raw data - if (JoyInfo2.X) event.data2 = js.lX; // x axis - if (JoyInfo2.Y) event.data3 = js.lY; // y axis - } - - D_PostEvent(&event); -#if JOYAXISSET > 1 - event.data1 = 1; - event.data2 = event.data3 = 0; - - if (Joystick2.bGamepadStyle) - { - // gamepad control type, on or off, live or die - if (JoyInfo2.Z) - { - if (js.lZ < -(JOYAXISRANGE/2)) - event.data2 = -1; - else if (js.lZ > JOYAXISRANGE/2) - event.data2 = 1; - } - if (JoyInfo2.Rx) - { - if (js.lRx < -(JOYAXISRANGE/2)) - event.data3 = -1; - else if (js.lRx > JOYAXISRANGE/2) - event.data3 = 1; - } - } - else - { - // analog control style, just send the raw data - if (JoyInfo2.Z) event.data2 = js.lZ; // z axis - if (JoyInfo2.Rx) event.data3 = js.lRx; // rx axis - } - - D_PostEvent(&event); -#endif -#if JOYAXISSET > 2 - event.data1 = 2; - event.data2 = event.data3 = 0; - - if (Joystick2.bGamepadStyle) - { - // gamepad control type, on or off, live or die - if (JoyInfo2.Rx) - { - if (js.lRy < -(JOYAXISRANGE/2)) - event.data2 = -1; - else if (js.lRy > JOYAXISRANGE/2) - event.data2 = 1; - } - if (JoyInfo2.Rz) - { - if (js.lRz < -(JOYAXISRANGE/2)) - event.data3 = -1; - else if (js.lRz > JOYAXISRANGE/2) - event.data3 = 1; - } - } - else - { - // analog control style, just send the raw data - if (JoyInfo2.Ry) event.data2 = js.lRy; // ry axis - if (JoyInfo2.Rz) event.data3 = js.lRz; // rz axis - } - - D_PostEvent(&event); -#endif -#if JOYAXISSET > 3 - event.data1 = 3; - event.data2 = event.data3 = 0; - if (Joystick2.bGamepadStyle) - { - // gamepad control type, on or off, live or die - if (JoyInfo2.U) - { - if (js.rglSlider[0] < -(JOYAXISRANGE/2)) - event.data2 = -1; - else if (js.rglSlider[0] > JOYAXISRANGE/2) - event.data2 = 1; - } - if (JoyInfo2.V) - { - if (js.rglSlider[1] < -(JOYAXISRANGE/2)) - event.data3 = -1; - else if (js.rglSlider[1] > JOYAXISRANGE/2) - event.data3 = 1; - } - } - else - { - // analog control style, just send the raw data - if (JoyInfo2.U) event.data2 = js.rglSlider[0]; // U axis - if (JoyInfo2.V) event.data3 = js.rglSlider[1]; // V axis - } - D_PostEvent(&event); -#endif -} - -static int numofjoy = 0; -static char joyname[MAX_PATH]; -static int needjoy = -1; - -static BOOL CALLBACK DIEnumJoysticksCount (LPCDIDEVICEINSTANCE lpddi, - LPVOID pvRef) //joyname -{ - numofjoy++; - if (needjoy == numofjoy && pvRef && pvRef == (void *)joyname && lpddi - && lpddi->tszProductName) - { - sprintf(joyname,"%s",lpddi->tszProductName); - return DIENUM_STOP; - } - //else if (devparm) CONS_Printf("DIEnumJoysticksCount need help!"); - return DIENUM_CONTINUE; -} - -INT32 I_NumJoys(void) -{ - HRESULT hr; - needjoy = -1; - numofjoy = 0; - hr = IDirectInput_EnumDevices(lpDI, DIDEVTYPE_JOYSTICK, - DIEnumJoysticksCount, (void *)&numofjoy, DIEDFL_ATTACHEDONLY); - if (FAILED(hr)) - CONS_Printf("\nI_NumJoys(): EnumDevices FAILED\n"); - return numofjoy; - -} - -const char *I_GetJoyName(INT32 joyindex) -{ - HRESULT hr; - needjoy = joyindex; - numofjoy = 0; - ZeroMemory(joyname,sizeof (joyname)); - hr = IDirectInput_EnumDevices(lpDI, DIDEVTYPE_JOYSTICK, - DIEnumJoysticksCount, (void *)joyname, DIEDFL_ATTACHEDONLY); - if (FAILED(hr)) - CONS_Printf("\nI_GetJoyName(): EnumDevices FAILED\n"); - if (joyname[0] == 0) return NULL; - return joyname; -} - -// =========================================================================================== -// DIRECT INPUT KEYBOARD -// =========================================================================================== - -static UINT8 ASCIINames[256] = -{ - // 0 1 2 3 4 5 6 7 - // 8 9 A B C D E F - 0, 27, '1', '2', '3', '4', '5', '6', - '7', '8', '9', '0', KEY_MINUS,KEY_EQUALS,KEY_BACKSPACE, KEY_TAB, - 'q', 'w', 'e', 'r', 't', 'y', 'u', 'i', - 'o', 'p', '[', ']', KEY_ENTER,KEY_CTRL,'a', 's', - 'd', 'f', 'g', 'h', 'j', 'k', 'l', ';', - '\'', '`', KEY_SHIFT, '\\', 'z', 'x', 'c', 'v', - 'b', 'n', 'm', ',', '.', '/', KEY_SHIFT, '*', - KEY_ALT,KEY_SPACE,KEY_CAPSLOCK, KEY_F1, KEY_F2, KEY_F3, KEY_F4, KEY_F5, - KEY_F6, KEY_F7, KEY_F8, KEY_F9, KEY_F10,KEY_NUMLOCK,KEY_SCROLLLOCK,KEY_KEYPAD7, - KEY_KEYPAD8,KEY_KEYPAD9,KEY_MINUSPAD,KEY_KEYPAD4,KEY_KEYPAD5,KEY_KEYPAD6,KEY_PLUSPAD,KEY_KEYPAD1, - KEY_KEYPAD2,KEY_KEYPAD3,KEY_KEYPAD0,KEY_KPADDEL,0,0,0, KEY_F11, - KEY_F12,0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - - // 0 1 2 3 4 5 6 7 - // 8 9 A B C D E F - - 0, 0, 0, 0, 0, 0, 0, 0, // 0x80 - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, KEY_ENTER,KEY_CTRL, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, // 0xa0 - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, KEY_KPADDEL, 0,KEY_KPADSLASH,0, 0, - KEY_ALT,0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, KEY_HOME, // 0xc0 - KEY_UPARROW,KEY_PGUP,0,KEY_LEFTARROW,0,KEY_RIGHTARROW,0,KEY_END, - KEY_DOWNARROW,KEY_PGDN, KEY_INS,KEY_DEL,0,0,0,0, - 0, 0, 0,KEY_LEFTWIN,KEY_RIGHTWIN,KEY_MENU, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, // 0xe0 - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0 -}; - -// Return a key that has been pushed, or 0 (replace getchar() at game startup) -// -INT32 I_GetKey(void) -{ - event_t *ev; - - if (eventtail != eventhead) - { - ev = &events[eventtail]; - eventtail = (eventtail+1) & (MAXEVENTS-1); - if (ev->type == ev_keydown || ev->type == ev_console) - return ev->data1; - else - return 0; - } - return 0; -} - -// ----------------- -// I_StartupKeyboard -// Installs DirectInput keyboard -// ----------------- -#define DI_KEYBOARD_BUFFERSIZE 32 // number of data elements in keyboard buffer - -void I_StartupKeyboard(void) -{ - DIPROPDWORD dip; - - if (dedicated) - return; - - // make sure the app window has the focus or DirectInput acquire keyboard won't work - if (hWndMain) - { - SetFocus(hWndMain); - ShowWindow(hWndMain, SW_SHOW); - UpdateWindow(hWndMain); - } - - // detect error - if (lpDIK) - { - CONS_Printf("\2I_StartupKeyboard(): called twice\n"); - return; - } - - CreateDevice2(lpDI, &GUID_SysKeyboard, &lpDIK, NULL); - - if (lpDIK) - { - if (FAILED(IDirectInputDevice_SetDataFormat(lpDIK, &c_dfDIKeyboard))) - I_Error("Couldn't set keyboard data format"); - - // create buffer for buffered data - dip.diph.dwSize = sizeof (dip); - dip.diph.dwHeaderSize = sizeof (dip.diph); - dip.diph.dwObj = 0; - dip.diph.dwHow = DIPH_DEVICE; - dip.dwData = DI_KEYBOARD_BUFFERSIZE; - if (FAILED(IDirectInputDevice_SetProperty(lpDIK, DIPROP_BUFFERSIZE, &dip.diph))) - I_Error("Couldn't set keyboard buffer size"); - - if (FAILED(IDirectInputDevice_SetCooperativeLevel(lpDIK, hWndMain, - DISCL_NONEXCLUSIVE|DISCL_FOREGROUND))) - { - I_Error("Couldn't set keyboard coop level"); - } - } - else - I_Error("Couldn't create keyboard input"); - - I_AddExitFunc(I_ShutdownKeyboard); - hacktics = 0; // see definition - keyboard_started = true; -} - -// ------------------ -// I_ShutdownKeyboard -// Release DirectInput keyboard. -// ------------------ -static void I_ShutdownKeyboard(void) -{ - if (!keyboard_started) - return; - - CONS_Printf("I_ShutdownKeyboard()\n"); - - if (lpDIK) - { - IDirectInputDevice_Unacquire(lpDIK); - IDirectInputDevice_Release(lpDIK); - lpDIK = NULL; - } - - keyboard_started = false; -} - -// ------------------- -// I_GetKeyboardEvents -// Get buffered data from the keyboard -// ------------------- -static void I_GetKeyboardEvents(void) -{ - static boolean KeyboardLost = false; - - // simply repeat the last pushed key every xx tics, - // make more user friendly input for Console and game Menus -#define KEY_REPEAT_DELAY (TICRATE/17) // TICRATE tics, repeat every 1/3 second - static long RepeatKeyTics = 0; - static int RepeatKeyCode; - - DIDEVICEOBJECTDATA rgdod[DI_KEYBOARD_BUFFERSIZE]; - DWORD dwItems, d; - HRESULT hr; - int ch; - - event_t event; - ZeroMemory(&event,sizeof (event)); - - if (!keyboard_started) - return; - - if (!appActive && RepeatKeyCode) // Stop when lost focus - { - event.type = ev_keyup; - event.data1 = RepeatKeyCode; - D_PostEvent(&event); - RepeatKeyCode = 0; - } -getBufferedData: - dwItems = DI_KEYBOARD_BUFFERSIZE; - hr = IDirectInputDevice_GetDeviceData(lpDIK, sizeof (DIDEVICEOBJECTDATA), rgdod, &dwItems, 0); - - // If data stream was interrupted, reacquire the device and try again. - if (hr == DIERR_INPUTLOST || hr == DIERR_NOTACQUIRED) - { - // why it succeeds to acquire just after I don't understand.. so I set the flag BEFORE - KeyboardLost = true; - - hr = IDirectInputDevice_Acquire(lpDIK); - if (SUCCEEDED(hr)) - goto getBufferedData; - return; - } - - // we lost data, get device actual state to recover lost information - if (hr == DI_BUFFEROVERFLOW) - { - /// \note either uncomment or delete block - //I_Error("DI buffer overflow (keyboard)"); - //I_RecoverKeyboardState (); - - //hr = IDirectInputDevice_GetDeviceState (lpDIM, sizeof (keys), &diMouseState); - } - - // We got buffered input, act on it - if (SUCCEEDED(hr)) - { - // if we previously lost keyboard data, recover its current state - if (KeyboardLost) - { - /// \bug hack simply clears the keys so we don't have the last pressed keys - /// still active.. to have to re-trigger it is not much trouble for the user. - ZeroMemory(gamekeydown, NUMKEYS); - KeyboardLost = false; - } - - // dwItems contains number of elements read (could be 0) - for (d = 0; d < dwItems; d++) - { - // dwOfs member is DIK_* value - // dwData member 0x80 bit set press down, clear is release - - if (rgdod[d].dwData & 0x80) - event.type = ev_keydown; - else - event.type = ev_keyup; - - ch = rgdod[d].dwOfs & UINT8_MAX; - if (ASCIINames[ch]) - event.data1 = ASCIINames[ch]; - else - event.data1 = 0x80; - - D_PostEvent(&event); - } - - // Key Repeat - if (dwItems) - { - // new key events, so stop repeating key - RepeatKeyCode = 0; - // delay is tripled for first repeating key - RepeatKeyTics = hacktics + (KEY_REPEAT_DELAY*2); - if (event.type == ev_keydown) // use the last event! - RepeatKeyCode = event.data1; - } - else - { - // no new keys, repeat last pushed key after some time - if (RepeatKeyCode && hacktics - RepeatKeyTics > KEY_REPEAT_DELAY) - { - event.type = ev_keydown; - event.data1 = RepeatKeyCode; - D_PostEvent(&event); - - RepeatKeyTics = hacktics; - } - } - } -} - -// -// Closes DirectInput -// -static void I_ShutdownDirectInput(void) -{ - if (lpDI) - IDirectInput_Release(lpDI); - lpDI = NULL; -} - -// This stuff should get rid of the exception and page faults when -// SRB2 bugs out with an error. Now it should exit cleanly. -// -INT32 I_StartupSystem(void) -{ - HRESULT hr; - - // some 'more global than globals' things to initialize here ? - graphics_started = keyboard_started = sound_started = cdaudio_started = false; - - I_DetectWin9x(); - - // check for OS type and version here? -#ifdef NDEBUG - signal(SIGABRT, signal_handler); - signal(SIGFPE, signal_handler); - signal(SIGILL, signal_handler); - signal(SIGSEGV, signal_handler); - signal(SIGTERM, signal_handler); - signal(SIGINT, signal_handler); -#endif - - // create DirectInput - so that I_StartupKeyboard/Mouse can be called later on - // from D_SRB2Main just like DOS version - hr = DirectInputCreate(myInstance, DIRECTINPUT_VERSION, &lpDI, NULL); - - if (SUCCEEDED(hr)) - bDX0300 = FALSE; - else - { - // try opening DirectX3 interface for NT compatibility - hr = DirectInputCreate(myInstance, DXVERSION_NTCOMPATIBLE, &lpDI, NULL); - - if (FAILED(hr)) - { - const char *sErr; - switch (hr) - { - case DIERR_BETADIRECTINPUTVERSION: - sErr = "DIERR_BETADIRECTINPUTVERSION"; - break; - case DIERR_INVALIDPARAM: - sErr = "DIERR_INVALIDPARAM"; - break; - case DIERR_OLDDIRECTINPUTVERSION : - sErr = "DIERR_OLDDIRECTINPUTVERSION"; - break; - case DIERR_OUTOFMEMORY: - sErr = "DIERR_OUTOFMEMORY"; - break; - default: - sErr = "UNKNOWN"; - break; - } - I_Error("Couldn't create DirectInput (reason: %s)", sErr); - } - else - CONS_Printf("\2Using DirectX3 interface\n"); - - // only use DirectInput3 compatible structures and calls - bDX0300 = TRUE; - } - I_AddExitFunc(I_ShutdownDirectInput); - return 0; -} - -// Closes down everything. This includes restoring the initial -// palette and video mode, and removing whatever mouse, keyboard, and -// timer routines have been installed. -// -/// \bug doesn't restore wave/midi device volume -// -// Shutdown user funcs are effectively called in reverse order. -// -void I_ShutdownSystem(void) -{ - int c; - - for (c = MAX_QUIT_FUNCS - 1; c >= 0; c--) - if (quit_funcs[c]) - (*quit_funcs[c])(); -} - -// --------------- -// I_SaveMemToFile -// Save as much as iLength bytes starting at pData, to -// a new file of given name. The file is overwritten if it is present. -// --------------- -BOOL I_SaveMemToFile(const void *pData, size_t iLength, const char *sFileName) -{ - HANDLE fileHandle; - DWORD bytesWritten; - - fileHandle = CreateFileA(sFileName, GENERIC_WRITE, 0, NULL, CREATE_ALWAYS, - FILE_ATTRIBUTE_NORMAL|FILE_FLAG_WRITE_THROUGH, NULL); - if (fileHandle == (HANDLE)-1) - { - CONS_Printf("SaveMemToFile: Error opening file %s",sFileName); - return FALSE; - } - WriteFile(fileHandle, pData, (DWORD)iLength, &bytesWritten, NULL); - CloseHandle(fileHandle); - return TRUE; -} - -// my god how win32 suck -typedef BOOL (WINAPI *MyFunc)(LPCSTR RootName, PULARGE_INTEGER pulA, PULARGE_INTEGER pulB, PULARGE_INTEGER pulFreeBytes); - -void I_GetDiskFreeSpace(INT64* freespace) -{ - static MyFunc pfnGetDiskFreeSpaceEx = NULL; - static boolean testwin95 = false; - ULARGE_INTEGER usedbytes, lfrespace; - - if (!testwin95) - { - HMODULE h = GetModuleHandleA("kernel32.dll"); - - if (h) - pfnGetDiskFreeSpaceEx = (MyFunc)GetProcAddress(h, "GetDiskFreeSpaceExA"); - testwin95 = true; - } - if (pfnGetDiskFreeSpaceEx) - { - if (pfnGetDiskFreeSpaceEx(NULL, &lfreespace, &usedbytes, NULL)) - *freespace = lfreespace.QuadPart; - else - *freespace = INT32_MAX; - } - else - { - DWORD SectorsPerCluster, BytesPerSector, NumberOfFreeClusters, TotalNumberOfClusters; - GetDiskFreeSpace(NULL, &SectorsPerCluster, &BytesPerSector, - &NumberOfFreeClusters, &TotalNumberOfClusters); - *freespace = BytesPerSector * SectorsPerCluster * NumberOfFreeClusters; - } -} - -char *I_GetUserName(void) -{ - static char username[MAXPLAYERNAME+1]; - char *p; - DWORD i = MAXPLAYERNAME; - - if (!GetUserNameA(username, &i)) - { - p = getenv("USER"); - if (!p) - { - p = getenv("user"); - if (!p) - { - p = getenv("USERNAME"); - if (!p) - { - p = getenv("username"); - if (!p) - { - return NULL; - } - } - } - } - strncpy(username, p, MAXPLAYERNAME); - } - - if (!strlen(username)) - return NULL; - return username; -} - -INT32 I_mkdir(const char *dirname, INT32 unixright) -{ - (void)unixright; /// \todo should implement ntright under nt... - return CreateDirectoryA(dirname, NULL); -} - -char * I_GetEnv(const char *name) -{ - return getenv(name); -} - -INT32 I_PutEnv(char *variable) -{ - return putenv(variable); -} - -INT32 I_ClipboardCopy(const char *data, size_t size) -{ - (void)data; - (void)size; - return -1; -} - -char *I_ClipboardPaste(void) -{ - return NULL; -} - -typedef BOOL (WINAPI *MyFunc3) (DWORD); - -const CPUInfoFlags *I_CPUInfo(void) -{ - static CPUInfoFlags WIN_CPUInfo; - static MyFunc3 pfnCPUID = NULL; - SYSTEM_INFO SI; - HMODULE h = GetModuleHandleA("kernel32.dll"); - - if (h) - pfnCPUID = (MyFunc3)GetProcAddress(h, "IsProcessorFeaturePresent"); - ZeroMemory(&WIN_CPUInfo,sizeof (WIN_CPUInfo)); - if(pfnCPUID) - { - WIN_CPUInfo.FPPE = pfnCPUID( 0); //PF_FLOATING_POINT_PRECISION_ERRATA - WIN_CPUInfo.FPE = pfnCPUID( 1); //PF_FLOATING_POINT_EMULATED - WIN_CPUInfo.cmpxchg = pfnCPUID( 2); //PF_COMPARE_EXCHANGE_DOUBLE - WIN_CPUInfo.MMX = pfnCPUID( 3); //PF_MMX_INSTRUCTIONS_AVAILABLE - WIN_CPUInfo.PPCMM64 = pfnCPUID( 4); //PF_PPC_MOVEMEM_64BIT_OK - WIN_CPUInfo.ALPHAbyte = pfnCPUID( 5); //PF_ALPHA_BYTE_INSTRUCTIONS - WIN_CPUInfo.SSE = pfnCPUID( 6); //PF_XMMI_INSTRUCTIONS_AVAILABLE - WIN_CPUInfo.AMD3DNow = pfnCPUID( 7); //PF_3DNOW_INSTRUCTIONS_AVAILABLE - WIN_CPUInfo.RDTSC = pfnCPUID( 8); //PF_RDTSC_INSTRUCTION_AVAILABLE - WIN_CPUInfo.PAE = pfnCPUID( 9); //PF_PAE_ENABLED - WIN_CPUInfo.SSE2 = pfnCPUID(10); //PF_XMMI64_INSTRUCTIONS_AVAILABLE - //WIN_CPUInfo.blank = pfnCPUID(11); //PF_SSE_DAZ_MODE_AVAILABLE - WIN_CPUInfo.DEP = pfnCPUID(12); //PF_NX_ENABLED - WIN_CPUInfo.SSE3 = pfnCPUID(13); //PF_SSE3_INSTRUCTIONS_AVAILABLE - WIN_CPUInfo.cmpxchg16b = pfnCPUID(14); //PF_COMPARE_EXCHANGE128 - WIN_CPUInfo.cmp8xchg16 = pfnCPUID(15); //PF_COMPARE64_EXCHANGE128 - WIN_CPUInfo.PFC = pfnCPUID(15); //PF_CHANNELS_ENABLED - } - GetSystemInfo(&SI); - WIN_CPUInfo.CPUs = SI.dwNumberOfProcessors; - WIN_CPUInfo.IA64 = (SI.dwProcessorType == 2200); // PROCESSOR_INTEL_IA64 - WIN_CPUInfo.AMD64 = (SI.dwProcessorType == 8664); // PROCESSOR_AMD_X8664 - return &WIN_CPUInfo; -} - -UINT64 I_FileSize(const char *filename) -{ - HANDLE fileHandle; - DWORD dwSizeHigh, dwSizeLow; - UINT64 fileSize = (UINT64)-1; - - fileHandle = CreateFileA(filename, GENERIC_READ, FILE_SHARE_READ, NULL, OPEN_EXISTING, - 0, NULL); - if (fileHandle == (HANDLE)-1) - goto erroropening; - dwSizeLow = GetFileSize(fileHandle,&dwSizeHigh); - if (dwSizeLow == 0xFFFFFFFF && GetLastError() != NO_ERROR) - goto errorsizing; - fileSize = ((UINT64)(dwSizeHigh)<<32) + dwSizeLow; -errorsizing: - CloseHandle(fileHandle); -erroropening: - return fileSize; -} diff --git a/src/win32ce/win_vid.c b/src/win32ce/win_vid.c deleted file mode 100644 index 4724ca40d..000000000 --- a/src/win32ce/win_vid.c +++ /dev/null @@ -1,865 +0,0 @@ -// Emacs style mode select -*- C++ -*- -//----------------------------------------------------------------------------- -// -// Copyright (C) 1998-2000 by DooM Legacy Team. -// -// 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 2 -// 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. -//----------------------------------------------------------------------------- -/// \file -/// \brief win32 video driver for Doom Legacy - -#include "../doomdef.h" - -#include -#include - -#include "../d_clisrv.h" -#include "../i_system.h" -#include "../m_argv.h" -#include "../v_video.h" -#include "../st_stuff.h" -#include "../i_video.h" -#include "../z_zone.h" -#include "fabdxlib.h" - -#include "win_main.h" -#include "../command.h" -#include "../screen.h" - -#ifdef HWRENDER -#include "win_dll.h" // loading the render DLL -#include "../hardware/hw_drv.h" // calling driver init & shutdown -#include "../hardware/hw_main.h" // calling HWR module init & shutdown -#endif - -// ------- -// Globals -// ------- - -// this is the CURRENT rendermode!! very important: used by w_wad, and much other code -rendermode_t rendermode = render_soft; - -// synchronize page flipping with screen refresh -consvar_t cv_vidwait = {"vid_wait", "On", CV_SAVE, CV_OnOff, NULL, 0, NULL, NULL, 0, 0, NULL}; -static consvar_t cv_stretch = {"stretch", "On", CV_SAVE|CV_NOSHOWHELP, CV_OnOff, NULL, 0, NULL, NULL, 0, 0, NULL}; - -boolean highcolor; - -static BOOL bDIBMode; // means we are using DIB instead of DirectDraw surfaces -static BITMAPINFO* bmiMain = NULL; -static HDC hDCMain = NULL; - -// ----------------- -// Video modes stuff -// ----------------- - -#define MAX_EXTRA_MODES 36 -static vmode_t extra_modes[MAX_EXTRA_MODES] = {{NULL, NULL, 0, 0, 0, 0, 0, 0, NULL, NULL, 0}}; -static char names[MAX_EXTRA_MODES][10]; - -static int numvidmodes; // total number of DirectDraw display modes -static vmode_t *pvidmodes; // start of videomodes list. -static vmode_t *pcurrentmode; // the current active videomode. -static BOOL bWinParm; -static int WINAPI VID_SetWindowedDisplayMode(viddef_t *lvid, vmode_t *pcurrentmode); - -// this holds description of the startup video mode, -// the resolution is 320x200, windowed on the desktop -#define NUMSPECIALMODES 1 -static char winmode1[] ="320x200W"; // W to make sure it's the windowed mode -static vmode_t specialmodes[NUMSPECIALMODES] = -{ - { - NULL, - winmode1, // hehe - 320, 200, //(200.0/320.0)*(320.0/240.0), - 320, 1, // rowbytes, bytes per pixel - 1, 2, // windowed (TRUE), numpages - NULL, - VID_SetWindowedDisplayMode, 0 - } -}; - -// ------ -// Protos -// ------ -static void VID_Command_NumModes_f(void); -static void VID_Command_ModeInfo_f(void); -static void VID_Command_ModeList_f(void); -static void VID_Command_Mode_f(void); -static int WINAPI VID_SetDirectDrawMode(viddef_t *lvid, vmode_t *pcurrentmode); -static vmode_t *VID_GetModePtr(int modenum); -static void VID_Init(void); -static BOOL VID_FreeAndAllocVidbuffer(viddef_t *lvid); - -// ----------------- -// I_StartupGraphics -// Initialize video mode, setup dynamic screen size variables, -// and allocate screens. -// ----------------- -void I_StartupGraphics(void) -{ - if (graphics_started) - return; - -#ifdef HWRENDER - if (M_CheckParm("-opengl")) - rendermode = render_opengl; - else - rendermode = render_soft; -#endif - - if (dedicated) - rendermode = render_none; - else - VID_Init(); - - // register exit code for graphics - I_AddExitFunc(I_ShutdownGraphics); - if (!dedicated) graphics_started = true; -} - -// ------------------ -// I_ShutdownGraphics -// Close the screen, restore previous video mode. -// ------------------ -void I_ShutdownGraphics(void) -{ - if (!graphics_started) - return; - - CONS_Printf("I_ShutdownGraphics()\n"); - - //FreeConsole(); - - // release windowed startup stuff - if (hDCMain) - { - ReleaseDC(hWndMain, hDCMain); - hDCMain = NULL; - } - if (bmiMain) - { - GlobalFree(bmiMain); - bmiMain = NULL; - } - -#ifdef HWRENDER - if (rendermode != render_soft) - { - HWR_Shutdown(); // free stuff from the hardware renderer - HWD.pfnShutdown(); // close 3d card display - Shutdown3DDriver(); // free the driver DLL - } -#endif - - // free the last video mode screen buffers - if (vid.buffer) - { - GlobalFree(vid.buffer); - vid.buffer = NULL; - } - -#ifdef HWRENDER - if (rendermode == render_soft) -#endif - CloseDirectDraw(); - - graphics_started = false; -} - -// -------------- -// I_UpdateNoBlit -// -------------- -void I_UpdateNoBlit(void) -{ - // what is this? -} - -// -------------- -// I_FinishUpdate -// -------------- -void I_FinishUpdate(void) -{ - int i; - - if (rendermode == render_none) - return; - - // draw captions if enabled - if (cv_closedcaptioning.value) - SCR_ClosedCaptions(); - - // display a graph of ticrate - if (cv_ticrate.value) - SCR_DisplayTicRate(); - - // - if (bDIBMode) - { - // paranoia - if (!hDCMain || !bmiMain || !vid.buffer) - return; - // main game loop, still in a window (-win parm) - SetDIBitsToDevice(hDCMain, 0, 0, 320, 200, 0, 0, 0, 200, vid.buffer, bmiMain, - DIB_RGB_COLORS); - } - else -#ifdef HWRENDER - if (rendermode != render_soft) - HWD.pfnFinishUpdate(cv_vidwait.value); - else -#endif - { - // DIRECT DRAW - // copy virtual screen to real screen - // can fail when not active (alt-tab) - if (LockScreen()) - { - /// \todo use directX blit here!!? a blit might use hardware with access - /// to main memory on recent hardware, and software blit of directX may be - /// optimized for p2 or mmx?? - VID_BlitLinearScreen(screens[0], ScreenPtr, vid.width*vid.bpp, vid.height, - vid.width*vid.bpp, ScreenPitch); - - UnlockScreen(); - - // swap screens - ScreenFlip(cv_vidwait.value); - } - } -} - -// -// This is meant to be called only by CONS_Printf() while game startup -// -void I_LoadingScreen(LPCSTR msg) -{ - RECT rect; - - // paranoia - if (!hDCMain || !bmiMain || !vid.buffer) - return; - - GetClientRect(vid.WndParent, &rect); - - SetDIBitsToDevice(hDCMain, 0, 0, 320, 200, 0, 0, 0, 200, vid.buffer, bmiMain, DIB_RGB_COLORS); - - if (msg) - { - if (rect.bottom - rect.top > 32) - rect.top = rect.bottom - 32; // put msg on bottom of window - SetBkMode(hDCMain, TRANSPARENT); - SetTextColor(hDCMain, RGB(0x00, 0x00, 0x00)); - DrawTextA(hDCMain, msg, -1, &rect, DT_WORDBREAK|DT_CENTER); - } -} - -// ------------ -// I_ReadScreen -// ------------ -void I_ReadScreen(UINT8 *scr) -{ - // DEBUGGING - if (rendermode != render_soft) - I_Error("I_ReadScreen: called while in non-software mode"); - VID_BlitLinearScreen(screens[0], scr, vid.width*vid.bpp, vid.height, vid.width*vid.bpp, - vid.rowbytes); -} - -// ------------ -// I_SetPalette -// ------------ -void I_SetPalette(RGBA_t *palette) -{ - int i; - - if (bDIBMode) - { - // set palette in RGBQUAD format, NOT THE SAME ORDER as PALETTEENTRY, grmpf! - RGBQUAD *pColors; - pColors = (RGBQUAD *)((char *)bmiMain + bmiMain->bmiHeader.biSize); - ZeroMemory(pColors, sizeof (RGBQUAD)*256); - for (i = 0; i < 256; i++, pColors++, palette++) - { - pColors->rgbRed = palette->s.red; - pColors->rgbGreen = palette->s.green; - pColors->rgbBlue = palette->s.blue; - } - } - else -#ifdef HWRENDER - if (rendermode == render_soft) -#endif - { - PALETTEENTRY mainpal[256]; - - // this clears the 'flag' for each color in palette - ZeroMemory(mainpal, sizeof mainpal); - - // set palette in PALETTEENTRY format - for (i = 0; i < 256; i++, palette++) - { - mainpal[i].peRed = palette->s.red; - mainpal[i].peGreen = palette->s.green; - mainpal[i].peBlue = palette->s.blue; - } - SetDDPalette(mainpal); // set DirectDraw palette - } -} - -// -// return number of video modes in pvidmodes list -// -INT32 VID_NumModes(void) -{ - return numvidmodes - NUMSPECIALMODES; //faB: dont accept the windowed mode 0 -} - -// return a video mode number from the dimensions -// returns any available video mode if the mode was not found -INT32 VID_GetModeForSize(INT32 w, INT32 h) -{ - vmode_t *pv = pvidmodes; - int modenum = 0; - - // skip the special modes so that it finds only fullscreen modes - for (; pv && modenum < NUMSPECIALMODES; pv = pv->pnext, ++modenum); - for (; pv; pv = pv->pnext, ++modenum) - if (pv->width == (unsigned)w && pv->height == (unsigned)h) - return modenum; - - // if not found, return the first mode available, - // preferably a full screen mode (all modes after the 'specialmodes') - if (numvidmodes > NUMSPECIALMODES) - return NUMSPECIALMODES; // use first full screen mode - - return 0; // no fullscreen mode, use windowed mode -} - -// -// Enumerate DirectDraw modes available -// -static int nummodes = 0; -static BOOL GetExtraModesCallback(int width, int height, int bpp) -{ - CONS_Printf("mode %d x %d x %d bpp\n", width, height, bpp); - - // skip all unwanted modes - if (highcolor && bpp != 15) - goto skip; - if (!highcolor && bpp != 8) - goto skip; - - if (bpp > 16 || width > MAXVIDWIDTH || height > MAXVIDHEIGHT) - goto skip; - - // check if we have space for this mode - if (nummodes >= MAX_EXTRA_MODES) - { - CONS_Printf("mode skipped (too many)\n"); - return FALSE; - } - - // store mode info - extra_modes[nummodes].pnext = &extra_modes[nummodes+1]; - memset(names[nummodes], 0, 10); - snprintf(names[nummodes], 9, "%dx%d", width, height); - - extra_modes[nummodes].name = names[nummodes]; - extra_modes[nummodes].width = width; - extra_modes[nummodes].height = height; - - // exactly, the current FinishUdpate() gets the rowbytes itself after locking the video buffer - // so for now we put anything here - extra_modes[nummodes].rowbytes = width; - extra_modes[nummodes].windowed = false; - extra_modes[nummodes].misc = 0; // unused - extra_modes[nummodes].pextradata = NULL; - extra_modes[nummodes].setmode = VID_SetDirectDrawMode; - - extra_modes[nummodes].numpages = 2; // double-buffer (but this value is unused) - - extra_modes[nummodes].bytesperpixel = (bpp+1)>>3; - - nummodes++; -skip: - return TRUE; -} - -// -// Collect info about DirectDraw display modes we use -// -static inline void VID_GetExtraModes(void) -{ - nummodes = 0; - EnumDirectDrawDisplayModes(GetExtraModesCallback); - - // add the extra modes (not 320x200) at the start of the mode list (if there are any) - if (nummodes) - { - extra_modes[nummodes-1].pnext = NULL; - pvidmodes = &extra_modes[0]; - numvidmodes += nummodes; - } -} - -// --------------- -// WindowMode_Init -// Add windowed modes to the start of the list, -// mode 0 is used for windowed console startup (works on all computers with no DirectX) -// --------------- -static void WindowMode_Init(void) -{ - specialmodes[NUMSPECIALMODES-1].pnext = pvidmodes; - pvidmodes = &specialmodes[0]; - numvidmodes += NUMSPECIALMODES; -} - -// ************************************************************************************* -// VID_Init -// Initialize Video modes subsystem -// ************************************************************************************* -static void VID_Init(void) -{ - vmode_t *pv; - int iMode; - - // if '-win' is specified on the command line, do not add DirectDraw modes - bWinParm = M_CheckParm("-win"); - - COM_AddCommand("vid_nummodes", VID_Command_NumModes_f); - COM_AddCommand("vid_modeinfo", VID_Command_ModeInfo_f); - COM_AddCommand("vid_modelist", VID_Command_ModeList_f); - COM_AddCommand("vid_mode", VID_Command_Mode_f); - - CV_RegisterVar(&cv_vidwait); - CV_RegisterVar(&cv_stretch); - - // setup the videmodes list, - // note that mode 0 must always be VGA mode 0x13 - pvidmodes = pcurrentmode = NULL; - numvidmodes = 0; - - // store the main window handle in viddef struct - SetWindowPos(hWndMain, HWND_NOTOPMOST, 0, 0, 0, 0, SWP_NOACTIVATE|SWP_NOSENDCHANGING|SWP_NOSIZE|SWP_NOMOVE); - vid.WndParent = hWndMain; - vid.buffer = NULL; - - // we startup in windowed mode using DIB bitmap - // we will use DirectDraw when switching fullScreen and entering main game loop - bDIBMode = TRUE; - bAppFullScreen = FALSE; - -#ifdef HWRENDER - // initialize the appropriate display device - if (rendermode != render_soft) - { - const char *drvname = NULL; - - switch (rendermode) - { - case render_opengl: - drvname = "r_opengl.dll"; - break; - default: - I_Error("Unknown hardware render mode"); - } - - // load the DLL - if (drvname && Init3DDriver(drvname)) - { - int hwdversion = HWD.pfnGetRenderVersion(); - if (hwdversion != VERSION) - CONS_Printf("WARNING: This r_opengl version is not supported, use it at your own risk.\n"); - - // perform initialisations - HWD.pfnInit(I_Error); - // get available display modes for the device - HWD.pfnGetModeList(&pvidmodes, &numvidmodes); - } - else - { - switch (rendermode) - { - case render_opengl: - I_Error("Error initializing OpenGL"); - default: - break; - } - rendermode = render_soft; - } - } - - if (rendermode == render_soft) -#endif - if (!bWinParm) - { - if (!CreateDirectDrawInstance()) - I_Error("Error initializing DirectDraw"); - // get available display modes for the device - VID_GetExtraModes(); - } - - // the game boots in 320x200 standard VGA, but - // we need a highcolor mode to run the game in highcolor - if (highcolor && !numvidmodes) - I_Error("Cannot run in highcolor - No 15bit highcolor DirectX video mode found."); - - // add windowed mode at the start of the list, very important! - WindowMode_Init(); - - if (!numvidmodes) - I_Error("No display modes available."); - - // DEBUG - for (iMode = 0, pv = pvidmodes; pv; pv = pv->pnext, iMode++) - CONS_Printf("#%02d: %dx%dx%dbpp (desc: '%s')\n", iMode, pv->width, pv->height, - pv->bytesperpixel, pv->name); - - // set the startup screen in a window - VID_SetMode(0); -} - -// -------------------------- -// VID_SetWindowedDisplayMode -// Display the startup 320x200 console screen into a window on the desktop, -// switching to fullscreen display only when we will enter the main game loop. -// - we can display error message boxes for startup errors -// - we can set the last used resolution only once, when entering the main game loop -// -------------------------- -static int WINAPI VID_SetWindowedDisplayMode(viddef_t *lvid, vmode_t *pcurrentmode) -{ - int iScrWidth, iScrHeight, iWinWidth, iWinHeight; - - pcurrentmode = NULL; -#ifdef DEBUG - CONS_Printf("VID_SetWindowedDisplayMode()\n"); -#endif - - lvid->u.numpages = 1; // not used - lvid->direct = NULL; // DOS remains - lvid->buffer = NULL; - - // allocate screens - if (!VID_FreeAndAllocVidbuffer(lvid)) - return -1; - - // lvid->buffer should be NULL here! - - bmiMain = (void *)GlobalAlloc(GPTR, sizeof (BITMAPINFO) + (sizeof (RGBQUAD)*256)); - if (!bmiMain) - I_Error("VID_SWDM(): No mem"); - - // setup a BITMAPINFO to allow copying our video buffer to the desktop, - // with color conversion as needed - bmiMain->bmiHeader.biSize = sizeof (BITMAPINFOHEADER); - bmiMain->bmiHeader.biWidth = lvid->width; - bmiMain->bmiHeader.biHeight= -(lvid->height); - bmiMain->bmiHeader.biPlanes = 1; - bmiMain->bmiHeader.biBitCount = 8; - bmiMain->bmiHeader.biCompression = BI_RGB; - - // center window on the desktop - iScrWidth = GetSystemMetrics(SM_CXFULLSCREEN); - iScrHeight = GetSystemMetrics(SM_CYFULLSCREEN); - - iWinWidth = lvid->width; - iWinWidth += GetSystemMetrics(SM_CXFIXEDFRAME) * 2; - - iWinHeight = lvid->height; - iWinHeight += GetSystemMetrics(SM_CYCAPTION); - iWinHeight += GetSystemMetrics(SM_CYFIXEDFRAME) * 2; - - if (devparm) - MoveWindow(hWndMain, (iScrWidth - iWinWidth), (iScrHeight - iWinHeight), iWinWidth, iWinHeight, TRUE); - else - MoveWindow(hWndMain, (iScrWidth - iWinWidth)>>1, (iScrHeight - iWinHeight)>>1, iWinWidth, iWinHeight, TRUE); - - SetFocus(hWndMain); - ShowWindow(hWndMain, SW_SHOW); - - hDCMain = GetDC(hWndMain); - if (!hDCMain) - I_Error("VID_SWDM(): GetDC FAILED"); - - return 1; -} - -// ======================================================================== -// Returns a vmode_t from the video modes list, given a video mode number. -// ======================================================================== -vmode_t *VID_GetModePtr(int modenum) -{ - vmode_t *pv; - - pv = pvidmodes; - if (!pv) - I_Error("VID_error: No video mode found\n"); - - while (modenum--) - { - pv = pv->pnext; - if (!pv) - I_Error("VID_error: Mode not available\n"); - } - return pv; -} - -// -// return the name of a video mode -// -const char *VID_GetModeName(INT32 modenum) -{ - return (VID_GetModePtr(modenum))->name; -} - -// ======================================================================== -// Sets a video mode -// ======================================================================== -INT32 VID_SetMode(INT32 modenum) -{ - int stat; - vmode_t *pnewmode; - vmode_t *poldmode; - - if (dedicated) - return 0; - - CONS_Printf("VID_SetMode(%d)\n", modenum); - - // if mode 0 (windowed) we must not be fullscreen already, - // if other mode, check it is not mode 0 and existing - if (modenum >= numvidmodes) - { - if (!pcurrentmode) - modenum = 0; // revert to the default base vid mode - else - I_Error("Unknown video mode: %d\n", modenum); - } - else if (bAppFullScreen && modenum < NUMSPECIALMODES) - I_Error("Tried to switch from fullscreen back to windowed mode %d\n", modenum); - - pnewmode = VID_GetModePtr(modenum); - - // dont switch to the same display mode - if (pnewmode == pcurrentmode) - return 1; - - // initialize the new mode - poldmode = pcurrentmode; - pcurrentmode = pnewmode; - - // initialize vidbuffer size for setmode - vid.width = pcurrentmode->width; - vid.height = pcurrentmode->height; - vid.rowbytes = pcurrentmode->rowbytes; - vid.bpp = pcurrentmode->bytesperpixel; - if (modenum) // if not 320x200 windowed mode, it's actually a hack - { - if (rendermode == render_opengl) - { - // don't accept depth < 16 for OpenGL mode (too much ugly) - if (cv_scr_depth.value < 16) - CV_SetValue(&cv_scr_depth, 16); - vid.bpp = cv_scr_depth.value/8; - vid.u.windowed = (bWinParm || !cv_fullscreen.value); - pcurrentmode->bytesperpixel = vid.bpp; - pcurrentmode->windowed = vid.u.windowed; - } - } - - stat = (*pcurrentmode->setmode)(&vid, pcurrentmode); - - if (stat == -1) - I_Error("Not enough mem for VID_SetMode\n"); - else if (stat == -2) - I_Error("Couldn't set video mode because it failed the test\n"); - else if (stat == -3) - I_Error("Couldn't set video mode because it failed the change?\n"); - else if (!stat) - I_Error("Couldn't set video mode %d (%dx%d %d bits)\n", modenum, vid.width, vid.height, (vid.bpp*8));// hardware could not setup mode - else - CONS_Printf(M_GetText("Mode changed to %d (%s)\n"), modenum, pcurrentmode->name); - - vid.modenum = modenum; - - // tell game engine to recalc all tables and realloc buffers based on new values - vid.recalc = 1; - - if (modenum < NUMSPECIALMODES) - { - // we are in startup windowed mode - bAppFullScreen = FALSE; - bDIBMode = TRUE; - } - else - { - // we switch to fullscreen - bAppFullScreen = TRUE; - bDIBMode = FALSE; -#ifdef HWRENDER - if (rendermode != render_soft) - { - // purge all patch graphics stored in software format - //Z_FreeTags (PU_PURGELEVEL, PU_PURGELEVEL+100); - HWR_Startup(); - } -#endif - } - - I_RestartSysMouse(); - return 1; -} - -// ======================================================================== -// Free the video buffer of the last video mode, -// allocate a new buffer for the video mode to set. -// ======================================================================== -static BOOL VID_FreeAndAllocVidbuffer(viddef_t *lvid) -{ - const DWORD vidbuffersize = (lvid->width * lvid->height * lvid->bpp * NUMSCREENS); - - // free allocated buffer for previous video mode - if (lvid->buffer) - GlobalFree(lvid->buffer); - - // allocate & clear the new screen buffer - lvid->buffer = GlobalAlloc(GPTR, vidbuffersize); - if (!lvid->buffer) - return FALSE; - - ZeroMemory(lvid->buffer, vidbuffersize); -#ifdef DEBUG - CONS_Printf("VID_FreeAndAllocVidbuffer done, vidbuffersize: %x\n",vidbuffersize); -#endif - return TRUE; -} - -// ======================================================================== -// Set video mode routine for DirectDraw display modes -// Out: 1 ok, -// 0 hardware could not set mode, -// -1 no mem -// ======================================================================== -static int WINAPI VID_SetDirectDrawMode(viddef_t *lvid, vmode_t *pcurrentmode) -{ - pcurrentmode = NULL; -#ifdef DEBUG - CONS_Printf("VID_SetDirectDrawMode...\n"); -#endif - - // DD modes do double-buffer page flipping, but the game engine doesn't need this.. - lvid->u.numpages = 2; - - // release ddraw surfaces etc.. - ReleaseChtuff(); - - // clean up any old vid buffer lying around, alloc new if needed - if (!VID_FreeAndAllocVidbuffer(lvid)) - return -1; // no mem - - // should clear video mem here - - // note use lvid->bpp instead of 8...will this be needed? will we support other than 256color - // in software ? - if (!InitDirectDrawe(hWndMain, lvid->width, lvid->height, 8, TRUE)) // TRUE currently always full screen - return 0; // could not set mode - - // this is NOT used with DirectDraw modes, game engine should never use this directly - // but rather render to memory bitmap buffer - lvid->direct = NULL; - - if (!cv_stretch.value && (float)vid.width/vid.height != ((float)BASEVIDWIDTH/BASEVIDHEIGHT)) - vid.height = (int)(vid.width * ((float)BASEVIDHEIGHT/BASEVIDWIDTH));// Adjust the height to match - - return 1; -} - -// ======================================================================== -// VIDEO MODE CONSOLE COMMANDS -// ======================================================================== - -// vid_nummodes -// -static void VID_Command_NumModes_f(void) -{ - CONS_Printf(M_GetText("%d video mode(s) available(s)\n"), VID_NumModes()); -} - -// vid_modeinfo -// -static void VID_Command_ModeInfo_f(void) -{ - vmode_t *pv; - int modenum; - - if (COM_Argc() != 2) - modenum = vid.modenum; // describe the current mode - else - modenum = atoi(COM_Argv(1)); // the given mode number - - if (modenum >= VID_NumModes() || modenum < NUMSPECIALMODES) // don't accept the windowed mode 0 - { - CONS_Printf(M_GetText("Video mode not present\n")); - return; - } - - pv = VID_GetModePtr(modenum); - - CONS_Printf("%s\n", VID_GetModeName(modenum)); - CONS_Printf(M_GetText("width: %d\nheight: %d\n"), - pv->width, pv->height); - if (rendermode == render_soft) - CONS_Printf(M_GetText("bytes per scanline: %d\nbytes per pixel: %d\nnumpages: %d\n"), - pv->rowbytes, pv->bytesperpixel, pv->numpages); -} - -// vid_modelist -// -static void VID_Command_ModeList_f(void) -{ - int i, nummodes; - const char *pinfo; - vmode_t *pv; - - nummodes = VID_NumModes(); - for (i = NUMSPECIALMODES; i <= nummodes; i++) - { - pv = VID_GetModePtr(i); - pinfo = VID_GetModeName(i); - - if (pv->bytesperpixel == 1) - CONS_Printf("%d: %s\n", i, pinfo); - else - CONS_Printf("%d: %s (hicolor)\n", i, pinfo); - } -} - -// vid_mode -// -static void VID_Command_Mode_f(void) -{ - int modenum; - - if (COM_Argc() != 2) - { - CONS_Printf(M_GetText("vid_mode : set video mode, current video mode %i\n"), vid.modenum); - return; - } - - modenum = atoi(COM_Argv(1)); - - if (modenum >= VID_NumModes() || modenum < NUMSPECIALMODES) // don't accept the windowed mode 0 - CONS_Printf(M_GetText("Video mode not present\n")); - else - setmodeneeded = modenum + 1; // request vid mode change -} diff --git a/src/win32ce/wince_stuff.c b/src/win32ce/wince_stuff.c deleted file mode 100644 index eb02e8ae2..000000000 --- a/src/win32ce/wince_stuff.c +++ /dev/null @@ -1,135 +0,0 @@ -//It's 4am and im writing replacement string functions.... - -#include -#include -#include "wince_stuff.h" - -char* _strlwr( char *string ) -{ - int i; - - if(!string) - return NULL; - - for(i=0 ; i < strlen(string); i++) - { - if((*(string + i) >= 65) && (*(string + i) <= 90)) - *(string+i) = *(string+i) + 32; - } - - return string; -} - -int _strnicmp(const char *first,const char *last, size_t count ) -{ - int f, l; - - do - { - if ( ((f = (unsigned char)(*(first++))) >= 'A') && (f <= 'Z') ) - f -= 'A' - 'a'; - - if ( ((l = (unsigned char)(*(last++))) >= 'A') && (l <= 'Z') ) - l -= 'A' - 'a'; - - } while ( --count && f && (f == l) ); - - return ( f - l ); -} - - -int _stricmp( const char *dst, const char *src ) -{ - int f, l; - - do - { - if ( ((f = (unsigned char)(*(dst++))) >= 'A') && (f <= 'Z') ) - f -= 'A' - 'a'; - - if ( ((l = (unsigned char)(*(src++))) >= 'A') && (l <= 'Z') ) - l -= 'A' - 'a'; - - } while ( f && (f == l) ); - - return(f - l); -} - - -char* _strupr( char *string ) -{ - int i; - - if(!string) - return NULL; - - for(i=0 ; i < strlen(string); i++) - { - if((*(string + i) >= 97) && (*(string + i) <= 122)) - *(string + i) = *(string + i) - 32; - } - - return string; -} - - - - -int isprint( int c ) -{ - if(c <= 31) - return FALSE; - - return TRUE; -} - - - -char* _strdup (const char * string) -{ - char *memory = NULL; - - if (!string) - return(NULL); - - if (memory = malloc(strlen(string) + 1)) - return(strcpy(memory,string)); - - return(NULL); -} - - - -char* strrchr (const char * string,int ch) -{ - char *start = (char *)string; - - while (*string++) /* find end of string */ - ; - /* search towards front */ - while (--string != start && *string != (char)ch) - ; - - if (*string == (char)ch) /* char found ? */ - return( (char *)string ); - - return(NULL); -} - -char* GetMyCWD(void) -{ - TCHAR fn[MAX_PATH]; - char* my_cwd,*p; - - GetModuleFileName(NULL,fn,MAX_PATH); - - my_cwd = (char*)malloc(MAX_PATH*sizeof(char)); - - WideCharToMultiByte(CP_ACP, WC_COMPOSITECHECK | WC_DEFAULTCHAR | WC_SEPCHARS, fn, -1, my_cwd, MAX_PATH, NULL, NULL); - p = strrchr(my_cwd,'\\'); - - if(p) - *(p+1) = '\0'; - - return my_cwd; -} diff --git a/src/win32ce/wince_stuff.h b/src/win32ce/wince_stuff.h deleted file mode 100644 index 5eab74848..000000000 --- a/src/win32ce/wince_stuff.h +++ /dev/null @@ -1,17 +0,0 @@ -#ifndef WINCE_STUFF_H -#define WINCE_STUFF_H - -/* -char* _strlwr(char *string); -int _strnicmp(const char *string1,const char *string2, size_t count ); -int _stricmp( const char *string1, const char *string2 ); -char* _strupr( char *string ); - -char *_strdup( const char *strSource ); -char *strrchr( const char *string, int c ); - -int isprint( int c ); -*/ -char* GetMyCWD(void); - -#endif \ No newline at end of file From f9077789e734f02441f82a127030798345e3b94f Mon Sep 17 00:00:00 2001 From: Monster Iestyn Date: Fri, 29 Sep 2017 23:29:29 +0100 Subject: [PATCH 060/111] Remove objs and bin subfolders for nds and WinCE --- bin/WinCE/ARMV4Dbg/.gitignore | 2 -- bin/WinCE/ARMV4IDbg/.gitignore | 2 -- bin/WinCE/ARMV4IRel/.gitignore | 2 -- bin/WinCE/ARMV4Rel/.gitignore | 2 -- bin/WinCE/ARMV4TDbg/.gitignore | 2 -- bin/WinCE/ARMV4TRel/.gitignore | 2 -- bin/WinCE/MIPS16Dbg/.gitignore | 2 -- bin/WinCE/MIPS16Rel/.gitignore | 2 -- bin/WinCE/MIPSIIDbg/.gitignore | 2 -- bin/WinCE/MIPSIIRel/.gitignore | 2 -- bin/WinCE/MIPSII_FPDbg/.gitignore | 2 -- bin/WinCE/MIPSII_FPRel/.gitignore | 2 -- bin/WinCE/MIPSIVDbg/.gitignore | 2 -- bin/WinCE/MIPSIVRel/.gitignore | 2 -- bin/WinCE/MIPSIV_FPDbg/.gitignore | 2 -- bin/WinCE/MIPSIV_FPRel/.gitignore | 2 -- bin/WinCE/Release/.gitignore | 2 -- bin/WinCE/SH3Dbg/.gitignore | 2 -- bin/WinCE/SH3Rel/.gitignore | 2 -- bin/WinCE/SH4Dbg/.gitignore | 2 -- bin/WinCE/SH4Rel/.gitignore | 2 -- bin/WinCE/X86Dbg/.gitignore | 2 -- bin/WinCE/X86Rel/.gitignore | 2 -- bin/WinCE/emulatorDbg/.gitignore | 2 -- bin/WinCE/emulatorRel/.gitignore | 2 -- bin/nds/Debug/.gitignore | 3 --- bin/nds/Release/.gitignore | 3 --- objs/WinCE/SDL/Release/.gitignore | 2 -- objs/nds/Debug/.gitignore | 2 -- objs/nds/Release/.gitignore | 2 -- 30 files changed, 62 deletions(-) delete mode 100644 bin/WinCE/ARMV4Dbg/.gitignore delete mode 100644 bin/WinCE/ARMV4IDbg/.gitignore delete mode 100644 bin/WinCE/ARMV4IRel/.gitignore delete mode 100644 bin/WinCE/ARMV4Rel/.gitignore delete mode 100644 bin/WinCE/ARMV4TDbg/.gitignore delete mode 100644 bin/WinCE/ARMV4TRel/.gitignore delete mode 100644 bin/WinCE/MIPS16Dbg/.gitignore delete mode 100644 bin/WinCE/MIPS16Rel/.gitignore delete mode 100644 bin/WinCE/MIPSIIDbg/.gitignore delete mode 100644 bin/WinCE/MIPSIIRel/.gitignore delete mode 100644 bin/WinCE/MIPSII_FPDbg/.gitignore delete mode 100644 bin/WinCE/MIPSII_FPRel/.gitignore delete mode 100644 bin/WinCE/MIPSIVDbg/.gitignore delete mode 100644 bin/WinCE/MIPSIVRel/.gitignore delete mode 100644 bin/WinCE/MIPSIV_FPDbg/.gitignore delete mode 100644 bin/WinCE/MIPSIV_FPRel/.gitignore delete mode 100644 bin/WinCE/Release/.gitignore delete mode 100644 bin/WinCE/SH3Dbg/.gitignore delete mode 100644 bin/WinCE/SH3Rel/.gitignore delete mode 100644 bin/WinCE/SH4Dbg/.gitignore delete mode 100644 bin/WinCE/SH4Rel/.gitignore delete mode 100644 bin/WinCE/X86Dbg/.gitignore delete mode 100644 bin/WinCE/X86Rel/.gitignore delete mode 100644 bin/WinCE/emulatorDbg/.gitignore delete mode 100644 bin/WinCE/emulatorRel/.gitignore delete mode 100644 bin/nds/Debug/.gitignore delete mode 100644 bin/nds/Release/.gitignore delete mode 100644 objs/WinCE/SDL/Release/.gitignore delete mode 100644 objs/nds/Debug/.gitignore delete mode 100644 objs/nds/Release/.gitignore diff --git a/bin/WinCE/ARMV4Dbg/.gitignore b/bin/WinCE/ARMV4Dbg/.gitignore deleted file mode 100644 index 42c6dc2c6..000000000 --- a/bin/WinCE/ARMV4Dbg/.gitignore +++ /dev/null @@ -1,2 +0,0 @@ -# DON'T REMOVE -# This keeps the folder from disappearing diff --git a/bin/WinCE/ARMV4IDbg/.gitignore b/bin/WinCE/ARMV4IDbg/.gitignore deleted file mode 100644 index 42c6dc2c6..000000000 --- a/bin/WinCE/ARMV4IDbg/.gitignore +++ /dev/null @@ -1,2 +0,0 @@ -# DON'T REMOVE -# This keeps the folder from disappearing diff --git a/bin/WinCE/ARMV4IRel/.gitignore b/bin/WinCE/ARMV4IRel/.gitignore deleted file mode 100644 index 42c6dc2c6..000000000 --- a/bin/WinCE/ARMV4IRel/.gitignore +++ /dev/null @@ -1,2 +0,0 @@ -# DON'T REMOVE -# This keeps the folder from disappearing diff --git a/bin/WinCE/ARMV4Rel/.gitignore b/bin/WinCE/ARMV4Rel/.gitignore deleted file mode 100644 index 42c6dc2c6..000000000 --- a/bin/WinCE/ARMV4Rel/.gitignore +++ /dev/null @@ -1,2 +0,0 @@ -# DON'T REMOVE -# This keeps the folder from disappearing diff --git a/bin/WinCE/ARMV4TDbg/.gitignore b/bin/WinCE/ARMV4TDbg/.gitignore deleted file mode 100644 index 42c6dc2c6..000000000 --- a/bin/WinCE/ARMV4TDbg/.gitignore +++ /dev/null @@ -1,2 +0,0 @@ -# DON'T REMOVE -# This keeps the folder from disappearing diff --git a/bin/WinCE/ARMV4TRel/.gitignore b/bin/WinCE/ARMV4TRel/.gitignore deleted file mode 100644 index 42c6dc2c6..000000000 --- a/bin/WinCE/ARMV4TRel/.gitignore +++ /dev/null @@ -1,2 +0,0 @@ -# DON'T REMOVE -# This keeps the folder from disappearing diff --git a/bin/WinCE/MIPS16Dbg/.gitignore b/bin/WinCE/MIPS16Dbg/.gitignore deleted file mode 100644 index 42c6dc2c6..000000000 --- a/bin/WinCE/MIPS16Dbg/.gitignore +++ /dev/null @@ -1,2 +0,0 @@ -# DON'T REMOVE -# This keeps the folder from disappearing diff --git a/bin/WinCE/MIPS16Rel/.gitignore b/bin/WinCE/MIPS16Rel/.gitignore deleted file mode 100644 index 42c6dc2c6..000000000 --- a/bin/WinCE/MIPS16Rel/.gitignore +++ /dev/null @@ -1,2 +0,0 @@ -# DON'T REMOVE -# This keeps the folder from disappearing diff --git a/bin/WinCE/MIPSIIDbg/.gitignore b/bin/WinCE/MIPSIIDbg/.gitignore deleted file mode 100644 index 42c6dc2c6..000000000 --- a/bin/WinCE/MIPSIIDbg/.gitignore +++ /dev/null @@ -1,2 +0,0 @@ -# DON'T REMOVE -# This keeps the folder from disappearing diff --git a/bin/WinCE/MIPSIIRel/.gitignore b/bin/WinCE/MIPSIIRel/.gitignore deleted file mode 100644 index 42c6dc2c6..000000000 --- a/bin/WinCE/MIPSIIRel/.gitignore +++ /dev/null @@ -1,2 +0,0 @@ -# DON'T REMOVE -# This keeps the folder from disappearing diff --git a/bin/WinCE/MIPSII_FPDbg/.gitignore b/bin/WinCE/MIPSII_FPDbg/.gitignore deleted file mode 100644 index 42c6dc2c6..000000000 --- a/bin/WinCE/MIPSII_FPDbg/.gitignore +++ /dev/null @@ -1,2 +0,0 @@ -# DON'T REMOVE -# This keeps the folder from disappearing diff --git a/bin/WinCE/MIPSII_FPRel/.gitignore b/bin/WinCE/MIPSII_FPRel/.gitignore deleted file mode 100644 index 42c6dc2c6..000000000 --- a/bin/WinCE/MIPSII_FPRel/.gitignore +++ /dev/null @@ -1,2 +0,0 @@ -# DON'T REMOVE -# This keeps the folder from disappearing diff --git a/bin/WinCE/MIPSIVDbg/.gitignore b/bin/WinCE/MIPSIVDbg/.gitignore deleted file mode 100644 index 42c6dc2c6..000000000 --- a/bin/WinCE/MIPSIVDbg/.gitignore +++ /dev/null @@ -1,2 +0,0 @@ -# DON'T REMOVE -# This keeps the folder from disappearing diff --git a/bin/WinCE/MIPSIVRel/.gitignore b/bin/WinCE/MIPSIVRel/.gitignore deleted file mode 100644 index 42c6dc2c6..000000000 --- a/bin/WinCE/MIPSIVRel/.gitignore +++ /dev/null @@ -1,2 +0,0 @@ -# DON'T REMOVE -# This keeps the folder from disappearing diff --git a/bin/WinCE/MIPSIV_FPDbg/.gitignore b/bin/WinCE/MIPSIV_FPDbg/.gitignore deleted file mode 100644 index 42c6dc2c6..000000000 --- a/bin/WinCE/MIPSIV_FPDbg/.gitignore +++ /dev/null @@ -1,2 +0,0 @@ -# DON'T REMOVE -# This keeps the folder from disappearing diff --git a/bin/WinCE/MIPSIV_FPRel/.gitignore b/bin/WinCE/MIPSIV_FPRel/.gitignore deleted file mode 100644 index 42c6dc2c6..000000000 --- a/bin/WinCE/MIPSIV_FPRel/.gitignore +++ /dev/null @@ -1,2 +0,0 @@ -# DON'T REMOVE -# This keeps the folder from disappearing diff --git a/bin/WinCE/Release/.gitignore b/bin/WinCE/Release/.gitignore deleted file mode 100644 index 42c6dc2c6..000000000 --- a/bin/WinCE/Release/.gitignore +++ /dev/null @@ -1,2 +0,0 @@ -# DON'T REMOVE -# This keeps the folder from disappearing diff --git a/bin/WinCE/SH3Dbg/.gitignore b/bin/WinCE/SH3Dbg/.gitignore deleted file mode 100644 index 42c6dc2c6..000000000 --- a/bin/WinCE/SH3Dbg/.gitignore +++ /dev/null @@ -1,2 +0,0 @@ -# DON'T REMOVE -# This keeps the folder from disappearing diff --git a/bin/WinCE/SH3Rel/.gitignore b/bin/WinCE/SH3Rel/.gitignore deleted file mode 100644 index 42c6dc2c6..000000000 --- a/bin/WinCE/SH3Rel/.gitignore +++ /dev/null @@ -1,2 +0,0 @@ -# DON'T REMOVE -# This keeps the folder from disappearing diff --git a/bin/WinCE/SH4Dbg/.gitignore b/bin/WinCE/SH4Dbg/.gitignore deleted file mode 100644 index 42c6dc2c6..000000000 --- a/bin/WinCE/SH4Dbg/.gitignore +++ /dev/null @@ -1,2 +0,0 @@ -# DON'T REMOVE -# This keeps the folder from disappearing diff --git a/bin/WinCE/SH4Rel/.gitignore b/bin/WinCE/SH4Rel/.gitignore deleted file mode 100644 index 42c6dc2c6..000000000 --- a/bin/WinCE/SH4Rel/.gitignore +++ /dev/null @@ -1,2 +0,0 @@ -# DON'T REMOVE -# This keeps the folder from disappearing diff --git a/bin/WinCE/X86Dbg/.gitignore b/bin/WinCE/X86Dbg/.gitignore deleted file mode 100644 index 42c6dc2c6..000000000 --- a/bin/WinCE/X86Dbg/.gitignore +++ /dev/null @@ -1,2 +0,0 @@ -# DON'T REMOVE -# This keeps the folder from disappearing diff --git a/bin/WinCE/X86Rel/.gitignore b/bin/WinCE/X86Rel/.gitignore deleted file mode 100644 index 42c6dc2c6..000000000 --- a/bin/WinCE/X86Rel/.gitignore +++ /dev/null @@ -1,2 +0,0 @@ -# DON'T REMOVE -# This keeps the folder from disappearing diff --git a/bin/WinCE/emulatorDbg/.gitignore b/bin/WinCE/emulatorDbg/.gitignore deleted file mode 100644 index 42c6dc2c6..000000000 --- a/bin/WinCE/emulatorDbg/.gitignore +++ /dev/null @@ -1,2 +0,0 @@ -# DON'T REMOVE -# This keeps the folder from disappearing diff --git a/bin/WinCE/emulatorRel/.gitignore b/bin/WinCE/emulatorRel/.gitignore deleted file mode 100644 index 42c6dc2c6..000000000 --- a/bin/WinCE/emulatorRel/.gitignore +++ /dev/null @@ -1,2 +0,0 @@ -# DON'T REMOVE -# This keeps the folder from disappearing diff --git a/bin/nds/Debug/.gitignore b/bin/nds/Debug/.gitignore deleted file mode 100644 index 9bfc4a51d..000000000 --- a/bin/nds/Debug/.gitignore +++ /dev/null @@ -1,3 +0,0 @@ -*.arm9 -*.elf* -*.nds diff --git a/bin/nds/Release/.gitignore b/bin/nds/Release/.gitignore deleted file mode 100644 index 9bfc4a51d..000000000 --- a/bin/nds/Release/.gitignore +++ /dev/null @@ -1,3 +0,0 @@ -*.arm9 -*.elf* -*.nds diff --git a/objs/WinCE/SDL/Release/.gitignore b/objs/WinCE/SDL/Release/.gitignore deleted file mode 100644 index 42c6dc2c6..000000000 --- a/objs/WinCE/SDL/Release/.gitignore +++ /dev/null @@ -1,2 +0,0 @@ -# DON'T REMOVE -# This keeps the folder from disappearing diff --git a/objs/nds/Debug/.gitignore b/objs/nds/Debug/.gitignore deleted file mode 100644 index 42c6dc2c6..000000000 --- a/objs/nds/Debug/.gitignore +++ /dev/null @@ -1,2 +0,0 @@ -# DON'T REMOVE -# This keeps the folder from disappearing diff --git a/objs/nds/Release/.gitignore b/objs/nds/Release/.gitignore deleted file mode 100644 index 42c6dc2c6..000000000 --- a/objs/nds/Release/.gitignore +++ /dev/null @@ -1,2 +0,0 @@ -# DON'T REMOVE -# This keeps the folder from disappearing From c4480273122e0d17f77d8fb9bb4533af0fa223fa Mon Sep 17 00:00:00 2001 From: Monster Iestyn Date: Fri, 29 Sep 2017 23:30:27 +0100 Subject: [PATCH 061/111] remove this one leftover from the DC port I missed earlier --- src/sdl12/i_video.c | 5 ----- 1 file changed, 5 deletions(-) diff --git a/src/sdl12/i_video.c b/src/sdl12/i_video.c index 1e6f76c10..4431b063e 100644 --- a/src/sdl12/i_video.c +++ b/src/sdl12/i_video.c @@ -190,11 +190,6 @@ static void SDLSetMode(INT32 width, INT32 height, INT32 bpp, Uint32 flags) else return; realwidth = (Uint16)width; realheight = (Uint16)height; -#ifdef HAVE_DCSDL - //SDL_DC_SetWindow(320,200); - SDL_DC_EmulateMouse(SDL_FALSE); - SDL_DC_EmulateKeyboard(SDL_TRUE); -#endif #ifdef FILTERS if (vidSurface && preSurface && f2xSurface) { From 8ffec8920718eb8a15570f85e9be9d485dbb1634 Mon Sep 17 00:00:00 2001 From: toasterbabe Date: Mon, 25 Sep 2017 20:35:04 +0100 Subject: [PATCH 062/111] * Fix music not being properly restored when toggling music on/off ingame. * Fix non-centiseconds rings position. --- src/m_menu.c | 20 ++++++++++++++++---- src/st_stuff.c | 2 +- 2 files changed, 17 insertions(+), 5 deletions(-) diff --git a/src/m_menu.c b/src/m_menu.c index fe768fce3..12bab3b0c 100644 --- a/src/m_menu.c +++ b/src/m_menu.c @@ -9425,7 +9425,10 @@ static void M_ToggleDigital(INT32 choice) if (nodigimusic) return; S_Init(cv_soundvolume.value, cv_digmusicvolume.value, cv_midimusicvolume.value); S_StopMusic(); - S_ChangeMusicInternal("_clear", false); + if (Playing()) + P_RestoreMusic(&players[consoleplayer]); + else + S_ChangeMusicInternal("_clear", false); //M_StartMessage(M_GetText("Digital Music Enabled\n"), NULL, MM_NOTHING); } else @@ -9433,7 +9436,10 @@ static void M_ToggleDigital(INT32 choice) if (digital_disabled) { digital_disabled = false; - S_ChangeMusicInternal("_clear", false); + if (Playing()) + P_RestoreMusic(&players[consoleplayer]); + else + S_ChangeMusicInternal("_clear", false); //M_StartMessage(M_GetText("Digital Music Enabled\n"), NULL, MM_NOTHING); } else @@ -9475,7 +9481,10 @@ static void M_ToggleMIDI(INT32 choice) I_InitMIDIMusic(); if (nomidimusic) return; S_Init(cv_soundvolume.value, cv_digmusicvolume.value, cv_midimusicvolume.value); - S_ChangeMusicInternal("_clear", false); + if (Playing()) + P_RestoreMusic(&players[consoleplayer]); + else + S_ChangeMusicInternal("_clear", false); //M_StartMessage(M_GetText("MIDI Music Enabled\n"), NULL, MM_NOTHING); } else @@ -9483,7 +9492,10 @@ static void M_ToggleMIDI(INT32 choice) if (music_disabled) { music_disabled = false; - S_ChangeMusicInternal("_clear", false); + if (Playing()) + P_RestoreMusic(&players[consoleplayer]); + else + S_ChangeMusicInternal("_clear", false); //M_StartMessage(M_GetText("MIDI Music Enabled\n"), NULL, MM_NOTHING); } else diff --git a/src/st_stuff.c b/src/st_stuff.c index 889eeb57d..09d63963f 100644 --- a/src/st_stuff.c +++ b/src/st_stuff.c @@ -132,7 +132,7 @@ hudinfo_t hudinfo[NUMHUDITEMS] = { 16, 42}, // HUD_RINGS { 220, 10}, // HUD_RINGSSPLIT - { 104, 42}, // HUD_RINGSNUM + { 96, 42}, // HUD_RINGSNUM { 296, 10}, // HUD_RINGSNUMSPLIT { 120, 42}, // HUD_RINGSNUMTICS From 20709f55b53d82948922e8e2178a0b80cb90c1ab Mon Sep 17 00:00:00 2001 From: Monster Iestyn Date: Sat, 30 Sep 2017 17:00:37 +0100 Subject: [PATCH 063/111] Murdered MiniGL (yes it's not a port, but we don't need it anymore anyway) --- src/Makefile | 18 +--- src/hardware/r_minigl/r_minigl.c | 33 ------ src/hardware/r_minigl/r_minigl.dev | 89 --------------- src/hardware/r_minigl/r_minigl.dsp | 103 ------------------ src/hardware/r_opengl/r_opengl.c | 167 +++-------------------------- src/hardware/r_opengl/r_opengl.h | 2 - 6 files changed, 18 insertions(+), 394 deletions(-) delete mode 100644 src/hardware/r_minigl/r_minigl.c delete mode 100644 src/hardware/r_minigl/r_minigl.dev delete mode 100644 src/hardware/r_minigl/r_minigl.dsp diff --git a/src/Makefile b/src/Makefile index 26fd2f409..e84821d67 100644 --- a/src/Makefile +++ b/src/Makefile @@ -33,8 +33,6 @@ # compile all HW render and 3D sound DLLs for the set # opengl_dll # Pure Mingw only, compile OpenGL HW render DLL -# minigl_dll -# Pure Mingw only, compile MiniGL HW render DLL # ds3d_dll # Pure Mingw only, compile DirectX DirectSound HW sound DLL # fmod_dll @@ -570,7 +568,7 @@ else dll : opengl_dll endif ifdef MINGW -all_dll: opengl_dll minigl_dll ds3d_dll fmod_dll openal_dll +all_dll: opengl_dll ds3d_dll fmod_dll openal_dll opengl_dll: $(BIN)/r_opengl.dll $(BIN)/r_opengl.dll: $(OBJDIR)/ogl_win.o $(OBJDIR)/r_opengl.o @@ -581,12 +579,6 @@ ifndef NOUPX -$(UPX) $(UPX_OPTS) $@ endif -minigl_dll: $(BIN)/r_minigl.dll -$(BIN)/r_minigl.dll: $(OBJDIR)/r_minigl.o - -$(MKDIR) $(BIN) - @echo Linking R_MiniGL.dll... - $(CC) --shared $^ -o $@ -g -Wl,--add-stdcall-alias -lgdi32 - ds3d_dll: $(BIN)/s_ds3d.dll $(BIN)/s_ds3d.dll: $(OBJDIR)/s_ds3d.o @echo Linking S_DS3d.dll... @@ -725,14 +717,6 @@ $(OBJDIR)/ogl_win.o: hardware/r_opengl/ogl_win.c hardware/r_opengl/r_opengl.h \ d_event.h d_player.h p_pspr.h m_fixed.h tables.h info.h d_think.h \ p_mobj.h doomdata.h d_ticcmd.h r_defs.h hardware/hw_dll.h $(CC) $(CFLAGS) $(WFLAGS) -D_WINDOWS -mwindows -c $< -o $@ - -$(OBJDIR)/r_minigl.o: hardware/r_minigl/r_minigl.c hardware/r_opengl/r_opengl.h \ - doomdef.h doomtype.h g_state.h m_swap.h hardware/hw_drv.h screen.h \ - command.h hardware/hw_data.h hardware/hw_glide.h hardware/hw_defs.h \ - hardware/hw_md2.h hardware/hw_glob.h hardware/hw_main.h hardware/hw_clip.h am_map.h \ - d_event.h d_player.h p_pspr.h m_fixed.h tables.h info.h d_think.h \ - p_mobj.h doomdata.h d_ticcmd.h r_defs.h hardware/hw_dll.h - $(CC) $(CFLAGS) $(WFLAGS) -D_WINDOWS -mwindows -c $< -o $@ endif ifndef NOHS diff --git a/src/hardware/r_minigl/r_minigl.c b/src/hardware/r_minigl/r_minigl.c deleted file mode 100644 index b2482a552..000000000 --- a/src/hardware/r_minigl/r_minigl.c +++ /dev/null @@ -1,33 +0,0 @@ -// Emacs style mode select -*- C++ -*- -//----------------------------------------------------------------------------- -// -// Copyright (C) 1998-2000 by DooM Legacy Team. -// -// 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 2 -// 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. -//----------------------------------------------------------------------------- -/// \file -/// \brief MiniGL API for Doom Legacy - - -// tell r_opengl.cpp to compile for MiniGL Drivers -#define MINI_GL_COMPATIBILITY - -// tell r_opengl.cpp to compile for ATI Rage Pro OpenGL driver -//#define ATI_RAGE_PRO_COMPATIBILITY - -#define DRIVER_STRING "HWRAPI Init(): SRB2 MiniGL renderer" - -// Include this at end -#include "../r_opengl/r_opengl.c" -#include "../r_opengl/ogl_win.c" - -// That's all ;-) -// Just, be sure to do the right changes in r_opengl.cpp diff --git a/src/hardware/r_minigl/r_minigl.dev b/src/hardware/r_minigl/r_minigl.dev deleted file mode 100644 index edf725ac5..000000000 --- a/src/hardware/r_minigl/r_minigl.dev +++ /dev/null @@ -1,89 +0,0 @@ -[Project] -FileName=r_minigl.dev -Name=r_minigl -Ver=1 -IsCpp=1 -Type=3 -Compiler=-D_M_IX86=500_@@_-Wall_@@_-D_WINDOWS_@@_-DUSE_WGL_SWAP_@@_-Os_@@_-fomit-frame-pointer_@@_ -CppCompiler= -Includes= -Linker=--def ../r_mingw.def_@@_-lgdi32_@@_ -Libs= -UnitCount=4 -Folders= -ObjFiles= -PrivateResource= -ResourceIncludes= -MakeIncludes= -Icon= -ExeOutput=C:\srb2demo2 -ObjectOutput=..\..\..\objs\Mingw\r_minigl -OverrideOutput=1 -OverrideOutputName=r_minigl.dll -HostApplication= -CommandLine= -IncludeVersionInfo=0 -SupportXPThemes=0 -CompilerSet=0 -CompilerSettings=00000000000000000111d0 -UseCustomMakefile=0 -CustomMakefile= - -[Unit1] -FileName=..\r_opengl\ogl_win.c -Folder= -Compile=0 -CompileCpp=0 -Link=0 -Priority=1000 -OverrideBuildCmd=0 -BuildCmd=$(CC) -c ogl_win.c -o ../../../objs/Mingw/r_minigl/ogl_win.o $(CFLAGS) - -[Unit2] -FileName=..\r_opengl\r_opengl.c -Folder= -Compile=0 -CompileCpp=0 -Link=0 -Priority=1000 -OverrideBuildCmd=0 -BuildCmd=$(CC) -c r_opengl.c -o ../../../objs/Mingw/r_minigl/r_opengl.o $(CFLAGS) - -[Unit3] -FileName=..\r_opengl\r_opengl.h -Folder= -Compile=1 -CompileCpp=1 -Link=1 -Priority=1000 -OverrideBuildCmd=0 -BuildCmd= - -[VersionInfo] -Major=0 -Minor=1 -Release=1 -Build=1 -LanguageID=1033 -CharsetID=1252 -CompanyName= -FileVersion=0.1 -FileDescription=Developed using the Dev-C++ IDE -InternalName= -LegalCopyright= -LegalTrademarks= -OriginalFilename=r_opengl.exe -ProductName=r_opengl -ProductVersion=0.1 -AutoIncBuildNr=0 - -[Unit4] -FileName=r_minigl.c -CompileCpp=0 -Folder=r_minigl -Compile=1 -Link=1 -Priority=1000 -OverrideBuildCmd=0 -BuildCmd=$(CC) -c r_minigl.c -o ../../../objs/Mingw/r_minigl/r_minigl.o $(CFLAGS) - diff --git a/src/hardware/r_minigl/r_minigl.dsp b/src/hardware/r_minigl/r_minigl.dsp deleted file mode 100644 index 686ca35a3..000000000 --- a/src/hardware/r_minigl/r_minigl.dsp +++ /dev/null @@ -1,103 +0,0 @@ -# Microsoft Developer Studio Project File - Name="r_minigl" - Package Owner=<4> -# Microsoft Developer Studio Generated Build File, Format Version 6.00 -# ** DO NOT EDIT ** - -# TARGTYPE "Win32 (x86) Dynamic-Link Library" 0x0102 - -CFG=r_minigl - Win32 Debug -!MESSAGE This is not a valid makefile. To build this project using NMAKE, -!MESSAGE use the Export Makefile command and run -!MESSAGE -!MESSAGE NMAKE /f "r_minigl.mak". -!MESSAGE -!MESSAGE You can specify a configuration when running NMAKE -!MESSAGE by defining the macro CFG on the command line. For example: -!MESSAGE -!MESSAGE NMAKE /f "r_minigl.mak" CFG="r_minigl - Win32 Debug" -!MESSAGE -!MESSAGE Possible choices for configuration are: -!MESSAGE -!MESSAGE "r_minigl - Win32 Release" (based on "Win32 (x86) Dynamic-Link Library") -!MESSAGE "r_minigl - Win32 Debug" (based on "Win32 (x86) Dynamic-Link Library") -!MESSAGE - -# Begin Project -# PROP AllowPerConfigDependencies 0 -# PROP Scc_ProjName "" -# PROP Scc_LocalPath "" -CPP=cl.exe -MTL=midl.exe -RSC=rc.exe - -!IF "$(CFG)" == "r_minigl - Win32 Release" - -# PROP BASE Use_MFC 0 -# PROP BASE Use_Debug_Libraries 0 -# PROP BASE Output_Dir "..\..\..\objs\Release" -# PROP BASE Intermediate_Dir "..\..\..\objs\Release" -# PROP BASE Target_Dir "" -# PROP Use_MFC 0 -# PROP Use_Debug_Libraries 0 -# PROP Output_Dir "..\..\..\bin\VC\Release\r_minigl" -# PROP Intermediate_Dir "..\..\..\objs\VC\Release\r_minigl" -# PROP Ignore_Export_Lib 1 -# PROP Target_Dir "" -# ADD BASE CPP /nologo /MT /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "R_MINIGL_EXPORTS" /YX /FD /c -# ADD CPP /nologo /G5 /MT /W3 /GX /Zi /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "__WIN32__" /D "__MSC__" /FR /FD /c -# SUBTRACT CPP /YX -# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /win32 -# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32 -# ADD BASE RSC /l 0x80c /d "NDEBUG" -# ADD RSC /l 0x40c /d "NDEBUG" -BSC32=bscmake.exe -# ADD BASE BSC32 /nologo -# ADD BSC32 /nologo -LINK32=link.exe -# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /machine:I386 -# ADD LINK32 user32.lib gdi32.lib /nologo /dll /pdb:"..\..\..\bin\VC\Release\r_minigl.pdb" /machine:I386 /out:"..\..\..\bin\VC\Release\r_minigl.dll" -# SUBTRACT LINK32 /pdb:none /debug - -!ELSEIF "$(CFG)" == "r_minigl - Win32 Debug" - -# PROP BASE Use_MFC 0 -# PROP BASE Use_Debug_Libraries 1 -# PROP BASE Output_Dir "..\..\..\objs\Debug" -# PROP BASE Intermediate_Dir "..\..\..\objs\Debug" -# PROP BASE Target_Dir "" -# PROP Use_MFC 0 -# PROP Use_Debug_Libraries 1 -# PROP Output_Dir "..\..\..\bin\VC\Debug\r_minigl" -# PROP Intermediate_Dir "..\..\..\objs\VC\Debug\r_minigl" -# PROP Ignore_Export_Lib 1 -# PROP Target_Dir "" -# ADD BASE CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "R_MINIGL_EXPORTS" /YX /FD /GZ /c -# ADD CPP /nologo /MTd /W4 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "__WIN32__" /D "__MSC__" /D "_MBCS" /D "_USRDLL" /D "R_MINIGL_EXPORTS" /FR /FD /GZ /c -# SUBTRACT CPP /YX -# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /win32 -# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /win32 -# ADD BASE RSC /l 0x80c /d "_DEBUG" -# ADD RSC /l 0x40c /d "_DEBUG" -BSC32=bscmake.exe -# ADD BASE BSC32 /nologo -# ADD BSC32 /nologo -LINK32=link.exe -# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /debug /machine:I386 /pdbtype:sept -# ADD LINK32 ouser32.lib gdi32.lib /nologo /dll /pdb:"..\..\..\bin\VC\Debug\r_minigl.pdb" /debug /machine:I386 /out:"..\..\..\bin\VC\Debug\r_minigl.dll" /pdbtype:sept -# SUBTRACT LINK32 /pdb:none - -!ENDIF - -# Begin Target - -# Name "r_minigl - Win32 Release" -# Name "r_minigl - Win32 Debug" -# Begin Source File - -SOURCE=.\r_minigl.c -# End Source File -# Begin Source File - -SOURCE=..\r_opengl\r_opengl.h -# End Source File -# End Target -# End Project diff --git a/src/hardware/r_opengl/r_opengl.c b/src/hardware/r_opengl/r_opengl.c index 3432a93e0..10b8315bf 100644 --- a/src/hardware/r_opengl/r_opengl.c +++ b/src/hardware/r_opengl/r_opengl.c @@ -90,11 +90,9 @@ static FTransform md2_transform; const GLubyte *gl_extensions = NULL; //Hurdler: 04/10/2000: added for the kick ass coronas as Boris wanted;-) -#ifndef MINI_GL_COMPATIBILITY static GLdouble modelMatrix[16]; static GLdouble projMatrix[16]; static GLint viewport[4]; -#endif #ifdef USE_PALETTED_TEXTURE @@ -154,9 +152,7 @@ float byteasfloat(UINT8 fbyte) static I_Error_t I_Error_GL = NULL; -#ifndef MINI_GL_COMPATIBILITY static boolean gl13 = false; // whether we can use opengl 1.3 functions -#endif // -----------------+ @@ -194,9 +190,7 @@ FUNCPRINTF void DBG_Printf(const char *lpFmt, ...) #define pglScissor glScissor #define pglEnable glEnable #define pglDisable glDisable -#ifndef MINI_GL_COMPATIBILITY #define pglGetDoublev glGetDoublev -#endif //glGetIntegerv //glGetString @@ -212,11 +206,7 @@ FUNCPRINTF void DBG_Printf(const char *lpFmt, ...) #define pglPushMatrix glPushMatrix #define pglPopMatrix glPopMatrix #define pglLoadIdentity glLoadIdentity -#ifdef MINI_GL_COMPATIBILITY -#define pglMultMatrixf glMultMatrixf -#else #define pglMultMatrixd glMultMatrixd -#endif #define pglRotatef glRotatef #define pglScalef glScalef #define pglTranslatef glTranslatef @@ -281,10 +271,8 @@ typedef void (APIENTRY * PFNglEnable) (GLenum cap); static PFNglEnable pglEnable; typedef void (APIENTRY * PFNglDisable) (GLenum cap); static PFNglDisable pglDisable; -#ifndef MINI_GL_COMPATIBILITY typedef void (APIENTRY * PFNglGetDoublev) (GLenum pname, GLdouble *params); static PFNglGetDoublev pglGetDoublev; -#endif //glGetIntegerv //glGetString @@ -309,13 +297,8 @@ typedef void (APIENTRY * PFNglPopMatrix) (void); static PFNglPopMatrix pglPopMatrix; typedef void (APIENTRY * PFNglLoadIdentity) (void); static PFNglLoadIdentity pglLoadIdentity; -#ifdef MINI_GL_COMPATIBILITY -typedef void (APIENTRY * PFNglMultMatrixf) (const GLfloat *m); -static PFNglMultMatrixf pglMultMatrixf; -#else typedef void (APIENTRY * PFNglMultMatrixd) (const GLdouble *m); static PFNglMultMatrixd pglMultMatrixd; -#endif typedef void (APIENTRY * PFNglRotatef) (GLfloat angle, GLfloat x, GLfloat y, GLfloat z); static PFNglRotatef pglRotatef; typedef void (APIENTRY * PFNglScalef) (GLfloat x, GLfloat y, GLfloat z); @@ -383,15 +366,12 @@ static PFNglCopyTexImage2D pglCopyTexImage2D; typedef GLint (APIENTRY * PFNgluBuild2DMipmaps) (GLenum target, GLint internalFormat, GLsizei width, GLsizei height, GLenum format, GLenum type, const void *data); static PFNgluBuild2DMipmaps pgluBuild2DMipmaps; -#ifndef MINI_GL_COMPATIBILITY /* 1.3 functions for multitexturing */ typedef void (APIENTRY *PFNglActiveTexture) (GLenum); static PFNglActiveTexture pglActiveTexture; typedef void (APIENTRY *PFNglMultiTexCoord2f) (GLenum, GLfloat, GLfloat); static PFNglMultiTexCoord2f pglMultiTexCoord2f; -#endif -#ifndef MINI_GL_COMPATIBILITY /* 1.2 Parms */ /* GL_CLAMP_TO_EDGE_EXT */ #ifndef GL_CLAMP_TO_EDGE @@ -412,14 +392,6 @@ static PFNglMultiTexCoord2f pglMultiTexCoord2f; #define GL_TEXTURE1 0x84C1 #endif -#endif - -#ifdef MINI_GL_COMPATIBILITY -#undef GL_CLAMP_TO_EDGE -#undef GL_TEXTURE_MIN_LOD -#undef GL_TEXTURE_MAX_LOD -#endif - boolean SetupGLfunc(void) { #ifndef STATIC_OPENGL @@ -442,9 +414,7 @@ boolean SetupGLfunc(void) GETOPENGLFUNC(pglScissor , glScissor) GETOPENGLFUNC(pglEnable , glEnable) GETOPENGLFUNC(pglDisable , glDisable) -#ifndef MINI_GL_COMPATIBILITY GETOPENGLFUNC(pglGetDoublev , glGetDoublev) -#endif GETOPENGLFUNC(pglGetIntegerv , glGetIntegerv) GETOPENGLFUNC(pglGetString , glGetString) @@ -458,11 +428,7 @@ boolean SetupGLfunc(void) GETOPENGLFUNC(pglPushMatrix , glPushMatrix) GETOPENGLFUNC(pglPopMatrix , glPopMatrix) GETOPENGLFUNC(pglLoadIdentity , glLoadIdentity) -#ifdef MINI_GL_COMPATIBILITY - GETOPENGLFUNC(pglMultMatrixf , glMultMatrixf) -#else GETOPENGLFUNC(pglMultMatrixd , glMultMatrixd) -#endif GETOPENGLFUNC(pglRotatef , glRotatef) GETOPENGLFUNC(pglScalef , glScalef) GETOPENGLFUNC(pglTranslatef , glTranslatef) @@ -506,9 +472,6 @@ boolean SetupGLfunc(void) // This has to be done after the context is created so the version number can be obtained boolean SetupGLFunc13(void) { -#ifdef MINI_GL_COMPATIBILITY - return false; -#else const GLubyte *version = pglGetString(GL_VERSION); int glmajor, glminor; @@ -544,7 +507,6 @@ boolean SetupGLFunc13(void) else DBG_Printf("GL_ARB_multitexture support: disabled\n"); return true; -#endif } // -----------------+ @@ -562,11 +524,7 @@ static void SetNoTexture(void) static void GLPerspective(GLdouble fovy, GLdouble aspect) { -#ifdef MINI_GL_COMPATIBILITY - GLfloat m[4][4] = -#else GLdouble m[4][4] = -#endif { { 1.0f, 0.0f, 0.0f, 0.0f}, { 0.0f, 1.0f, 0.0f, 0.0f}, @@ -589,14 +547,9 @@ static void GLPerspective(GLdouble fovy, GLdouble aspect) m[1][1] = cotangent; m[2][2] = -(zFar + zNear) / deltaZ; m[3][2] = -2.0f * zNear * zFar / deltaZ; -#ifdef MINI_GL_COMPATIBILITY - pglMultMatrixf(&m[0][0]); -#else pglMultMatrixd(&m[0][0]); -#endif } -#ifndef MINI_GL_COMPATIBILITY static void GLProject(GLdouble objX, GLdouble objY, GLdouble objZ, GLdouble* winX, GLdouble* winY, GLdouble* winZ) { @@ -636,7 +589,6 @@ static void GLProject(GLdouble objX, GLdouble objY, GLdouble objZ, *winY=in[1]; *winZ=in[2]; } -#endif // -----------------+ // SetModelView : @@ -663,10 +615,8 @@ void SetModelView(GLint w, GLint h) //pglScalef(1.0f, 320.0f/200.0f, 1.0f); // gr_scalefrustum (ORIGINAL_ASPECT) // added for new coronas' code (without depth buffer) -#ifndef MINI_GL_COMPATIBILITY pglGetIntegerv(GL_VIEWPORT, viewport); pglGetDoublev(GL_PROJECTION_MATRIX, projMatrix); -#endif } @@ -743,9 +693,7 @@ void SetStates(void) // bp : when no t&l :) pglLoadIdentity(); pglScalef(1.0f, 1.0f, -1.0f); -#ifndef MINI_GL_COMPATIBILITY pglGetDoublev(GL_MODELVIEW_MATRIX, modelMatrix); // added for new coronas' code (without depth buffer) -#endif } @@ -909,10 +857,8 @@ EXPORT void HWRAPI(GClipRect) (INT32 minx, INT32 miny, INT32 maxx, INT32 maxy, f pglMatrixMode(GL_MODELVIEW); // added for new coronas' code (without depth buffer) -#ifndef MINI_GL_COMPATIBILITY pglGetIntegerv(GL_VIEWPORT, viewport); pglGetDoublev(GL_PROJECTION_MATRIX, projMatrix); -#endif } @@ -959,12 +905,6 @@ EXPORT void HWRAPI(Draw2DLine) (F2DCoord * v1, GLRGBAFloat c; // DBG_Printf ("DrawLine() (%f %f %f) %d\n", v1->x, -v1->y, -v1->z, v1->argb); -#ifdef MINI_GL_COMPATIBILITY - GLfloat px1, px2, px3, px4; - GLfloat py1, py2, py3, py4; - GLfloat dx, dy; - GLfloat angle; -#endif // BP: we should reflect the new state in our variable //SetBlend(PF_Modulated|PF_NoTexture); @@ -976,33 +916,11 @@ EXPORT void HWRAPI(Draw2DLine) (F2DCoord * v1, c.blue = byte2float[Color.s.blue]; c.alpha = byte2float[Color.s.alpha]; -#ifndef MINI_GL_COMPATIBILITY pglColor4fv(&c.red); // is in RGBA float format pglBegin(GL_LINES); pglVertex3f(v1->x, -v1->y, 1.0f); pglVertex3f(v2->x, -v2->y, 1.0f); pglEnd(); -#else - if (v2->x != v1->x) - angle = (float)atan((v2->y-v1->y)/(v2->x-v1->x)); - else - angle = N_PI_DEMI; - dx = (float)sin(angle) / (float)screen_width; - dy = (float)cos(angle) / (float)screen_height; - - px1 = v1->x - dx; py1 = v1->y + dy; - px2 = v2->x - dx; py2 = v2->y + dy; - px3 = v2->x + dx; py3 = v2->y - dy; - px4 = v1->x + dx; py4 = v1->y - dy; - - pglColor4f(c.red, c.green, c.blue, c.alpha); - pglBegin(GL_TRIANGLE_FAN); - pglVertex3f(px1, -py1, 1); - pglVertex3f(px2, -py2, 1); - pglVertex3f(px3, -py3, 1); - pglVertex3f(px4, -py4, 1); - pglEnd(); -#endif pglEnable(GL_TEXTURE_2D); } @@ -1188,7 +1106,6 @@ EXPORT void HWRAPI(SetTexture) (FTextureInfo *pTexInfo) !(pTexInfo->flags & TF_CHROMAKEYED)) { // do nothing here. - // Not a problem with MiniGL since we don't use paletted texture } else #endif @@ -1281,15 +1198,6 @@ EXPORT void HWRAPI(SetTexture) (FTextureInfo *pTexInfo) pglTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, mag_filter); pglTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, min_filter); -#ifdef MINI_GL_COMPATIBILITY - //if (pTexInfo->grInfo.format == GR_TEXFMT_ALPHA_INTENSITY_88) - //pglTexImage2D(GL_TEXTURE_2D, 0, GL_LUMINANCE_ALPHA, w, h, 0, GL_RGBA, GL_UNSIGNED_BYTE, ptex); - //else - if (MipMap) - pgluBuild2DMipmaps(GL_TEXTURE_2D, 0, w, h, GL_RGBA, GL_UNSIGNED_BYTE, ptex); - else - pglTexImage2D(GL_TEXTURE_2D, 0, 4, w, h, 0, GL_RGBA, GL_UNSIGNED_BYTE, ptex); -#else #ifdef USE_PALETTED_TEXTURE //Hurdler: not really supported and not tested recently if (glColorTableEXT && @@ -1360,7 +1268,6 @@ EXPORT void HWRAPI(SetTexture) (FTextureInfo *pTexInfo) else pglTexImage2D(GL_TEXTURE_2D, 0, textureformatGL, w, h, 0, GL_RGBA, GL_UNSIGNED_BYTE, ptex); } -#endif if (pTexInfo->flags & TF_WRAPX) pglTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_REPEAT); @@ -1384,19 +1291,6 @@ EXPORT void HWRAPI(SetTexture) (FTextureInfo *pTexInfo) else // initialisation de la liste gr_cachetail = gr_cachehead = pTexInfo; } -#ifdef MINI_GL_COMPATIBILITY - switch (pTexInfo->flags) - { - case 0 : - pglTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP); - pglTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP); - break; - default: - pglTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_REPEAT); - pglTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_REPEAT); - break; - } -#endif } @@ -1410,18 +1304,11 @@ EXPORT void HWRAPI(DrawPolygon) (FSurfaceInfo *pSurf, FBITFIELD PolyFlags) { FUINT i; -#ifndef MINI_GL_COMPATIBILITY FUINT j; -#endif GLRGBAFloat c = {0,0,0,0}; -#ifdef MINI_GL_COMPATIBILITY - if (PolyFlags & PF_Corona) - PolyFlags &= ~PF_NoDepthTest; -#else if ((PolyFlags & PF_Corona) && (oglflags & GLF_NOZBUFREAD)) PolyFlags &= ~(PF_NoDepthTest|PF_Corona); -#endif SetBlend(PolyFlags); //TODO: inline (#pragma..) @@ -1443,16 +1330,11 @@ EXPORT void HWRAPI(DrawPolygon) (FSurfaceInfo *pSurf, c.alpha = byte2float[pSurf->FlatColor.s.alpha]; } -#ifdef MINI_GL_COMPATIBILITY - pglColor4f(c.red, c.green, c.blue, c.alpha); -#else pglColor4fv(&c.red); // is in RGBA float format -#endif } // this test is added for new coronas' code (without depth buffer) // I think I should do a separate function for drawing coronas, so it will be a little faster -#ifndef MINI_GL_COMPATIBILITY if (PolyFlags & PF_Corona) // check to see if we need to draw the corona { //rem: all 8 (or 8.0f) values are hard coded: it can be changed to a higher value @@ -1499,7 +1381,6 @@ EXPORT void HWRAPI(DrawPolygon) (FSurfaceInfo *pSurf, c.alpha *= scalef; // change the alpha value (it seems better than changing the size of the corona) pglColor4fv(&c.red); } -#endif if (PolyFlags & PF_MD2) return; @@ -1602,7 +1483,6 @@ EXPORT void HWRAPI(SetSpecialState) (hwdspecialstate_t IdState, INT32 Value) case HWD_SET_TEXTUREFILTERMODE: switch (Value) { -#ifndef MINI_GL_COMPATIBILITY case HWD_SET_TEXTUREFILTER_TRILINEAR: min_filter = GL_LINEAR_MIPMAP_LINEAR; mag_filter = GL_LINEAR; @@ -1631,7 +1511,6 @@ EXPORT void HWRAPI(SetSpecialState) (hwdspecialstate_t IdState, INT32 Value) mag_filter = GL_NEAREST; MipMap = GL_TRUE; break; -#endif default: mag_filter = GL_LINEAR; min_filter = GL_NEAREST; @@ -1861,9 +1740,7 @@ EXPORT void HWRAPI(SetTransform) (FTransform *stransform) GLPerspective(53.13l, 2*ASPECT_RATIO); // 53.13 = 2*atan(0.5) else GLPerspective(stransform->fovxangle, ASPECT_RATIO); -#ifndef MINI_GL_COMPATIBILITY pglGetDoublev(GL_PROJECTION_MATRIX, projMatrix); // added for new coronas' code (without depth buffer) -#endif pglMatrixMode(GL_MODELVIEW); } else @@ -1877,15 +1754,11 @@ EXPORT void HWRAPI(SetTransform) (FTransform *stransform) else //Hurdler: is "fov" correct? GLPerspective(fov, ASPECT_RATIO); -#ifndef MINI_GL_COMPATIBILITY pglGetDoublev(GL_PROJECTION_MATRIX, projMatrix); // added for new coronas' code (without depth buffer) -#endif pglMatrixMode(GL_MODELVIEW); } -#ifndef MINI_GL_COMPATIBILITY pglGetDoublev(GL_MODELVIEW_MATRIX, modelMatrix); // added for new coronas' code (without depth buffer) -#endif } EXPORT INT32 HWRAPI(GetTextureUsed) (void) @@ -2060,9 +1933,7 @@ EXPORT void HWRAPI(DoScreenWipe)(float alpha) INT32 texsize = 2048; float xfix, yfix; -#ifndef MINI_GL_COMPATIBILITY INT32 fademaskdownloaded = tex_downloaded; // the fade mask that has been set -#endif // Use a power of two texture, dammit if(screen_width <= 1024) @@ -2102,7 +1973,6 @@ EXPORT void HWRAPI(DoScreenWipe)(float alpha) SetBlend(PF_Modulated|PF_Translucent|PF_NoDepthTest|PF_Clip|PF_NoZClip); -#ifndef MINI_GL_COMPATIBILITY if (gl13) { // Draw the end screen that fades in @@ -2145,31 +2015,28 @@ EXPORT void HWRAPI(DoScreenWipe)(float alpha) } else { -#endif - // Draw the end screen that fades in - pglBindTexture(GL_TEXTURE_2D, endScreenWipe); - pglBegin(GL_QUADS); - pglColor4f(1.0f, 1.0f, 1.0f, alpha); + // Draw the end screen that fades in + pglBindTexture(GL_TEXTURE_2D, endScreenWipe); + pglBegin(GL_QUADS); + pglColor4f(1.0f, 1.0f, 1.0f, alpha); - // Bottom left - pglTexCoord2f(0.0f, 0.0f); - pglVertex3f(-1.0f, -1.0f, 1.0f); + // Bottom left + pglTexCoord2f(0.0f, 0.0f); + pglVertex3f(-1.0f, -1.0f, 1.0f); - // Top left - pglTexCoord2f(0.0f, yfix); - pglVertex3f(-1.0f, 1.0f, 1.0f); + // Top left + pglTexCoord2f(0.0f, yfix); + pglVertex3f(-1.0f, 1.0f, 1.0f); - // Top right - pglTexCoord2f(xfix, yfix); - pglVertex3f(1.0f, 1.0f, 1.0f); + // Top right + pglTexCoord2f(xfix, yfix); + pglVertex3f(1.0f, 1.0f, 1.0f); - // Bottom right - pglTexCoord2f(xfix, 0.0f); - pglVertex3f(1.0f, -1.0f, 1.0f); - pglEnd(); -#ifndef MINI_GL_COMPATIBILITY + // Bottom right + pglTexCoord2f(xfix, 0.0f); + pglVertex3f(1.0f, -1.0f, 1.0f); + pglEnd(); } -#endif tex_downloaded = 0; // 0 so it knows it doesn't have any of the cached patches downloaded right now } diff --git a/src/hardware/r_opengl/r_opengl.h b/src/hardware/r_opengl/r_opengl.h index 6a2eba1df..e6cf164bb 100644 --- a/src/hardware/r_opengl/r_opengl.h +++ b/src/hardware/r_opengl/r_opengl.h @@ -37,13 +37,11 @@ #include #include -#ifndef MINI_GL_COMPATIBILITY #ifdef STATIC_OPENGL // Because of the 1.3 functions, you'll need GLext to compile it if static #define GL_GLEXT_PROTOTYPES #include #endif #endif -#endif #define _CREATE_DLL_ // necessary for Unix AND Windows #include "../../doomdef.h" From d38873854d5b0f48791a7046a0d277f1d207e2fb Mon Sep 17 00:00:00 2001 From: Monster Iestyn Date: Sat, 30 Sep 2017 17:09:45 +0100 Subject: [PATCH 064/111] Now that MiniGL is gone, the 1.2 Params macros will always be defined ATI_RAGE_PRO_COMPATIBILITY isn't used, and was disabled in r_minigl.c (the only other file that mentioned it) anyway. So let's get rid of support for it! --- src/hardware/r_opengl/r_opengl.c | 18 ------------------ 1 file changed, 18 deletions(-) diff --git a/src/hardware/r_opengl/r_opengl.c b/src/hardware/r_opengl/r_opengl.c index 10b8315bf..bd1cd95eb 100644 --- a/src/hardware/r_opengl/r_opengl.c +++ b/src/hardware/r_opengl/r_opengl.c @@ -928,9 +928,7 @@ EXPORT void HWRAPI(Draw2DLine) (F2DCoord * v1, static void Clamp2D(GLenum pname) { pglTexParameteri(GL_TEXTURE_2D, pname, GL_CLAMP); // fallback clamp -#ifdef GL_CLAMP_TO_EDGE pglTexParameteri(GL_TEXTURE_2D, pname, GL_CLAMP_TO_EDGE); -#endif } @@ -957,11 +955,7 @@ EXPORT void HWRAPI(SetBlend) (FBITFIELD PolyFlags) pglBlendFunc(GL_SRC_ALPHA, GL_ZERO); // 0 alpha = holes in texture break; case PF_Additive & PF_Blending: -#ifdef ATI_RAGE_PRO_COMPATIBILITY - pglBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); // alpha = level of transparency -#else pglBlendFunc(GL_SRC_ALPHA, GL_ONE); // src * alpha + dest -#endif break; case PF_Environment & PF_Blending: pglBlendFunc(GL_ONE, GL_ONE_MINUS_SRC_ALPHA); @@ -1215,15 +1209,11 @@ EXPORT void HWRAPI(SetTexture) (FTextureInfo *pTexInfo) if (MipMap) { pgluBuild2DMipmaps(GL_TEXTURE_2D, GL_LUMINANCE_ALPHA, w, h, GL_RGBA, GL_UNSIGNED_BYTE, ptex); -#ifdef GL_TEXTURE_MIN_LOD pglTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_LOD, 0); -#endif -#ifdef GL_TEXTURE_MAX_LOD if (pTexInfo->flags & TF_TRANSPARENT) pglTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAX_LOD, 0); // No mippmaps on transparent stuff else pglTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAX_LOD, 4); -#endif //pglTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_LINEAR_MIPMAP_LINEAR); } else @@ -1235,15 +1225,11 @@ EXPORT void HWRAPI(SetTexture) (FTextureInfo *pTexInfo) if (MipMap) { pgluBuild2DMipmaps(GL_TEXTURE_2D, GL_ALPHA, w, h, GL_RGBA, GL_UNSIGNED_BYTE, ptex); -#ifdef GL_TEXTURE_MIN_LOD pglTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_LOD, 0); -#endif -#ifdef GL_TEXTURE_MAX_LOD if (pTexInfo->flags & TF_TRANSPARENT) pglTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAX_LOD, 0); // No mippmaps on transparent stuff else pglTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAX_LOD, 4); -#endif //pglTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_LINEAR_MIPMAP_LINEAR); } else @@ -1255,15 +1241,11 @@ EXPORT void HWRAPI(SetTexture) (FTextureInfo *pTexInfo) { pgluBuild2DMipmaps(GL_TEXTURE_2D, textureformatGL, w, h, GL_RGBA, GL_UNSIGNED_BYTE, ptex); // Control the mipmap level of detail -#ifdef GL_TEXTURE_MIN_LOD pglTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_LOD, 0); // the lower the number, the higer the detail -#endif -#ifdef GL_TEXTURE_MAX_LOD if (pTexInfo->flags & TF_TRANSPARENT) pglTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAX_LOD, 0); // No mippmaps on transparent stuff else pglTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAX_LOD, 5); -#endif } else pglTexImage2D(GL_TEXTURE_2D, 0, textureformatGL, w, h, 0, GL_RGBA, GL_UNSIGNED_BYTE, ptex); From 52620ac9b1fcf547fa5d299f5b167f2cdb18d430 Mon Sep 17 00:00:00 2001 From: Monster Iestyn Date: Sat, 7 Oct 2017 18:11:14 +0100 Subject: [PATCH 065/111] Obliterated OS/2 --- src/console.c | 2 +- src/d_netfil.c | 3 --- src/doomtype.h | 4 +--- src/i_tcp.c | 6 +----- src/mserv.c | 8 -------- src/sdl/i_system.c | 12 +----------- src/sdl12/i_system.c | 12 +----------- src/tmap.s | 6 +++--- 8 files changed, 8 insertions(+), 45 deletions(-) diff --git a/src/console.c b/src/console.c index ed3edbc55..3a6e4729d 100644 --- a/src/console.c +++ b/src/console.c @@ -1223,7 +1223,7 @@ void CONS_Printf(const char *fmt, ...) // if not in display loop, force screen update if (con_startup) { -#if (defined (_WINDOWS)) || (defined (__OS2__) && !defined (HAVE_SDL)) +#ifdef _WINDOWS static lumpnum_t con_backpic_lumpnum = UINT32_MAX; patch_t *con_backpic; diff --git a/src/d_netfil.c b/src/d_netfil.c index 90e03041f..bf94e0ca7 100644 --- a/src/d_netfil.c +++ b/src/d_netfil.c @@ -11,9 +11,6 @@ /// \brief Transfer a file using HSendPacket. #include -#ifdef __OS2__ -#include -#endif // __OS2__ #include #include diff --git a/src/doomtype.h b/src/doomtype.h index 4af899ed0..b0623de9a 100644 --- a/src/doomtype.h +++ b/src/doomtype.h @@ -80,15 +80,13 @@ typedef long ssize_t; #define NOIPX #endif -#if defined (_MSC_VER) || defined (__OS2__) - // Microsoft VisualC++ #ifdef _MSC_VER + // Microsoft VisualC++ #if (_MSC_VER <= 1800) // MSVC 2013 and back #define snprintf _snprintf #if (_MSC_VER <= 1200) // MSVC 2012 and back #define vsnprintf _vsnprintf #endif -#endif #endif #define strncasecmp strnicmp #define strcasecmp stricmp diff --git a/src/i_tcp.c b/src/i_tcp.c index 3bbebadf2..b6c72f859 100644 --- a/src/i_tcp.c +++ b/src/i_tcp.c @@ -18,10 +18,6 @@ #ifdef __GNUC__ #include #endif -#ifdef __OS2__ -#include -#include -#endif // __OS2__ #ifndef NO_IPV6 #define HAVE_IPV6 @@ -51,7 +47,7 @@ #else #ifdef USE_WINSOCK1 #include -#elif !defined (SCOUW2) && !defined (SCOUW7) && !defined (__OS2__) +#elif !defined (SCOUW2) && !defined (SCOUW7) #ifndef USE_WINSOCK #include #endif //normal BSD API diff --git a/src/mserv.c b/src/mserv.c index efbf89359..e354329ed 100644 --- a/src/mserv.c +++ b/src/mserv.c @@ -36,10 +36,6 @@ #include // socket(),... #endif //!HAVE_IPV6 #else -#ifdef __OS2__ -#include -#endif // __OS2__ - #include #ifdef __APPLE_CC__ #ifndef _BSD_SOCKLEN_T_ @@ -54,10 +50,6 @@ #include // timeval,... (TIMEOUT) #include #endif // _WIN32 - -#ifdef __OS2__ -#include -#endif // __OS2__ #endif // !NONET #include "doomstat.h" diff --git a/src/sdl/i_system.c b/src/sdl/i_system.c index d0f000b4e..3e46a9b6a 100644 --- a/src/sdl/i_system.c +++ b/src/sdl/i_system.c @@ -2417,7 +2417,7 @@ char *I_GetUserName(void) INT32 I_mkdir(const char *dirname, INT32 unixright) { //[segabor] -#if defined (__unix__) || defined(__APPLE__) || defined (UNIXCOMMON) || defined (__CYGWIN__) || defined (__OS2__) +#if defined (__unix__) || defined(__APPLE__) || defined (UNIXCOMMON) || defined (__CYGWIN__) return mkdir(dirname, unixright); #elif defined (_WIN32) UNREFERENCED_PARAMETER(unixright); /// \todo should implement ntright under nt... @@ -2763,16 +2763,6 @@ UINT32 I_GetFreeMem(UINT32 *total) if (total) *total = (UINT32)info.dwTotalPhys; return (UINT32)info.dwAvailPhys; -#elif defined (__OS2__) - UINT32 pr_arena; - - if (total) - DosQuerySysInfo( QSV_TOTPHYSMEM, QSV_TOTPHYSMEM, - (PVOID) total, sizeof (UINT32)); - DosQuerySysInfo( QSV_MAXPRMEM, QSV_MAXPRMEM, - (PVOID) &pr_arena, sizeof (UINT32)); - - return pr_arena; #elif defined (LINUX) || defined (LINUX64) /* Linux */ char buf[1024]; diff --git a/src/sdl12/i_system.c b/src/sdl12/i_system.c index e759449a7..9a8f0bb46 100644 --- a/src/sdl12/i_system.c +++ b/src/sdl12/i_system.c @@ -2435,7 +2435,7 @@ char *I_GetUserName(void) INT32 I_mkdir(const char *dirname, INT32 unixright) { //[segabor] -#if defined (__unix__) || defined(__APPLE__) || defined (UNIXCOMMON) || defined (__CYGWIN__) || defined (__OS2__) +#if defined (__unix__) || defined(__APPLE__) || defined (UNIXCOMMON) || defined (__CYGWIN__) return mkdir(dirname, unixright); #elif defined (_WIN32) UNREFERENCED_PARAMETER(unixright); /// \todo should implement ntright under nt... @@ -2775,16 +2775,6 @@ UINT32 I_GetFreeMem(UINT32 *total) if (total) *total = (UINT32)info.dwTotalPhys; return (UINT32)info.dwAvailPhys; -#elif defined (__OS2__) - UINT32 pr_arena; - - if (total) - DosQuerySysInfo( QSV_TOTPHYSMEM, QSV_TOTPHYSMEM, - (PVOID) total, sizeof (UINT32)); - DosQuerySysInfo( QSV_MAXPRMEM, QSV_MAXPRMEM, - (PVOID) &pr_arena, sizeof (UINT32)); - - return pr_arena; #else // Guess 48 MB. if (total) diff --git a/src/tmap.s b/src/tmap.s index a828a9d46..ea1f1c26c 100644 --- a/src/tmap.s +++ b/src/tmap.s @@ -60,7 +60,7 @@ C(vidwidth): .long 0 //use this one out of the inner loops //so you don't need to patch everywhere... #ifdef USEASM -#if !defined( LINUX) && !defined( __OS2__) +#if !defined( LINUX) .text #endif .globl C(ASM_PatchRowBytes) @@ -616,7 +616,7 @@ vskydone: ystep: .long 0 xstep: .long 0 C(texwidth): .long 64 // texture width -#if !defined( LINUX) && !defined( __OS2__) +#if !defined( LINUX) .text #endif #ifdef LINUX @@ -1338,7 +1338,7 @@ wdone: .data advancetable: .long 0, 0 -#if !defined( LINUX) && !defined( __OS2__) +#if !defined( LINUX) .text #endif #ifdef LINUX From b2bd07367791d26abf645c2e9d79a9f362a9449b Mon Sep 17 00:00:00 2001 From: Monster Iestyn Date: Sat, 7 Oct 2017 18:32:50 +0100 Subject: [PATCH 066/111] Slaughtered SDL 1.2 code --- src/Makefile | 6 - src/Makefile.cfg | 6 - src/sdl12/IMG_xpm.c | 506 -- src/sdl12/MakeCYG.cfg | 17 - src/sdl12/MakeNIX.cfg | 61 - src/sdl12/Makefile.cfg | 137 - src/sdl12/SDL_icon.xpm | 425 -- src/sdl12/SDL_main/SDL_dummy_main.c | 12 - src/sdl12/SDL_main/SDL_macosx_main.h | 11 - src/sdl12/SDL_main/SDL_macosx_main.m | 374 -- src/sdl12/SDL_main/SDL_openxdk_main.c | 7 - src/sdl12/SDL_main/SDL_win32_main.c | 334 - src/sdl12/SRB2Pandora/Makefile.cfg | 39 - src/sdl12/SRB2Pandora/PXML.xml | 17 - src/sdl12/SRB2Pandora/icon.png | Bin 1690 -> 0 bytes src/sdl12/Srb2SDL-vc10.vcxproj | 1464 ----- src/sdl12/Srb2SDL-vc9.vcproj | 5845 ----------------- src/sdl12/Srb2SDL.dsp | 1057 --- src/sdl12/Srb2SDL.dsw | 74 - src/sdl12/Srb2SDL.ico | Bin 372798 -> 0 bytes src/sdl12/dosstr.c | 38 - src/sdl12/endtxt.c | 234 - src/sdl12/endtxt.h | 24 - src/sdl12/filter/filters.c | 1000 --- src/sdl12/filter/filters.h | 212 - src/sdl12/filter/hq2x.c | 3125 --------- src/sdl12/filter/hq2x.h | 1824 ----- src/sdl12/filter/interp.h | 306 - src/sdl12/filter/lq2x.c | 564 -- src/sdl12/filter/lq2x.h | 1284 ---- src/sdl12/filter/main.c | 15 - src/sdl12/hwsym_sdl.c | 181 - src/sdl12/hwsym_sdl.h | 23 - src/sdl12/i_cdmus.c | 572 -- src/sdl12/i_main.c | 166 - src/sdl12/i_net.c | 442 -- src/sdl12/i_system.c | 2897 -------- src/sdl12/i_ttf.c | 330 - src/sdl12/i_ttf.h | 86 - src/sdl12/i_video.c | 1803 ----- .../macosx/English.lproj/InfoPlist.strings | 0 src/sdl12/macosx/Info.plist | 28 - src/sdl12/macosx/Srb2mac.icns | Bin 79787 -> 0 bytes .../macosx/Srb2mac.pbproj/project.pbxproj | 3546 ---------- .../macosx/Srb2mac.xcodeproj/project.pbxproj | 1510 ----- src/sdl12/macosx/mac_alert.c | 45 - src/sdl12/macosx/mac_alert.h | 27 - src/sdl12/mixer_sound.c | 822 --- src/sdl12/ogl_sdl.c | 306 - src/sdl12/ogl_sdl.h | 30 - src/sdl12/sdl_sound.c | 1993 ------ src/sdl12/sdlmain.h | 65 - src/sdl12/srb2.ttf | Bin 318280 -> 0 bytes 53 files changed, 33890 deletions(-) delete mode 100644 src/sdl12/IMG_xpm.c delete mode 100644 src/sdl12/MakeCYG.cfg delete mode 100644 src/sdl12/MakeNIX.cfg delete mode 100644 src/sdl12/Makefile.cfg delete mode 100644 src/sdl12/SDL_icon.xpm delete mode 100644 src/sdl12/SDL_main/SDL_dummy_main.c delete mode 100644 src/sdl12/SDL_main/SDL_macosx_main.h delete mode 100644 src/sdl12/SDL_main/SDL_macosx_main.m delete mode 100644 src/sdl12/SDL_main/SDL_openxdk_main.c delete mode 100644 src/sdl12/SDL_main/SDL_win32_main.c delete mode 100644 src/sdl12/SRB2Pandora/Makefile.cfg delete mode 100644 src/sdl12/SRB2Pandora/PXML.xml delete mode 100644 src/sdl12/SRB2Pandora/icon.png delete mode 100644 src/sdl12/Srb2SDL-vc10.vcxproj delete mode 100644 src/sdl12/Srb2SDL-vc9.vcproj delete mode 100644 src/sdl12/Srb2SDL.dsp delete mode 100644 src/sdl12/Srb2SDL.dsw delete mode 100644 src/sdl12/Srb2SDL.ico delete mode 100644 src/sdl12/dosstr.c delete mode 100644 src/sdl12/endtxt.c delete mode 100644 src/sdl12/endtxt.h delete mode 100644 src/sdl12/filter/filters.c delete mode 100644 src/sdl12/filter/filters.h delete mode 100644 src/sdl12/filter/hq2x.c delete mode 100644 src/sdl12/filter/hq2x.h delete mode 100644 src/sdl12/filter/interp.h delete mode 100644 src/sdl12/filter/lq2x.c delete mode 100644 src/sdl12/filter/lq2x.h delete mode 100644 src/sdl12/filter/main.c delete mode 100644 src/sdl12/hwsym_sdl.c delete mode 100644 src/sdl12/hwsym_sdl.h delete mode 100644 src/sdl12/i_cdmus.c delete mode 100644 src/sdl12/i_main.c delete mode 100644 src/sdl12/i_net.c delete mode 100644 src/sdl12/i_system.c delete mode 100644 src/sdl12/i_ttf.c delete mode 100644 src/sdl12/i_ttf.h delete mode 100644 src/sdl12/i_video.c delete mode 100644 src/sdl12/macosx/English.lproj/InfoPlist.strings delete mode 100644 src/sdl12/macosx/Info.plist delete mode 100644 src/sdl12/macosx/Srb2mac.icns delete mode 100644 src/sdl12/macosx/Srb2mac.pbproj/project.pbxproj delete mode 100644 src/sdl12/macosx/Srb2mac.xcodeproj/project.pbxproj delete mode 100644 src/sdl12/macosx/mac_alert.c delete mode 100644 src/sdl12/macosx/mac_alert.h delete mode 100644 src/sdl12/mixer_sound.c delete mode 100644 src/sdl12/ogl_sdl.c delete mode 100644 src/sdl12/ogl_sdl.h delete mode 100644 src/sdl12/sdl_sound.c delete mode 100644 src/sdl12/sdlmain.h delete mode 100644 src/sdl12/srb2.ttf diff --git a/src/Makefile b/src/Makefile index e84821d67..99079a370 100644 --- a/src/Makefile +++ b/src/Makefile @@ -165,13 +165,7 @@ UNIXCOMMON=1 endif ifdef SDL -#SDL 2.0 -ifndef SDL12 include sdl/Makefile.cfg -#SDL 1.2 -else - include sdl12/Makefile.cfg -endif #ifndef SDL12 endif #ifdef SDL ifdef DISTCC diff --git a/src/Makefile.cfg b/src/Makefile.cfg index 41c5c5238..c0dbd5022 100644 --- a/src/Makefile.cfg +++ b/src/Makefile.cfg @@ -357,13 +357,7 @@ OBJDUMP_OPTS?=--wide --source --line-numbers LD=$(CC) ifdef SDL -# SDL 2.0 -ifndef SDL12 INTERFACE=sdl -# SDL 1.2 -else - INTERFACE=sdl12 -endif OBJDIR:=$(OBJDIR)/SDL endif diff --git a/src/sdl12/IMG_xpm.c b/src/sdl12/IMG_xpm.c deleted file mode 100644 index e08736d66..000000000 --- a/src/sdl12/IMG_xpm.c +++ /dev/null @@ -1,506 +0,0 @@ -/* - SDL_image: An example image loading library for use with SDL - Copyright (C) 1999-2004 Sam Lantinga - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Library General Public - License as published by the Free Software Foundation; either - version 2 of the License, or (at your option) any later version. - - This library 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 - Library General Public License for more details. - - You should have received a copy of the GNU Library General Public - License along with this library; if not, write to the Free - Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - - Sam Lantinga - slouken@libsdl.org -*/ - -/* $Id: IMG_xpm.c,v 1.10 2004/01/04 22:04:38 slouken Exp $ */ - -/* - * XPM (X PixMap) image loader: - * - * Supports the XPMv3 format, EXCEPT: - * - hotspot coordinates are ignored - * - only colour ('c') colour symbols are used - * - rgb.txt is not used (for portability), so only RGB colours - * are recognized (#rrggbb etc) - only a few basic colour names are - * handled - * - * The result is an 8bpp indexed surface if possible, otherwise 32bpp. - * The colourkey is correctly set if transparency is used. - * - * Besides the standard API, also provides - * - * SDL_Surface *IMG_ReadXPMFromArray(char **xpm) - * - * that reads the image data from an XPM file included in the C source. - * - * TODO: include rgb.txt here. The full table (from solaris 2.6) only - * requires about 13K in binary form. - */ - -#include -#include -#include -#include - -//#include "SDL_image.h" - - -#ifdef LOAD_XPM - -/* See if an image is contained in a data source */ -#if 0 -int IMG_isXPM(SDL_RWops *src) -{ - char magic[9]; - - return (SDL_RWread(src, magic, sizeof (magic), 1) - && memcmp(magic, "/* XPM */", 9) == 0); -} -#endif - -/* Hash table to look up colors from pixel strings */ -#define STARTING_HASH_SIZE 256 - -struct hash_entry { - char *key; - Uint32 color; - struct hash_entry *next; -}; - -struct color_hash { - struct hash_entry **table; - struct hash_entry *entries; /* array of all entries */ - struct hash_entry *next_free; - size_t size; - int maxnum; -}; - -static int hash_key(const char *key, int cpp, size_t size) -{ - int hash; - - hash = 0; - while ( cpp-- > 0 ) { - hash = hash * 33 + *key++; - } - return (int)(hash & (size - 1)); -} - -static struct color_hash *create_colorhash(int maxnum) -{ - size_t bytes; - int s; - struct color_hash *hash; - - /* we know how many entries we need, so we can allocate - everything here */ - hash = malloc(sizeof *hash); - if (!hash) - return NULL; - - /* use power-of-2 sized hash table for decoding speed */ - for (s = STARTING_HASH_SIZE; s < maxnum; s <<= 1) - ; - hash->size = s; - hash->maxnum = maxnum; - bytes = hash->size * sizeof (struct hash_entry **); - hash->entries = NULL; /* in case malloc fails */ - hash->table = malloc(bytes); - if (!hash->table) - return NULL; - memset(hash->table, 0, bytes); - hash->entries = malloc(maxnum * sizeof (struct hash_entry)); - if (!hash->entries) - { - free(hash->table); - return NULL; - } - hash->next_free = hash->entries; - return hash; -} - -static int add_colorhash(struct color_hash *hash, - char *key, int cpp, Uint32 color) -{ - const int indexkey = hash_key(key, cpp, hash->size); - struct hash_entry *e = hash->next_free++; - e->color = color; - e->key = key; - e->next = hash->table[indexkey]; - hash->table[indexkey] = e; - return 1; -} - -/* fast lookup that works if cpp == 1 */ -#define QUICK_COLORHASH(hash, key) ((hash)->table[*(const Uint8 *)(key)]->color) - -static Uint32 get_colorhash(struct color_hash *hash, const char *key, int cpp) -{ - struct hash_entry *entry = hash->table[hash_key(key, cpp, hash->size)]; - while (entry) { - if (memcmp(key, entry->key, cpp) == 0) - return entry->color; - entry = entry->next; - } - return 0; /* garbage in - garbage out */ -} - -static void free_colorhash(struct color_hash *hash) -{ - if (hash && hash->table) { - free(hash->table); - free(hash->entries); - free(hash); - } -} - -/* portable case-insensitive string comparison */ -static int string_equal(const char *a, const char *b, size_t n) -{ - while (*a && *b && n) { - if (toupper((unsigned char)*a) != toupper((unsigned char)*b)) - return 0; - a++; - b++; - n--; - } - return *a == *b; -} - -#undef ARRAYSIZE -#define ARRAYSIZE(a) (int)(sizeof (a) / sizeof ((a)[0])) - -/* - * convert colour spec to RGB (in 0xrrggbb format). - * return 1 if successful. - */ -static int color_to_rgb(const char *spec, size_t speclen, Uint32 *rgb) -{ - /* poor man's rgb.txt */ - static struct { const char *name; Uint32 rgb; } known[] = { - {"none", 0xffffffff}, - {"black", 0x00000000}, - {"white", 0x00ffffff}, - {"red", 0x00ff0000}, - {"green", 0x0000ff00}, - {"blue", 0x000000ff} - }; - - if (spec[0] == '#') { - char buf[7]; - switch (speclen) { - case 4: - buf[0] = buf[1] = spec[1]; - buf[2] = buf[3] = spec[2]; - buf[4] = buf[5] = spec[3]; - break; - case 7: - memcpy(buf, spec + 1, 6); - break; - case 13: - buf[0] = spec[1]; - buf[1] = spec[2]; - buf[2] = spec[5]; - buf[3] = spec[6]; - buf[4] = spec[9]; - buf[5] = spec[10]; - break; - } - buf[6] = '\0'; - *rgb = (Uint32)strtol(buf, NULL, 16); - return 1; - } else { - int i; - for (i = 0; i < ARRAYSIZE(known); i++) - if (string_equal(known[i].name, spec, speclen)) { - *rgb = known[i].rgb; - return 1; - } - return 0; - } -} - -#ifndef MAX -#define MAX(a, b) ((a) > (b) ? (a) : (b)) -#endif - -static char *linebuf; -static int buflen; -static const char *error; - -/* - * Read next line from the source. - * If len > 0, it's assumed to be at least len chars (for efficiency). - * Return NULL and set error upon EOF or parse error. - */ -static const char *get_next_line(const char ***lines, SDL_RWops *src, int len) -{ - char *linebufnew; - if (lines) { - return *(*lines)++; - } else { - char c; - int n; - do { - if (SDL_RWread(src, &c, 1, 1) <= 0) { - error = "Premature end of data"; - return NULL; - } - } while (c != '"'); - if (len) { - len += 4; /* "\",\n\0" */ - if (len > buflen){ - buflen = len; - linebufnew = realloc(linebuf, buflen); - if(!linebufnew) { - free(linebuf); - error = "Out of memory"; - return NULL; - } - linebuf = linebufnew; - } - if (SDL_RWread(src, linebuf, len - 1, 1) <= 0) { - error = "Premature end of data"; - return NULL; - } - n = len - 2; - } else { - n = 0; - do { - if (n >= buflen - 1) { - if (buflen == 0) - buflen = 16; - buflen *= 2; - linebufnew = realloc(linebuf, buflen); - if(!linebufnew) { - free(linebuf); - error = "Out of memory"; - return NULL; - } - linebuf = linebufnew; - } - if (SDL_RWread(src, linebuf + n, 1, 1) <= 0) { - error = "Premature end of data"; - return NULL; - } - } while (linebuf[n++] != '"'); - n--; - } - linebuf[n] = '\0'; - return linebuf; - } -} - -#define SKIPSPACE(p) \ -do { \ - while (isspace((unsigned char)*(p))) \ - ++(p); \ -} while (0) - -#define SKIPNONSPACE(p) \ -do { \ - while (!isspace((unsigned char)*(p)) && *p) \ - ++(p); \ -} while (0) - -/* read XPM from either array or RWops */ -static SDL_Surface *load_xpm(const char **xpm, SDL_RWops *src) -{ - SDL_Surface *image = NULL; - int indexc; - int x, y; - int w, h, ncolors, cpp; - int indexed; - Uint8 *dst; - struct color_hash *colors = NULL; - SDL_Color *im_colors = NULL; - char *keystrings = NULL, *nextkey; - const char *line; - const char ***xpmlines = NULL; - int pixels_len; - - error = NULL; - linebuf = NULL; - buflen = 0; - - if (xpm) - xpmlines = &xpm; - - line = get_next_line(xpmlines, src, 0); - if (!line) - goto done; - /* - * The header string of an XPMv3 image has the format - * - * [ ] - * - * where the hotspot coords are intended for mouse cursors. - * Right now we don't use the hotspots but it should be handled - * one day. - */ - if (sscanf(line, "%d %d %d %d", &w, &h, &ncolors, &cpp) != 4 - || w <= 0 || h <= 0 || ncolors <= 0 || cpp <= 0) { - error = "Invalid format description"; - goto done; - } - - keystrings = malloc(ncolors * cpp); - if (!keystrings) { - error = "Out of memory"; - goto done; - } - nextkey = keystrings; - - /* Create the new surface */ - if (ncolors <= 256) { - indexed = 1; - image = SDL_CreateRGBSurface(SDL_SWSURFACE, w, h, 8, - 0, 0, 0, 0); - im_colors = image->format->palette->colors; - image->format->palette->ncolors = ncolors; - } else { - indexed = 0; - image = SDL_CreateRGBSurface(SDL_SWSURFACE, w, h, 32, - 0xff0000, 0x00ff00, 0x0000ff, 0); - } - if (!image) { - /* Hmm, some SDL error (out of memory?) */ - goto done; - } - - /* Read the colors */ - colors = create_colorhash(ncolors); - if (!colors) { - error = "Out of memory"; - goto done; - } - for (indexc = 0; indexc < ncolors; ++indexc ) { - const char *p; - line = get_next_line(xpmlines, src, 0); - if (!line) - goto done; - - p = line + cpp + 1; - - /* parse a colour definition */ - for (;;) { - char nametype; - const char *colname; - Uint32 rgb, pixel; - - SKIPSPACE(p); - if (!*p) { - error = "colour parse error"; - goto done; - } - nametype = *p; - SKIPNONSPACE(p); - SKIPSPACE(p); - colname = p; - SKIPNONSPACE(p); - if (nametype == 's') - continue; /* skip symbolic colour names */ - - if (!color_to_rgb(colname, p - colname, &rgb)) - continue; - - memcpy(nextkey, line, cpp); - if (indexed) { - SDL_Color *c = im_colors + indexc; - c->r = (Uint8)(rgb >> 16); - c->g = (Uint8)(rgb >> 8); - c->b = (Uint8)(rgb); - pixel = indexc; - } else - pixel = rgb; - add_colorhash(colors, nextkey, cpp, pixel); - nextkey += cpp; - if (rgb == 0xffffffff) - SDL_SetColorKey(image, SDL_SRCCOLORKEY, pixel); - break; - } - } - - /* Read the pixels */ - pixels_len = w * cpp; - dst = image->pixels; - for (y = 0; y < h; y++) { - line = get_next_line(xpmlines, src, pixels_len); - if (indexed) { - /* optimization for some common cases */ - if (cpp == 1) - for (x = 0; x < w; x++) - dst[x] = (Uint8)QUICK_COLORHASH(colors, - line + x); - else - for (x = 0; x < w; x++) - dst[x] = (Uint8)get_colorhash(colors, - line + x * cpp, - cpp); - } else { - for (x = 0; x < w; x++) - ((Uint32*)dst)[x] = get_colorhash(colors, - line + x * cpp, - cpp); - } - dst += image->pitch; - } - -done: - if (error) { - SDL_FreeSurface(image); - image = NULL; - SDL_SetError(error); - } - free(keystrings); - free_colorhash(colors); - free(linebuf); - return(image); -} - -/* Load a XPM type image from an RWops datasource */ -#if 0 -SDL_Surface *IMG_LoadXPM_RW(SDL_RWops *src) -{ - if ( !src ) { - /* The error message has been set in SDL_RWFromFile */ - return NULL; - } - return load_xpm(NULL, src); -} -#endif - -static inline SDL_Surface *IMG_ReadXPMFromArray(const char **xpm) -{ - return load_xpm(xpm, NULL); -} - -#else /* not LOAD_XPM */ - -/* See if an image is contained in a data source */ -#if 0 -int IMG_isXPM(SDL_RWops *src) -{ - return(0); -} - -/* Load a XPM type image from an SDL datasource */ -SDL_Surface *IMG_LoadXPM_RW(SDL_RWops *src) -{ - return(NULL); -} -#endif - -static inline SDL_Surface *IMG_ReadXPMFromArray(const char **xpm) -{ - return NULL; -} -#endif /* not LOAD_XPM */ diff --git a/src/sdl12/MakeCYG.cfg b/src/sdl12/MakeCYG.cfg deleted file mode 100644 index b55d9dc50..000000000 --- a/src/sdl12/MakeCYG.cfg +++ /dev/null @@ -1,17 +0,0 @@ -# -# sdl12/makeCYG.cfg for SRB2/Cygwin -# - -# -#Cygwin, for debugging - - NOHW=1 - NOHS=1 - NOASM=1 - - OPTS+=-DLINUX - - i_system_o+=$(OBJDIR)/SRB2.res - - # name of the exefile - EXENAME?=lsdlsrb2.exe diff --git a/src/sdl12/MakeNIX.cfg b/src/sdl12/MakeNIX.cfg deleted file mode 100644 index e188b0fcf..000000000 --- a/src/sdl12/MakeNIX.cfg +++ /dev/null @@ -1,61 +0,0 @@ -# -# sdl12/makeNIX.cfg for SRB2/?nix -# - -#Valgrind support -ifdef VALGRIND -VALGRIND_PKGCONFIG?=valgrind -VALGRIND_CFLAGS?=$(shell $(PKG_CONFIG) $(VALGRIND_PKGCONFIG) --cflags) -VALGRIND_LDFLAGS?=$(shell $(PKG_CONFIG) $(VALGRIND_PKGCONFIG) --libs) -ZDEBUG=1 -LIBS+=$(VALGRIND_LDFLAGS) -ifdef GCC46 -WFLAGS+=-Wno-error=unused-but-set-variable -WFLAGS+=-Wno-unused-but-set-variable -endif -endif - -# -#here is GNU/Linux and other -# - - OPTS=-DUNIXCOMMON - - #LDFLAGS = -L/usr/local/lib - LIBS=-lm -ifdef LINUX - LIBS+=-lrt -ifdef NOTERMIOS - OPTS+=-DNOTERMIOS -endif -endif - -# -#here is Solaris -# -ifdef SOLARIS - NOIPX=1 - NOASM=1 - OPTS+=-DSOLARIS -DINADDR_NONE=INADDR_ANY -DBSD_COMP - OPTS+=-I/usr/local/include -I/opt/sfw/include - LDFLAGS+=-L/opt/sfw/lib - LIBS+=-lsocket -lnsl -endif - -# -#here is FreeBSD -# -ifdef FREEBSD - OPTS+=-DLINUX -DFREEBSD -I/usr/X11R6/include - SDL_CONFIG?=sdl11-config - LDFLAGS+=-L/usr/X11R6/lib - LIBS+=-lipx -lkvm -endif - -ifndef NOHW - OPTS+=-I/usr/X11R6/include - LDFLAGS+=-L/usr/X11R6/lib -endif - - # name of the exefile - EXENAME?=lsdlsrb2 diff --git a/src/sdl12/Makefile.cfg b/src/sdl12/Makefile.cfg deleted file mode 100644 index 2366a5ac2..000000000 --- a/src/sdl12/Makefile.cfg +++ /dev/null @@ -1,137 +0,0 @@ -# -# sdl12/makefile.cfg for SRB2/SDL -# - -# -#SDL...., *looks at Alam*, THIS IS A MESS! -# - -ifdef UNIXCOMMON -include sdl12/MakeNIX.cfg -endif - -ifdef PANDORA -include sdl12/SRB2Pandora/Makefile.cfg -endif #ifdef PANDORA - -ifdef CYGWIN32 -include sdl12/MakeCYG.cfg -endif #ifdef CYGWIN32 - -ifdef SDL_PKGCONFIG -SDL_CFLAGS?=$(shell $(PKG_CONFIG) $(SDL_PKGCONFIG) --cflags) -SDL_LDFLAGS?=$(shell $(PKG_CONFIG) $(SDL_PKGCONFIG) --libs) -else -ifdef PREFIX - SDL_CONFIG?=$(PREFIX)-sdl-config -else - SDL_CONFIG?=sdl-config -endif - -ifdef STATIC - SDL_CFLAGS?=$(shell $(SDL_CONFIG) --cflags) - SDL_LDFLAGS?=$(shell $(SDL_CONFIG) --static-libs) -else - SDL_CFLAGS?=$(shell $(SDL_CONFIG) --cflags) - SDL_LDFLAGS?=$(shell $(SDL_CONFIG) --libs) -endif -endif - - - #use the x86 asm code -ifndef CYGWIN32 -ifndef NOASM - USEASM=1 -endif -endif - - OBJS+=$(OBJDIR)/i_video.o $(OBJDIR)/dosstr.o $(OBJDIR)/endtxt.o $(OBJDIR)/hwsym_sdl.o - - OPTS+=-DDIRECTFULLSCREEN -DHAVE_SDL - -ifndef NOHW - OBJS+=$(OBJDIR)/r_opengl.o $(OBJDIR)/ogl_sdl.o -endif - -ifndef NOHS -ifdef OPENAL - OBJS+=$(OBJDIR)/s_openal.o - OPTS+=-DSTATIC3DS - STATICHS=1 -else -ifdef FMOD - OBJS+=$(OBJDIR)/s_fmod.o - OPTS+=-DSTATIC3DS - STATICHS=1 -else -ifdef MINGW -ifdef DS3D - OBJS+=$(OBJDIR)/s_ds3d.o - OPTS+=-DSTATIC3DS - STATICHS=1 -endif -endif -endif -endif -endif - -ifdef FILTERS - OBJS+=$(OBJDIR)/filters.o $(OBJDIR)/hq2x.o $(OBJDIR)/lq2x.o - OPTS+=-DHAVE_FILTER -endif - -ifdef NOMIXER - i_sound_o=$(OBJDIR)/sdl_sound.o -else - i_sound_o=$(OBJDIR)/mixer_sound.o - OPTS+=-DHAVE_MIXER - SDL_LDFLAGS+=-lSDL_mixer -endif - -ifdef SDL_TTF - OPTS+=-DHAVE_TTF - SDL_LDFLAGS+=-lSDL_ttf -lfreetype -lz - OBJS+=$(OBJDIR)/i_ttf.o -endif - -#ifdef SDL_IMAGE -# OPTS+=-DHAVE_IMAGE -# SDL_LDFLAGS+=-lSDL_image -#endif - -ifdef SDL_NET - OPTS+=-DHAVE_SDLNET - SDL_LDFLAGS+=-lSDL_net -endif - -ifdef SDLMAIN - OPTS+=-DSDLMAIN -else -ifdef MINGW - SDL_CFLAGS+=-Umain - SDL_LDFLAGS+=-mconsole -endif -endif - -ifndef NOHW -ifdef OPENAL -ifdef MINGW - LIBS:=-lopenal32 $(LIBS) -else - LIBS:=-lopenal $(LIBS) -endif -else -ifdef MINGW -ifdef DS3D - LIBS:=-ldsound -luuid $(LIBS) -endif -endif -endif -endif - - -CFLAGS+=$(SDL_CFLAGS) -LIBS:=$(SDL_LDFLAGS) $(LIBS) -ifdef STATIC - LIBS+=$(shell $(SDL_CONFIG) --static-libs) -endif diff --git a/src/sdl12/SDL_icon.xpm b/src/sdl12/SDL_icon.xpm deleted file mode 100644 index cf72960df..000000000 --- a/src/sdl12/SDL_icon.xpm +++ /dev/null @@ -1,425 +0,0 @@ -/* XPM */ -static char * C:\Repo\srb2\src\sdl\SDL_icon_xpm[] = { -"32 32 390 2", -" c None", -". c #4F4F70", -"+ c #4D4D87", -"@ c #4D4D84", -"# c #4E4E6C", -"$ c #6C6C95", -"% c #5E5EB2", -"& c #6B6BE7", -"* c #7373F9", -"= c #7C7CFF", -"- c #6F70E7", -"; c #494BB2", -"> c #4F4FA3", -", c #6464D4", -"' c #7979F5", -") c #5F5FCA", -"! c #5D5D93", -"~ c #3A3A9F", -"{ c #6060AC", -"] c #777793", -"^ c #5C5CB3", -"/ c #7373EA", -"( c #7A7AFF", -"_ c #7575FF", -": c #7979FF", -"< c #6264DD", -"[ c #47478C", -"} c #564567", -"| c #4647D0", -"1 c #5C5CAE", -"2 c #5E5EFF", -"3 c #2929FF", -"4 c #1D1DFF", -"5 c #1919D1", -"6 c #4F4F90", -"7 c #1E1ECE", -"8 c #5858FF", -"9 c #6767A8", -"0 c #4949A0", -"a c #7070FB", -"b c #7D7DFF", -"c c #7777FF", -"d c #7373FF", -"e c #7272FF", -"f c #7878FF", -"g c #6465D8", -"h c #363886", -"i c #9F7655", -"j c #C89B5C", -"k c #1D1CB7", -"l c #3031B1", -"m c #1919F4", -"n c #1111FF", -"o c #1818FF", -"p c #1B1BFF", -"q c #1C1CFF", -"r c #2626B3", -"s c #1E1EC8", -"t c #1A1AE8", -"u c #24249F", -"v c #2F2FD2", -"w c #7676FF", -"x c #6869E2", -"y c #414290", -"z c #8C6751", -"A c #FCBA68", -"B c #E9BD7D", -"C c #201EB8", -"D c #090AB8", -"E c #1616EB", -"F c #1818FD", -"G c #1414EE", -"H c #1010E1", -"I c #0E0EE2", -"J c #0E0EF4", -"K c #0606B2", -"L c #7A7A89", -"M c #0C0C9A", -"N c #0A0AA7", -"O c #2424E4", -"P c #6669E6", -"Q c #4F4A8F", -"R c #BF853B", -"S c #FFD98D", -"T c #CDAB76", -"U c #1717C4", -"V c #0F10BA", -"W c #0909B6", -"X c #0505C3", -"Y c #0000B6", -"Z c #0000BE", -"` c #0000AD", -" . c #1D1D83", -".. c #63638E", -"+. c #090975", -"@. c #1414F3", -"#. c #5B5BFF", -"$. c #7B7BFF", -"%. c #7070FF", -"&. c #6E6EFF", -"*. c #7172F6", -"=. c #625DAF", -"-. c #BA9E6C", -";. c #887167", -">. c #090DF2", -",. c #1313BE", -"'. c #000085", -"). c #0000AC", -"!. c #0202AA", -"~. c #242488", -"{. c #1414C7", -"]. c #1717FF", -"^. c #5959FF", -"/. c #7F7FFF", -"(. c #7474FF", -"_. c #7171FF", -":. c #8686FF", -"<. c #7574FF", -"[. c #797CFF", -"}. c #5756B8", -"|. c #1C19A4", -"1. c #1617FF", -"2. c #1212BD", -"3. c #040485", -"4. c #0707A4", -"5. c #1B1B71", -"6. c #373797", -"7. c #1616FF", -"8. c #5050FF", -"9. c #8080FF", -"0. c #AAAAFF", -"a. c #AEAEF6", -"b. c #8A8AEF", -"c. c #6969FB", -"d. c #2728FF", -"e. c #1314FF", -"f. c #1919FF", -"g. c #1313E8", -"h. c #1F1FF4", -"i. c #5454FF", -"j. c #6D6DF0", -"k. c #6868B5", -"l. c #0B0BB8", -"m. c #1212C5", -"n. c #1616FC", -"o. c #1515FF", -"p. c #1212FF", -"q. c #2323FF", -"r. c #3636FF", -"s. c #4040FF", -"t. c #4343F9", -"u. c #5D5DB8", -"v. c #7F7F92", -"w. c #878793", -"x. c #4B4B94", -"y. c #0B0CE2", -"z. c #1313FF", -"A. c #4C4CFF", -"B. c #8282FF", -"C. c #7171ED", -"D. c #636394", -"E. c #575785", -"F. c #A9A99C", -"G. c #1414BC", -"H. c #1414FF", -"I. c #0707FD", -"J. c #2525AA", -"K. c #A8A8A4", -"L. c #EBEBE2", -"M. c #F9F9F2", -"N. c #E1E1CC", -"O. c #4D4D9F", -"P. c #0B0BF7", -"Q. c #2121FF", -"R. c #3232FF", -"S. c #5555FF", -"T. c #6161B4", -"U. c #B5B5B2", -"V. c #FFFFF8", -"W. c #4F4F9A", -"X. c #0B0BF5", -"Y. c #1616C5", -"Z. c #A8A8A1", -"`. c #FFFFFC", -" + c #FFFFFF", -".+ c #C0C0C4", -"++ c #1212D4", -"@+ c #4444FF", -"#+ c #6464FF", -"$+ c #8383FF", -"%+ c #6767C3", -"&+ c #E4E4E4", -"*+ c #9494AE", -"=+ c #0808DF", -"-+ c #0D0DF2", -";+ c #61619A", -">+ c #F1F1E0", -",+ c #E8E8DD", -"'+ c #2424BB", -")+ c #1010FF", -"!+ c #3434FF", -"~+ c #6161FF", -"{+ c #6969D2", -"]+ c #EFEFF0", -"^+ c #C2C2BA", -"/+ c #1010B6", -"(+ c #0909AC", -"_+ c #A4A49A", -":+ c #EAEADE", -"<+ c #2525B8", -"[+ c #2F2FFF", -"}+ c #3C3CB5", -"|+ c #EEEEEE", -"1+ c #BBBBAD", -"2+ c #0B0B56", -"3+ c #0B0BFC", -"4+ c #1212EF", -"5+ c #0C0C3E", -"6+ c #919187", -"7+ c #DEDED6", -"8+ c #1F1FC0", -"9+ c #1A1AFF", -"0+ c #1717FA", -"a+ c #1515F8", -"b+ c #1111FC", -"c+ c #494992", -"d+ c #999998", -"e+ c #3E3E3B", -"f+ c #3C3C99", -"g+ c #535397", -"h+ c #5A5A4D", -"i+ c #6F6F70", -"j+ c #BFBFC9", -"k+ c #1111D6", -"l+ c #1515F1", -"m+ c #0F0FE2", -"n+ c #0D0DD9", -"o+ c #0909CD", -"p+ c #0808C7", -"q+ c #0505C7", -"r+ c #0303CB", -"s+ c #0101C0", -"t+ c #0202AF", -"u+ c #0606AC", -"v+ c #121283", -"w+ c #BBBBBB", -"x+ c #BEBEBE", -"y+ c #2F2F2E", -"z+ c #C7C8BB", -"A+ c #D8DAD1", -"B+ c #272828", -"C+ c #929292", -"D+ c #8688C7", -"E+ c #0506F6", -"F+ c #1616F5", -"G+ c #0B0BD3", -"H+ c #0202B6", -"I+ c #0000AF", -"J+ c #0000B4", -"K+ c #0000BD", -"L+ c #0000BB", -"M+ c #00009E", -"N+ c #2C2C7E", -"O+ c #6A6A8B", -"P+ c #959595", -"Q+ c #F0F0F1", -"R+ c #E1E1E1", -"S+ c #8C8E90", -"T+ c #BEBEBF", -"U+ c #C9C7C5", -"V+ c #939699", -"W+ c #E7EAED", -"X+ c #CBCBC7", -"Y+ c #413B9B", -"Z+ c #0607DD", -"`+ c #0C0CE2", -" @ c #0303B9", -".@ c #0000A8", -"+@ c #181888", -"@@ c #6A6A6A", -"#@ c #626263", -"$@ c #4B4B4C", -"%@ c #3E3B36", -"&@ c #9B805C", -"*@ c #D9B07D", -"=@ c #C9AE89", -"-@ c #B9AF9E", -";@ c #C7C5C4", -">@ c #CBCCCF", -",@ c #C7C6C6", -"'@ c #AEA59A", -")@ c #B69974", -"!@ c #D8B87F", -"~@ c #9B8272", -"{@ c #0E0B9B", -"]@ c #0000B7", -"^@ c #0000B8", -"/@ c #000082", -"(@ c #00007A", -"_@ c #636379", -":@ c #62533E", -"<@ c #B59B6C", -"[@ c #DEB07B", -"}@ c #FECC90", -"|@ c #FFCE92", -"1@ c #FEC98C", -"2@ c #F1BD82", -"3@ c #D1A979", -"4@ c #BC9E73", -"5@ c #CCA777", -"6@ c #EAB980", -"7@ c #FFCD90", -"8@ c #FFD595", -"9@ c #FDD782", -"0@ c #413678", -"a@ c #0000AE", -"b@ c #000077", -"c@ c #010193", -"d@ c #0C0CE4", -"e@ c #38389E", -"f@ c #EEC585", -"g@ c #FFDA9D", -"h@ c #FFC992", -"i@ c #FFC88F", -"j@ c #FFC990", -"k@ c #FFCE93", -"l@ c #FFD094", -"m@ c #FFCC92", -"n@ c #C9A174", -"o@ c #EDBD88", -"p@ c #FAD287", -"q@ c #3A2F7F", -"r@ c #0000BA", -"s@ c #0000B0", -"t@ c #0101B2", -"u@ c #1111ED", -"v@ c #1919C1", -"w@ c #95887C", -"x@ c #DCAC6E", -"y@ c #FFD393", -"z@ c #FFCD94", -"A@ c #FFCA93", -"B@ c #FFC991", -"C@ c #FFC78E", -"D@ c #FFCB91", -"E@ c #E0B581", -"F@ c #BB9A6F", -"G@ c #FFDC97", -"H@ c #C1A173", -"I@ c #0E0B9A", -"J@ c #0000B5", -"K@ c #0101B6", -"L@ c #1010E0", -"M@ c #1616EC", -"N@ c #A68156", -"O@ c #E7AC6B", -"P@ c #FFC582", -"Q@ c #FFCF8F", -"R@ c #FFD195", -"S@ c #FFD296", -"T@ c #FFD396", -"U@ c #FFD193", -"V@ c #FFD28F", -"W@ c #D2A96B", -"X@ c #2F2482", -"Y@ c #0000C1", -"Z@ c #0000C0", -"`@ c #0000BF", -" # c #0101BF", -".# c #1212F0", -"+# c #767698", -"@# c #9C866E", -"## c #A9865D", -"$# c #C0915D", -"%# c #C89760", -"&# c #C29360", -"*# c #AD8A61", -"=# c #9D8971", -"-# c #7F7A7A", -";# c #70708F", -"># c #6F6F91", -",# c #575788", -"'# c #464687", -")# c #2F2F87", -"!# c #15158F", -"~# c #0101A8", -"{# c #1313FB", -"]# c #57579F", -"^# c #343487", -"/# c #434388", -" ", -" ", -" ", -" . + @ # ", -" $ % & * = - ; > , ' ) ! ", -" ~ { ] ^ / = ( _ : < [ } | 1 2 3 4 5 6 ", -" 7 8 9 0 a b c d e f g h i j k l m n o p q r ", -" s t u v _ f d d d w x y z A B C D E F G H I J K L ", -" M N O _ c e d d d _ P Q R S T U V W X Y Z ` ... ", -" +.@.#.$.d d d d %.&._ *.=.-.;.>.,.'.).!.~. ", -" {.].^./.(.d d _.$.:._ <.[.}.|.1.2.3.4.5. ", -" 6.7.7.4 8.e : w 9.0.a.b.c.2 d.e.f.g.h.i.j.k. ", -" l.m.n.o.p.q.r.s.t.u.v.w.x.y.z.o o z.A.B./.b C.D. ", -" E.F.G.].o H.z.I.J.K.L.M.N.O.P.o o o Q.R.S._.b B.T. ", -" U.V.W.X.f.f.7.Y.Z.`. + + +.+++].o o o.n z.q.@+#+$+%+ ", -" &+ +*+=+].o -+;+>+ + + + +,+'+H.o o o o o H.)+o !+~+{+ ", -" ]+ +^+/+H.o.(+_+ + + + + +:+<+z.o o o o o o o 7.n H.[+}+ ", -" |+ +1+2+3+4+5+6+ + + + + +7+8+H.o o f.9+f.9+f.F 0+a+b+o.c+ ", -" &+ +d+e+f+g+h+i+ + + + + +j+k+].f.9+l+m+n+o+p+q+r+s+t+u+v+ ", -" w+ +x+y+z+A+B+C+ + + + + +D+E+9+F+G+H+I+J+K+L+M+N+O+ ", -" P+Q+R+S+T+U+V+W+ + + + +X+Y+Z+`+ @I+J+Z .@+@E. ", -" @@#@$@%@&@*@=@-@;@>@,@'@)@!@~@{@]@^@I+/@(@_@ ", -" :@<@[@}@|@1@2@3@4@5@6@7@8@9@0@L+a@b@c@d@e@ ", -" f@g@h@i@i@j@k@l@|@m@n@o@p@q@r@s@t@u@p v@ ", -" w@x@y@z@A@B@i@C@D@E@F@G@H@I@L+J@K@L@p M@ ", -" N@O@P@Q@R@S@T@U@V@W@X@Y@Z@Y@`@ #.#p +# ", -" @###$#%#&#*#=#-#;#>#,#'#)#!#~#{#]# ", -" ^#/# ", -" ", -" ", -" ", -" "}; diff --git a/src/sdl12/SDL_main/SDL_dummy_main.c b/src/sdl12/SDL_main/SDL_dummy_main.c deleted file mode 100644 index d8cfdd5bb..000000000 --- a/src/sdl12/SDL_main/SDL_dummy_main.c +++ /dev/null @@ -1,12 +0,0 @@ -/* Include the SDL main definition header */ -#include "SDL_main.h" - -#ifdef main -#undef main -int main(int argc, char *argv[]) -{ - return(SDL_main(argc, argv)); -} -#else -/* Nothing to do on this platform */; -#endif diff --git a/src/sdl12/SDL_main/SDL_macosx_main.h b/src/sdl12/SDL_main/SDL_macosx_main.h deleted file mode 100644 index 4683df57a..000000000 --- a/src/sdl12/SDL_main/SDL_macosx_main.h +++ /dev/null @@ -1,11 +0,0 @@ -/* SDLMain.m - main entry point for our Cocoa-ized SDL app - Initial Version: Darrell Walisser - Non-NIB-Code & other changes: Max Horn - - Feel free to customize this file to suit your needs -*/ - -#import - -@interface SDLMain : NSObject -@end diff --git a/src/sdl12/SDL_main/SDL_macosx_main.m b/src/sdl12/SDL_main/SDL_macosx_main.m deleted file mode 100644 index 226afe13d..000000000 --- a/src/sdl12/SDL_main/SDL_macosx_main.m +++ /dev/null @@ -1,374 +0,0 @@ -/* SDLMain.m - main entry point for our Cocoa-ized SDL app - Initial Version: Darrell Walisser - Non-NIB-Code & other changes: Max Horn - - Feel free to customize this file to suit your needs -*/ - -#import "SDL.h" -#import "SDL_macosx_main.h" -#import /* for MAXPATHLEN */ -#import - -/* For some reaon, Apple removed setAppleMenu from the headers in 10.4, - but the method still is there and works. To avoid warnings, we declare - it ourselves here. */ -@interface NSApplication(SDL_Missing_Methods) -- (void)setAppleMenu:(NSMenu *)menu; -@end - -/* Use this flag to determine whether we use SDLMain.nib or not */ -#define SDL_USE_NIB_FILE 0 - -/* Use this flag to determine whether we use CPS (docking) or not */ -#define SDL_USE_CPS 1 -#if SDL_USE_CPS -/* Portions of CPS.h */ -typedef struct CPSProcessSerNum -{ - UInt32 lo; - UInt32 hi; -} CPSProcessSerNum; - -extern OSErr CPSGetCurrentProcess( CPSProcessSerNum *psn); -extern OSErr CPSEnableForegroundOperation( CPSProcessSerNum *psn, UInt32 _arg2, UInt32 _arg3, UInt32 _arg4, UInt32 _arg5); -extern OSErr CPSSetFrontProcess( CPSProcessSerNum *psn); - -#endif /* SDL_USE_CPS */ - -static int gArgc; -static char **gArgv; -static BOOL gFinderLaunch; - -static void addArgument(const char *value) -{ - if(!gArgc) - gArgv = (char **)malloc(sizeof(*gArgv)); - else - { - char **newgArgv = (char **)realloc(gArgv, sizeof(*gArgv) * (gArgc + 1)); - if (!newgArgv) - { - newgArgv = malloc(sizeof(*gArgv) * (gArgc + 1)); - memcpy(newgArgv, gArgv, sizeof(*gArgv) * gArgc); - free(gArgv); - } - gArgv = newgArgv; - } - gArgc++; - gArgv[gArgc - 1] = (char *)malloc(sizeof(char) * (strlen(value) + 1)); - strcpy(gArgv[gArgc - 1], value); -} - -static NSString *getApplicationName(void) -{ - NSDictionary *dict; - NSString *appName = NULL; - - /* Determine the application name */ - dict = ( NSDictionary *)CFBundleGetInfoDictionary(CFBundleGetMainBundle()); - if (dict) - appName = [dict objectForKey: @"CFBundleName"]; - - if (![appName length]) - appName = [[NSProcessInfo processInfo] processName]; - - return appName; -} - -#if SDL_USE_NIB_FILE -/* A helper category for NSString */ -@interface NSString (ReplaceSubString) -- (NSString *)stringByReplacingRange:(NSRange)aRange with:(NSString *)aString; -@end -#endif - -@interface SDLApplication : NSApplication -@end - -@implementation SDLApplication -/* Invoked from the Quit menu item */ -- (void)terminate:(id)sender -{ -#if (__GNUC__ > 3) || (__GNUC__ == 3 && __GNUC_MINOR__ >= 1) - (void)sender; -#endif - /* Post a SDL_QUIT event */ - SDL_Event event; - event.type = SDL_QUIT; - SDL_PushEvent(&event); -} -@end - -/* The main class of the application, the application's delegate */ -@implementation SDLMain - -/* Set the working directory to the .app's parent directory */ -- (void) setupWorkingDirectory:(BOOL)shouldChdir -{ - if (shouldChdir) - { - char parentdir[MAXPATHLEN]; - CFURLRef url = CFBundleCopyBundleURL(CFBundleGetMainBundle()); - CFURLRef url2 = CFURLCreateCopyDeletingLastPathComponent(0, url); - if (CFURLGetFileSystemRepresentation(url2, true, (UInt8 *)parentdir, MAXPATHLEN)) - { - assert ( chdir (parentdir) == 0 ); /* chdir to the binary app's parent */ - } - CFRelease(url); - CFRelease(url2); - } - -} - -#if SDL_USE_NIB_FILE - -/* Fix menu to contain the real app name instead of "SDL App" */ -- (void)fixMenu:(NSMenu *)aMenu withAppName:(NSString *)appName -{ - NSRange aRange; - NSEnumerator *enumerator; - NSMenuItem *menuItem; - - aRange = [[aMenu title] rangeOfString:@"SDL App"]; - if (aRange.length != 0) - [aMenu setTitle: [[aMenu title] stringByReplacingRange:aRange with:appName]]; - - enumerator = [[aMenu itemArray] objectEnumerator]; - while ((menuItem = [enumerator nextObject])) - { - aRange = [[menuItem title] rangeOfString:@"SDL App"]; - if (aRange.length != 0) - [menuItem setTitle: [[menuItem title] stringByReplacingRange:aRange with:appName]]; - if ([menuItem hasSubmenu]) - [self fixMenu:[menuItem submenu] withAppName:appName]; - } - [ aMenu sizeToFit ]; -} - -#else - -static void setApplicationMenu(void) -{ - /* warning: this code is very odd */ - NSMenu *appleMenu; - NSMenuItem *menuItem; - NSString *title; - NSString *appName; - - appName = getApplicationName(); - appleMenu = [[NSMenu alloc] initWithTitle:@""]; - - /* Add menu items */ - title = [@"About " stringByAppendingString:appName]; - [appleMenu addItemWithTitle:title action:@selector(orderFrontStandardAboutPanel:) keyEquivalent:@""]; - - [appleMenu addItem:[NSMenuItem separatorItem]]; - - title = [@"Hide " stringByAppendingString:appName]; - [appleMenu addItemWithTitle:title action:@selector(hide:) keyEquivalent:@"h"]; - - menuItem = (NSMenuItem *)[appleMenu addItemWithTitle:@"Hide Others" action:@selector(hideOtherApplications:) keyEquivalent:@"h"]; - [menuItem setKeyEquivalentModifierMask:(NSAlternateKeyMask|NSCommandKeyMask)]; - - [appleMenu addItemWithTitle:@"Show All" action:@selector(unhideAllApplications:) keyEquivalent:@""]; - - [appleMenu addItem:[NSMenuItem separatorItem]]; - - title = [@"Quit " stringByAppendingString:appName]; - [appleMenu addItemWithTitle:title action:@selector(terminate:) keyEquivalent:@"q"]; - - - /* Put menu into the menubar */ - menuItem = [[NSMenuItem alloc] initWithTitle:@"" action:nil keyEquivalent:@""]; - [menuItem setSubmenu:appleMenu]; - [[NSApp mainMenu] addItem:menuItem]; - - /* Tell the application object that this is now the application menu */ - [NSApp setAppleMenu:appleMenu]; - - /* Finally give up our references to the objects */ - [appleMenu release]; - [menuItem release]; -} - -/* Create a window menu */ -static void setupWindowMenu(void) -{ - NSMenu *windowMenu; - NSMenuItem *windowMenuItem; - NSMenuItem *menuItem; - - windowMenu = [[NSMenu alloc] initWithTitle:@"Window"]; - - /* "Minimize" item */ - menuItem = [[NSMenuItem alloc] initWithTitle:@"Minimize" action:@selector(performMiniaturize:) keyEquivalent:@"m"]; - [windowMenu addItem:menuItem]; - [menuItem release]; - - /* Put menu into the menubar */ - windowMenuItem = [[NSMenuItem alloc] initWithTitle:@"Window" action:nil keyEquivalent:@""]; - [windowMenuItem setSubmenu:windowMenu]; - [[NSApp mainMenu] addItem:windowMenuItem]; - - /* Tell the application object that this is now the window menu */ - [NSApp setWindowsMenu:windowMenu]; - - /* Finally give up our references to the objects */ - [windowMenu release]; - [windowMenuItem release]; -} - -/* Replacement for NSApplicationMain */ -static void CustomApplicationMain (int argc, char **argv) -{ -#if (__GNUC__ > 3) || (__GNUC__ == 3 && __GNUC_MINOR__ >= 1) - (void)argc; - (void)argv; -#endif - NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init]; - SDLMain *sdlMain; - - /* Ensure the application object is initialised */ - [SDLApplication sharedApplication]; - -#if SDL_USE_CPS - { - CPSProcessSerNum PSN; - /* Tell the dock about us */ - if (!CPSGetCurrentProcess(&PSN)) - if (!CPSEnableForegroundOperation(&PSN,0x03,0x3C,0x2C,0x1103)) - if (!CPSSetFrontProcess(&PSN)) - [SDLApplication sharedApplication]; - } -#endif /* SDL_USE_CPS */ - - /* Set up the menubar */ - [NSApp setMainMenu:[[NSMenu alloc] init]]; - setApplicationMenu(); - setupWindowMenu(); - - /* Create SDLMain and make it the app delegate */ - sdlMain = [[SDLMain alloc] init]; - [NSApp setDelegate:sdlMain]; - - /* Start the main event loop */ - [NSApp run]; - - [sdlMain release]; - [pool release]; -} - -#endif - -- (BOOL)application:(NSApplication *)theApplication openFile:(NSString *)filename -{ -#if (__GNUC__ > 3) || (__GNUC__ == 3 && __GNUC_MINOR__ >= 1) - (void)theApplication; -#endif - addArgument("-iwad"); - addArgument([filename UTF8String]); - return YES; -} - -/* Called when the internal event loop has just started running */ -- (void) applicationDidFinishLaunching: (NSNotification *) note -{ -#if (__GNUC__ > 3) || (__GNUC__ == 3 && __GNUC_MINOR__ >= 1) - (void)note; -#endif - int status; - - /* Set the working directory to the .app's parent directory */ - [self setupWorkingDirectory:gFinderLaunch]; - -#if SDL_USE_NIB_FILE - /* Set the main menu to contain the real app name instead of "SDL App" */ - [self fixMenu:[NSApp mainMenu] withAppName:getApplicationName()]; -#endif - - if (!getenv("SRB2WADDIR")) - setenv("SRB2WADDIR", [[[NSBundle mainBundle] resourcePath] UTF8String], 1); - - /* Hand off to main application code */ - status = SDL_main (gArgc, gArgv); - - /* We're done, thank you for playing */ - exit(status); -} -@end - - -@implementation NSString (ReplaceSubString) - -- (NSString *)stringByReplacingRange:(NSRange)aRange with:(NSString *)aString -{ - size_t bufferSize; - size_t selfLen = [self length]; - size_t aStringLen = [aString length]; - unichar *buffer; - NSRange localRange; - NSString *result; - - bufferSize = selfLen + aStringLen - aRange.length; - buffer = NSAllocateMemoryPages(bufferSize*sizeof(unichar)); - - /* Get first part into buffer */ - localRange.location = 0; - localRange.length = aRange.location; - [self getCharacters:buffer range:localRange]; - - /* Get middle part into buffer */ - localRange.location = 0; - localRange.length = aStringLen; - [aString getCharacters:(buffer+aRange.location) range:localRange]; - - /* Get last part into buffer */ - localRange.location = aRange.location + aRange.length; - localRange.length = selfLen - localRange.location; - [self getCharacters:(buffer+aRange.location+aStringLen) range:localRange]; - - /* Build output string */ - result = [NSString stringWithCharacters:buffer length:bufferSize]; - - NSDeallocateMemoryPages(buffer, bufferSize); - - return result; -} - -@end - - - -#ifdef main -# undef main -#endif - - -/* Main entry point to executable - should *not* be SDL_main! */ -int main (int argc, char **argv) -{ - - /* Copy the arguments into a global variable */ - - /* This is passed if we are launched by double-clicking */ - if ( argc >= 2 && strncmp (argv[1], "-psn", 4) == 0 ) { - gArgc = 1; - gFinderLaunch = YES; - } else { - gArgc = argc; - gFinderLaunch = NO; - } - gArgv = argv; - - /* Some additional arguments we always want to run with. */ - //addArgument("-opengl"); - -#if SDL_USE_NIB_FILE - [SDLApplication poseAsClass:[NSApplication class]]; - NSApplicationMain (argc, argv); -#else - CustomApplicationMain (argc, argv); -#endif - return 0; -} diff --git a/src/sdl12/SDL_main/SDL_openxdk_main.c b/src/sdl12/SDL_main/SDL_openxdk_main.c deleted file mode 100644 index 63db8da2d..000000000 --- a/src/sdl12/SDL_main/SDL_openxdk_main.c +++ /dev/null @@ -1,7 +0,0 @@ -/* Include the SDL main definition header */ -#include "SDL_main.h" - -void XBoxStartup() -{ - SDL_main(0, NULL); /// \todo ? -} diff --git a/src/sdl12/SDL_main/SDL_win32_main.c b/src/sdl12/SDL_main/SDL_win32_main.c deleted file mode 100644 index 6f3ae370f..000000000 --- a/src/sdl12/SDL_main/SDL_win32_main.c +++ /dev/null @@ -1,334 +0,0 @@ -/* - SDL_main.c, placed in the public domain by Sam Lantinga 4/13/98 - - The WinMain function -- calls your program's main() function -*/ - -#include -#include -#include -#include -#define RPC_NO_WINDOWS_H -#include -#include /* For _alloca() */ - -#include -# define DIR_SEPERATOR TEXT("/") -# include - -/* Include the SDL main definition header */ -#ifdef _MSC_VER -#pragma warning(disable : 4214 4244) -#endif -#include "SDL.h" -#include "SDL_main.h" -#ifdef _MSC_VER -#pragma warning(default : 4214 4244) -#endif -#include "../../win32/win_dbg.h" -#define USE_MESSAGEBOX - -#ifdef main -# ifndef _WIN32_WCE_EMULATION -# undef main -# endif /* _WIN32_WCE_EMULATION */ -#endif /* main */ - -/* The standard output files */ -#define STDOUT_FILE TEXT("stdout.txt") -#define STDERR_FILE TEXT("stderr.txt") - -#ifndef NO_STDIO_REDIRECT - static TCHAR stdoutPath[MAX_PATH]; - static TCHAR stderrPath[MAX_PATH]; -#endif - -/* Parse a command line buffer into arguments */ -static int ParseCommandLine(char *cmdline, char **argv) -{ - char *bufp; - int argc; - - argc = 0; - for ( bufp = cmdline; *bufp; ) { - /* Skip leading whitespace */ - while ( isspace(*bufp) ) { - ++bufp; - } - /* Skip over argument */ - if ( *bufp == '"' ) { - ++bufp; - if ( *bufp ) { - if ( argv ) { - argv[argc] = bufp; - } - ++argc; - } - /* Skip over word */ - while ( *bufp && (*bufp != '"') ) { - ++bufp; - } - } else { - if ( *bufp ) { - if ( argv ) { - argv[argc] = bufp; - } - ++argc; - } - /* Skip over word */ - while ( *bufp && ! isspace(*bufp) ) { - ++bufp; - } - } - if ( *bufp ) { - if ( argv ) { - *bufp = '\0'; - } - ++bufp; - } - } - if ( argv ) { - argv[argc] = NULL; - } - return(argc); -} - -/* Show an error message */ -static void ShowError(const char *title, const char *message) -{ -/* If USE_MESSAGEBOX is defined, you need to link with user32.lib */ -#ifdef USE_MESSAGEBOX - MessageBoxA(NULL, - message, - title, - MB_ICONEXCLAMATION|MB_OK); -#else - fprintf(stderr, "%s: %s\n", title, message); -#endif -} - -/* Pop up an out of memory message, returns to Windows */ -static BOOL OutOfMemory(void) -{ - ShowError("Fatal Error", "Out of memory - aborting"); - return FALSE; -} - -/* Remove the output files if there was no output written */ -static void __cdecl cleanup_output(void) -{ -#ifndef NO_STDIO_REDIRECT - FILE *file; - int empty; -#endif - - /* Flush the output in case anything is queued */ - fclose(stdout); - fclose(stderr); - -#ifndef NO_STDIO_REDIRECT - /* See if the files have any output in them */ - if ( stdoutPath[0] ) { - file = _tfopen(stdoutPath, TEXT("rb")); - if ( file ) { - empty = (fgetc(file) == EOF) ? 1 : 0; - fclose(file); - if ( empty ) { - _tremove(stdoutPath); - } - } - } - if ( stderrPath[0] ) { - file = _tfopen(stderrPath, TEXT("rb")); - if ( file ) { - empty = (fgetc(file) == EOF) ? 1 : 0; - fclose(file); - if ( empty ) { - _tremove(stderrPath); - } - } - } -#endif -} - -#if defined(_MSC_VER) -/* The VC++ compiler needs main defined */ -#define console_main main -#endif - -/* This is where execution begins [console apps] */ -int console_main(int argc, char *argv[]) -{ - size_t n; - int st; - char *bufp, *appname; - - /* Get the class name from argv[0] */ - appname = argv[0]; - if ( (bufp=strrchr(argv[0], '\\')) != NULL ) { - appname = bufp+1; - } else - if ( (bufp=strrchr(argv[0], '/')) != NULL ) { - appname = bufp+1; - } - - if ( (bufp=strrchr(appname, '.')) == NULL ) - n = strlen(appname); - else - n = (bufp-appname); - - bufp = (char *)alloca(n+1); - if ( bufp == NULL ) { - return OutOfMemory(); - } - strncpy(bufp, appname, n); - bufp[n] = '\0'; - appname = bufp; - - /* Load SDL dynamic link library */ - if ( SDL_Init(SDL_INIT_NOPARACHUTE) < 0 ) { - ShowError("WinMain() error", SDL_GetError()); - return(FALSE); - } - atexit(cleanup_output); - atexit(SDL_Quit); - -#ifndef DISABLE_VIDEO -#if 0 - /* Create and register our class * - DJM: If we do this here, the user nevers gets a chance to - putenv(SDL_WINDOWID). This is already called later by - the (DIB|DX5)_CreateWindow function, so it should be - safe to comment it out here. - if ( SDL_RegisterApp(appname, CS_BYTEALIGNCLIENT, - GetModuleHandle(NULL)) < 0 ) { - ShowError("WinMain() error", SDL_GetError()); - exit(1); - }*/ -#else - /* Sam: - We still need to pass in the application handle so that - DirectInput will initialize properly when SDL_RegisterApp() - is called later in the video initialization. - */ - SDL_SetModuleHandle(GetModuleHandle(NULL)); -#endif /* 0 */ -#endif /* !DISABLE_VIDEO */ - - /* Run the application main() code */ - st = SDL_main(argc, argv); - - /* Exit cleanly, calling atexit() functions */ - //exit(0); - cleanup_output(); - SDL_Quit(); - - /* Hush little compiler, don't you cry... */ - return st; -} - -/* This is where execution begins [windowed apps] */ -int WINAPI WinMain(HINSTANCE hInst, HINSTANCE hPrev, LPSTR szCmdLine, int sw) -{ - HINSTANCE handle; - int Result = -1; - char **argv; - int argc; - LPSTR cmdline; - LPSTR bufp; -#ifndef NO_STDIO_REDIRECT - FILE *newfp; -#endif - - /* Start up DDHELP.EXE before opening any files, so DDHELP doesn't - keep them open. This is a hack.. hopefully it will be fixed - someday. DDHELP.EXE starts up the first time DDRAW.DLL is loaded. - */ - hPrev = hInst = NULL; - sw = 0; - handle = LoadLibrary(TEXT("DDRAW.DLL")); - if ( handle != NULL ) { - FreeLibrary(handle); - } - -#ifndef NO_STDIO_REDIRECT - _tgetcwd( stdoutPath, sizeof( stdoutPath ) ); - _tcscat( stdoutPath, DIR_SEPERATOR STDOUT_FILE ); - - /* Redirect standard input and standard output */ - newfp = _tfreopen(stdoutPath, TEXT("w"), stdout); - - if ( newfp == NULL ) { /* This happens on NT */ -#if !defined(stdout) - stdout = _tfopen(stdoutPath, TEXT("w")); -#else - newfp = _tfopen(stdoutPath, TEXT("w")); - if ( newfp ) { - *stdout = *newfp; - } -#endif - } - - _tgetcwd( stderrPath, sizeof( stderrPath ) ); - _tcscat( stderrPath, DIR_SEPERATOR STDERR_FILE ); - - newfp = _tfreopen(stderrPath, TEXT("w"), stderr); - if ( newfp == NULL ) { /* This happens on NT */ -#if !defined(stderr) - stderr = _tfopen(stderrPath, TEXT("w")); -#else - newfp = _tfopen(stderrPath, TEXT("w")); - if ( newfp ) { - *stderr = *newfp; - } -#endif - } - - setvbuf(stdout, NULL, _IOLBF, BUFSIZ); /* Line buffered */ - setbuf(stderr, NULL); /* No buffering */ -#endif /* !NO_STDIO_REDIRECT */ - - szCmdLine = NULL; - /* Grab the command line (use alloca() on Windows) */ - bufp = GetCommandLineA(); - cmdline = (LPSTR)alloca(strlen(bufp)+1); - if ( cmdline == NULL ) { - return OutOfMemory(); - } - strcpy(cmdline, bufp); - - /* Parse it into argv and argc */ - argc = ParseCommandLine(cmdline, NULL); - argv = (char **)alloca((argc+1)*(sizeof *argv)); - if ( argv == NULL ) { - return OutOfMemory(); - } - ParseCommandLine(cmdline, argv); - -#ifdef BUGTRAP - /* Try BugTrap. */ - if(InitBugTrap()) - Result = console_main(argc, argv); - else - { -#endif - - /* Run the main program (after a little SDL initialization) */ - __try - { - Result = console_main(argc, argv); - } - __except ( RecordExceptionInfo(GetExceptionInformation())) - { - SetUnhandledExceptionFilter(EXCEPTION_CONTINUE_SEARCH); //Do nothing here. - } - -#ifdef BUGTRAP - } /* BT failure clause. */ - - /* This is safe even if BT didn't start. */ - ShutdownBugTrap(); -#endif - - return Result; -} diff --git a/src/sdl12/SRB2Pandora/Makefile.cfg b/src/sdl12/SRB2Pandora/Makefile.cfg deleted file mode 100644 index 1f057a212..000000000 --- a/src/sdl12/SRB2Pandora/Makefile.cfg +++ /dev/null @@ -1,39 +0,0 @@ -# Quick Pandora target to make a compliant SRB2 PND file. - -PNDNAME=SRB2.pnd -PNDDIR=$(BIN)/pnd -ICON=sdl12/SRB2Pandora/icon.png -PXML=sdl12/SRB2Pandora/PXML.xml - -SED=sed -CAT=cat -CP=cp -XARGS=xargs -FOR=for -WGET=wget -P $(PNDDIR) -c -nc - -SHXARGS:=$(XARGS) -SHSED:=$(SED) - -ifndef ECHO - CP:=@$(CP) - CAT:=@$(CAT) - SED:=@$(SED) - XARGS:=@$(XARGS) - FOR:=@(FOR) -endif - -$(BIN)/$(PNDNAME): $(BIN)/$(EXENAME) - @echo Linking $(PNDNAME)... - $(MKDIR) $(PNDDIR) - $(CP) $(BIN)/$(EXENAME) $(PNDDIR) - $(CP) $(ICON) $(PNDDIR) - $(CP) $(PXML) $(PNDDIR) -ifdef WITHDATA - $(FOR) datafile in $(shell echo $(D_FILES) | $(SHSED) 's/\.srb/\.wad/' | $(SHXARGS) -n 1 basename); do \ - $(WGET) http://alam.srb2.org/SRB2/2.0.6-Final/Resources/$$datafile; \ - done -endif - $(MKISOFS) -l -r -o $@ $(PNDDIR) - $(CAT) $(PXML) >> $@ - $(REMOVE) -r $(PNDDIR) diff --git a/src/sdl12/SRB2Pandora/PXML.xml b/src/sdl12/SRB2Pandora/PXML.xml deleted file mode 100644 index 33a9587db..000000000 --- a/src/sdl12/SRB2Pandora/PXML.xml +++ /dev/null @@ -1,17 +0,0 @@ - - - - Sonic Robo Blast 2 - ソニック・ロボ・ブラスト・2 - A 3D Sonic fangame with a huge fanbase developing custom content, including characters, levels, and even large-scale modifications - - - - - - - - - - - diff --git a/src/sdl12/SRB2Pandora/icon.png b/src/sdl12/SRB2Pandora/icon.png deleted file mode 100644 index 63af73ac3a4e3046783312465aec2d985172f726..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1690 zcmV;L24(q)P)O!-2lB^gLcZMPU)B9hVuf<6yDwU?fX z3ky{b9)wn$97OyF7K$k7!Y+%HJ!Fs`_8_7N3oYwmd#LMDR_Z(CP+?IDQqitximl=- z%<|pC{K!l*NoUfO-9q1`O(rwn_j%vXd*Amyi6Vr+ezp$mb2|X=Ut3!fKnNjCa|i$d z=m+oxhzJ0{%mCgvpL`8f{Rx(3DZ5=$X-5(ZA>`1|Eyr<+aVLY>*cF&v0kEv1B+>!s zAY$JY0&~1)F<*tM-i!^TB><|b%6$I&5Xb!vQ41kqFqa@iB{B#loleWGtt};b)Tbm- z88)?>g_#`Q2iyZipjaFbB9}V@B3&}OiN;7K@4z%o08oN-DFdK}QLj0`4mf{KxXyE1 ztB@jukj3JUPPOoJ*G@1YW?@-H5Ix;7>a~cwjxz`b-~cuZ9iZmBV6Pd2LP7}i_4Uc| z@t;GJkohWzrXxD9JFg7r#Lhi6D;YYN4X?Crx0RJEv6EN;!20^S!pySvV0&?92GO+l zUNf`rWiSJU!V-uQJ^%#X;r>>f4^*L4DkaaH`8716J119nu3 zhCLfjiJr#L(C@IUqKpl|=A_=F(zuI6c{F*aF@vzMun~h81fr*rb|cVA6pMezXw4X7 zZ0tUc965rQFJEF~Bj;-$s9}Atr{(V33lBiCSd@13^&P9rg$w^+aB#5h%AGrZg1HqZ zqcnRZ2r;WP1hBBMAQu-GF*i5eFcO8r3??QfplKQg2M5v9)8k#;+}y;wckgia>_UVf zv=2lF0E~=`$kEYJoH%i!VZARDW-vK9iDSo(;rQ|60p|fg(=_CAIo!K9*7km@@0p@vsYx}=cBU~!g&6A%$e+KXx07F%;z_Nh%@88FI_>(6L zU|=`(rXhX&W}4^gWtFwHH3+ecLg8;zDi#3X!-o%h98Y!*EOr970?V?(LPCC9Akj3t`U#A-+5EjZ5cBu#7%? z_AKzhuC6W+5e^+X1OU$Y5a+;&CZjNy?C2B07Q|YV79T!*=)I9jrQq(y*w`3URmJe| za17@;g1E&1&3UaXInA4@s@B7{IDlabG#KZmAixN+kK3WWly)lFnF8Z=FVpI$pz zsZ{c5LgCFFqqHqG%igXCaXtP_T&-4>yLa!(d_Ircw{PR^+qXEE&w~hfLxiJ8kK*v* z!#h4~Zf*`b0dCW2uwg3^0T3MOyuBHxu(EPf#+i-1X0ETVPiC`OEH5v67pICvl*>8{ zhZZ9vBk1n#4ve2`Yirot+{Bytd1uH8M*Qrz3s_yf7aD!P^EC>dj5Qy7WpsUg9pmG@ zn3$yzBF4=3~sF*W-tuqpmgFn|Jpw=Hf`2a zRc%R?sDZdNi;`iqbfA{K-Lt_we*8G#d=&fm@mzc4^-LxsuYH|`uE+V}g5e6q*M9j6 zuU_@~+8ElF1Jv-4i&{=2eLrApr@c;|))TU%6k?f@q0-c?mo(SL`V)Y{^ zqf!}e9{|4-sZ - - - - Debug - Win32 - - - Debug - x64 - - - Release - Win32 - - - Release - x64 - - - - Srb2SDL - {61BA7D3C-F77D-4D31-B718-1177FE482CF2} - Srb2SDL - - - - Application - false - - - Application - false - - - Application - false - - - Application - false - - - - - - - - - - - - - - - - - - - - - - - <_ProjectFileVersion>10.0.30319.1 - .\..\..\bin\VC10\$(Platform)\$(Configuration)\ - .\..\..\objs\VC10\$(Platform)\$(Configuration)\SDL\ - true - .\..\..\bin\VC10\$(Platform)\$(Configuration)\ - .\..\..\objs\VC10\$(Platform)\$(Configuration)\SDL\ - true - .\..\..\bin\VC10\$(Platform)\$(Configuration)\ - .\..\..\objs\VC10\$(Platform)\$(Configuration)\SDL\ - false - .\..\..\bin\VC10\$(Platform)\$(Configuration)\ - .\..\..\objs\VC10\$(Platform)\$(Configuration)\SDL\ - false - $(SDL12_PREFIX)\include;$(SDL12_MIXER_PREFIX)\include;$(FMOD3_PREFIX)api\inc;$(IncludePath) - $(SDL12_PREFIX)\include;$(SDL12_MIXER_PREFIX)\include;$(FMOD3_PREFIX)api\inc;$(IncludePath) - $(SDL12_PREFIX)\include;$(SDL12_MIXER_PREFIX)\include;$(FMOD3_PREFIX)api\inc;$(IncludePath) - $(SDL12_PREFIX)\include;$(SDL12_MIXER_PREFIX)\include;$(FMOD3_PREFIX)api\inc;$(IncludePath) - $(SDL12_PREFIX)\lib;$(SDL12_MIXER_PREFIX)\lib;$(LibraryPath) - $(SDL12_PREFIX)\lib;$(SDL12_MIXER_PREFIX)\lib;$(LibraryPath) - $(SDL12_PREFIX)\lib\x64;$(SDL12_MIXER_PREFIX)\lib\x64;$(LibraryPath) - $(SDL12_PREFIX)\lib\x64;$(SDL12_MIXER_PREFIX)\lib\x64;$(LibraryPath) - - - - Getting revision number from the SCM system - "$(ProjectDir)..\..\comptime.bat" "$(ProjectDir).." - - - .\..\..\bin\VC10\$(Platform)\$(Configuration)\SDL\Srb2SDL-vc9.tlb - - - - - Disabled - $(ProjectDir)..\..\libs\libpng-src;$(ProjectDir)..\..\libs\zlib;%(AdditionalIncludeDirectories) - _DEBUG;USE_WGL_SWAP;DIRECTFULLSCREEN;HAVE_SDL;HWRENDER;HW3SOUND;HAVE_FILTER;HAVE_MIXER;USEASM;HAVE_PNG;COMPVERSION;HAVE_BLUA;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_DEPRECATE;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - $(IntDir) - $(IntDir)Srb2SDL.pdb - true - Level4 - true - true - EditAndContinue - CompileAsC - 4121;%(DisableSpecificWarnings) - - - _DEBUG;%(PreprocessorDefinitions) - 0x0409 - - - SDL.lib;SDL_mixer.lib;ws2_32.lib;%(AdditionalDependencies) - $(OutDir)srb2sdl.exe - true - true - $(OutDir)srb2sdl.pdb - Console - false - - - MachineX86 - - - true - $(OutDir)Srb2sdl.bsc - - - - - Getting revision number from the SCM system - "$(ProjectDir)..\..\comptime.bat" "$(ProjectDir).." - - - X64 - .\..\..\bin\VC10\$(Platform)\$(Configuration)\SDL\Srb2SDL-vc9.tlb - - - - - Disabled - $(ProjectDir)..\..\libs\libpng-src;$(ProjectDir)..\..\libs\zlib;%(AdditionalIncludeDirectories) - _DEBUG;USE_WGL_SWAP;DIRECTFULLSCREEN;HAVE_SDL;HWRENDER;HW3SOUND;HAVE_FILTER;HAVE_MIXER;HAVE_PNG;COMPVERSION;HAVE_BLUA;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_DEPRECATE;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - $(IntDir) - $(IntDir)Srb2SDL.pdb - true - Level4 - true - true - ProgramDatabase - CompileAsC - 4121;%(DisableSpecificWarnings) - - - _DEBUG;%(PreprocessorDefinitions) - 0x0409 - - - SDL.lib;SDL_mixer.lib;ws2_32.lib;%(AdditionalDependencies) - $(OutDir)srb2sdl.exe - true - true - $(OutDir)srb2sdl.pdb - Console - false - - - MachineX64 - - - true - $(OutDir)Srb2sdl.bsc - - - - - Getting revision number from the SCM system - "$(ProjectDir)..\..\comptime.bat" "$(ProjectDir).." - - - NDEBUG;%(PreprocessorDefinitions) - true - true - Win32 - .\..\..\bin\VC10\$(Platform)\$(Configuration)\SDL\Srb2SDL-vc9.tlb - - - - - /MP %(AdditionalOptions) - Disabled - OnlyExplicitInline - true - Speed - true - $(ProjectDir)..\..\libs\libpng-src;$(ProjectDir)..\..\libs\zlib;%(AdditionalIncludeDirectories) - NDEBUG;SDLMAIN;NO_STDIO_REDIRECT;USE_WGL_SWAP;DIRECTFULLSCREEN;HAVE_SDL;HWRENDER;HW3SOUND;HAVE_FILTER;HAVE_MIXER;USEASM;HAVE_PNG;COMPVERSION;HAVE_BLUA;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_DEPRECATE;%(PreprocessorDefinitions) - true - MultiThreaded - .\..\..\objs\VC10\$(Platform)\$(Configuration)\SDL\Srb2SDL-vc9.pch - $(IntDir) - $(IntDir)Srb2SDL.pdb - true - Level3 - true - ProgramDatabase - CompileAsC - 4121;%(DisableSpecificWarnings) - - - NDEBUG;%(PreprocessorDefinitions) - 0x0409 - - - SDL.lib;SDL_mixer.lib;ws2_32.lib;%(AdditionalDependencies) - $(OutDir)srb2sdl.exe - true - true - $(OutDir)srb2sdl.pdb - Windows - false - - - MachineX86 - - - true - $(OutDir)Srb2sdl.bsc - - - - - Getting revision number from the SCM system - "$(ProjectDir)..\..\comptime.bat" "$(ProjectDir).." - - - NDEBUG;%(PreprocessorDefinitions) - true - true - X64 - .\..\..\bin\VC10\$(Platform)\$(Configuration)\SDL\Srb2SDL-vc9.tlb - - - - - /MP %(AdditionalOptions) - Disabled - OnlyExplicitInline - true - Speed - true - $(ProjectDir)..\..\libs\libpng-src;$(ProjectDir)..\..\libs\zlib;%(AdditionalIncludeDirectories) - NDEBUG;SDLMAIN;NO_STDIO_REDIRECT;USE_WGL_SWAP;DIRECTFULLSCREEN;HAVE_SDL;HWRENDER;HW3SOUND;HAVE_FILTER;HAVE_MIXER;HAVE_PNG;COMPVERSION;HAVE_BLUA;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_DEPRECATE;%(PreprocessorDefinitions) - true - MultiThreaded - .\..\..\objs\VC10\$(Platform)\$(Configuration)\SDL\Srb2SDL-vc9.pch - $(IntDir) - $(IntDir)Srb2SDL.pdb - true - Level3 - true - ProgramDatabase - CompileAsC - 4121;%(DisableSpecificWarnings) - - - NDEBUG;%(PreprocessorDefinitions) - 0x0409 - - - SDL.lib;SDL_mixer.lib;ws2_32.lib;%(AdditionalDependencies) - $(OutDir)srb2sdl.exe - true - true - $(OutDir)srb2sdl.pdb - Windows - false - - - MachineX64 - - - true - $(OutDir)Srb2sdl.bsc - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - - - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - - - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - - - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - - - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - - - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - - - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - - - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - - - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - - - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - - - true - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - true - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - true - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - true - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - - - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - - - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - - - true - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - true - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - - - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - - - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - - - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - - - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - - - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - - - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - - - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - - - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - - - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - - - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - - - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - - - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - - - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - - - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - - - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - - - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - - - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - - - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - - - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - - - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - - - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - - - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - - - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - - - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - - - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - - - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - - - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - - - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - - - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - - - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - - - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - - - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - - - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - - - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - - - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - - - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - - - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - - - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - - - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - - - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - - - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - - - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - - - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - - - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - - - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - - - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - - - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - - - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - - - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - - - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - - - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - - - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - - - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - - - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - - - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - - - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - - - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - - - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - - - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - - - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - - - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - - - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - - - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - - - true - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - true - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - true - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - true - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - - - true - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - true - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - true - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - true - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - - - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - - - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - - - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - - - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - - - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - - - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - - - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - - - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - - - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - - - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - - - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - - - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - - - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Compiling %(Filename).nas with NASM... - nasm -g -o $(IntDir)%(Filename).obj -f win32 "%(FullPath)" - $(IntDir)%(Filename).obj;%(Outputs) - true - Compiling %(Filename).nas with NASM... - nasm -g -o $(IntDir)%(Filename).obj -f win32 "%(FullPath)" - $(IntDir)%(Filename).obj;%(Outputs) - Compiling %(Filename).nas with NASM... - nasm -g -o $(IntDir)%(Filename).obj -f win32 "%(FullPath)" - $(IntDir)%(Filename).obj;%(Outputs) - true - Compiling %(Filename).nas with NASM... - nasm -g -o $(IntDir)%(Filename).obj -f win32 "%(FullPath)" - $(IntDir)%(Filename).obj;%(Outputs) - - - Compiling %(Filename).nas with NASM... - nasm -g -o $(IntDir)%(Filename).obj -f win32 "%(FullPath)" - $(IntDir)%(Filename).obj;%(Outputs) - true - Compiling %(Filename).nas with NASM... - nasm -g -o $(IntDir)%(Filename).obj -f win32 "%(FullPath)" - $(IntDir)%(Filename).obj;%(Outputs) - Compiling %(Filename).nas with NASM... - nasm -g -o $(IntDir)%(Filename).obj -f win32 "%(FullPath)" - $(IntDir)%(Filename).obj;%(Outputs) - true - Compiling %(Filename).nas with NASM... - nasm -g -o $(IntDir)%(Filename).obj -f win32 "%(FullPath)" - $(IntDir)%(Filename).obj;%(Outputs) - - - Compiling %(Filename).nas with NASM... - nasm -g -o $(IntDir)%(Filename).obj -f win32 "%(FullPath)" - $(IntDir)%(Filename).obj;%(Outputs) - true - Compiling %(Filename).nas with NASM... - nasm -g -o $(IntDir)%(Filename).obj -f win32 "%(FullPath)" - $(IntDir)%(Filename).obj;%(Outputs) - Compiling %(Filename).nas with NASM... - nasm -g -o $(IntDir)%(Filename).obj -f win32 "%(FullPath)" - $(IntDir)%(Filename).obj;%(Outputs) - true - Compiling %(Filename).nas with NASM... - nasm -g -o $(IntDir)%(Filename).obj -f win32 "%(FullPath)" - $(IntDir)%(Filename).obj;%(Outputs) - - - - - - - - - - %(PreprocessorDefinitions) - \Users\alam\svn\srb2mods\SRB2\branches\ALAM\src\win32;%(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - \Users\alam\svn\srb2mods\SRB2\branches\ALAM\src\win32;%(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - \Users\alam\svn\srb2mods\SRB2\branches\ALAM\src\win32;%(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - \Users\alam\svn\srb2mods\SRB2\branches\ALAM\src\win32;%(AdditionalIncludeDirectories) - - - - - {72b01aca-7a1a-4f7b-acef-2607299cf052} - false - - - {73a5729c-7323-41d4-ab48-8a03c9f81603} - false - - - - - - diff --git a/src/sdl12/Srb2SDL-vc9.vcproj b/src/sdl12/Srb2SDL-vc9.vcproj deleted file mode 100644 index d2a268f8d..000000000 --- a/src/sdl12/Srb2SDL-vc9.vcproj +++ /dev/null @@ -1,5845 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/src/sdl12/Srb2SDL.dsp b/src/sdl12/Srb2SDL.dsp deleted file mode 100644 index 879113ca2..000000000 --- a/src/sdl12/Srb2SDL.dsp +++ /dev/null @@ -1,1057 +0,0 @@ -# Microsoft Developer Studio Project File - Name="Srb2SDL" - Package Owner=<4> -# Microsoft Developer Studio Generated Build File, Format Version 6.00 -# ** DO NOT EDIT ** - -# TARGTYPE "Win32 (x86) Console Application" 0x0103 - -CFG=Srb2SDL - Win32 Debug -!MESSAGE This is not a valid makefile. To build this project using NMAKE, -!MESSAGE use the Export Makefile command and run -!MESSAGE -!MESSAGE NMAKE /f "Srb2SDL.mak". -!MESSAGE -!MESSAGE You can specify a configuration when running NMAKE -!MESSAGE by defining the macro CFG on the command line. For example: -!MESSAGE -!MESSAGE NMAKE /f "Srb2SDL.mak" CFG="Srb2SDL - Win32 Debug" -!MESSAGE -!MESSAGE Possible choices for configuration are: -!MESSAGE -!MESSAGE "Srb2SDL - Win32 Release" (based on "Win32 (x86) Console Application") -!MESSAGE "Srb2SDL - Win32 Debug" (based on "Win32 (x86) Console Application") -!MESSAGE - -# Begin Project -# PROP AllowPerConfigDependencies 0 -# PROP Scc_ProjName "" -# PROP Scc_LocalPath "" -CPP=cl.exe -RSC=rc.exe - -!IF "$(CFG)" == "Srb2SDL - Win32 Release" - -# PROP BASE Use_MFC 0 -# PROP BASE Use_Debug_Libraries 0 -# PROP BASE Output_Dir "Release" -# PROP BASE Intermediate_Dir "Release" -# PROP BASE Target_Dir "" -# PROP Use_MFC 0 -# PROP Use_Debug_Libraries 0 -# PROP Output_Dir "..\..\bin\VC\Release\SDL" -# PROP Intermediate_Dir "..\..\objs\VC\Release\SDL" -# PROP Ignore_Export_Lib 0 -# PROP Target_Dir "" -MTL=midl.exe -# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /win32 -# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32 -# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c -# ADD CPP /nologo /G5 /W3 /GX /Zi /Ot /Og /Oi /Op /Oy /Ob1 /I "..\..\libs\libpng-src" /I "..\..\libs\zlib" /D "NDEBUG" /D "SDLMAIN" /D "NO_STDIO_REDIRECT" /D "USE_WGL_SWAP" /D "DIRECTFULLSCREEN" /D "HAVE_SDL" /D "HWRENDER" /D "HW3SOUND" /D "HAVE_FILTER" /D "HAVE_MIXER" /D "USEASM" /D "HAVE_PNG" /FR /FD /GF /c -# ADD BASE RSC /l 0x409 /d "NDEBUG" -# ADD RSC /l 0x409 /d "NDEBUG" -# SUBTRACT RSC /x -BSC32=bscmake.exe -# ADD BASE BSC32 /nologo -# ADD BSC32 /nologo /o"..\..\objs\SDL\Release\SRB2.bsc" -LINK32=link.exe -# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /machine:I386 -# ADD LINK32 SDL.lib SDL_mixer.lib user32.lib advapi32.lib ws2_32.lib /nologo /subsystem:windows /pdb:"C:\srb2demo2\srb2sdl.pdb" /debug /machine:I386 /out:"C:\srb2demo2\srb2sdl.exe" -# SUBTRACT LINK32 /profile /pdb:none /incremental:yes - -!ELSEIF "$(CFG)" == "Srb2SDL - Win32 Debug" - -# PROP BASE Use_MFC 0 -# PROP BASE Use_Debug_Libraries 1 -# PROP BASE Output_Dir "Debug" -# PROP BASE Intermediate_Dir "Debug" -# PROP BASE Target_Dir "" -# PROP Use_MFC 0 -# PROP Use_Debug_Libraries 1 -# PROP Output_Dir "..\..\bin\VC\Debug\SDL" -# PROP Intermediate_Dir "..\..\objs\VC\Debug\SDL" -# PROP Ignore_Export_Lib 0 -# PROP Target_Dir "" -MTL=midl.exe -# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /GZ /c -# ADD CPP /nologo /G6 /W4 /WX /Gm /GX /ZI /Od /Op /I "..\..\libs\libpng-src" /I "..\..\libs\zlib" /D "_DEBUG" /D "USE_WGL_SWAP" /D "DIRECTFULLSCREEN" /D "HAVE_SDL" /D "HWRENDER" /D "HW3SOUND" /D "HAVE_FILTER" /D "HAVE_MIXER" /D "USEASM" /D "HAVE_PNG" /FR /FD /GZ /c -# SUBTRACT CPP /YX -# ADD BASE RSC /l 0x409 /d "_DEBUG" -# ADD RSC /l 0x409 /d "_DEBUG" -# SUBTRACT RSC /x -BSC32=bscmake.exe -# ADD BASE BSC32 /nologo -# ADD BSC32 /nologo /o"..\..\objs\SDL\Debug\SRB2.bsc" -LINK32=link.exe -# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept -# ADD LINK32 SDL.lib SDL_mixer.lib user32.lib advapi32.lib ws2_32.lib /nologo /subsystem:console /pdb:"C:\srb2demo2\srb2sdldebug.pdb" /debug /machine:I386 /out:"C:\srb2demo2\srb2sdldebug.exe" /pdbtype:sept -# SUBTRACT LINK32 /pdb:none - -!ENDIF - -# Begin Target - -# Name "Srb2SDL - Win32 Release" -# Name "Srb2SDL - Win32 Debug" -# Begin Group "SDLapp" - -# PROP Default_Filter "" -# Begin Group "filter" - -# PROP Default_Filter "" -# Begin Source File - -SOURCE=.\filter\filters.c -# End Source File -# Begin Source File - -SOURCE=.\filter\filters.h -# End Source File -# Begin Source File - -SOURCE=.\filter\hq2x.c -# End Source File -# Begin Source File - -SOURCE=.\filter\hq2x.h -# End Source File -# Begin Source File - -SOURCE=.\filter\interp.h -# End Source File -# Begin Source File - -SOURCE=.\filter\lq2x.c -# End Source File -# Begin Source File - -SOURCE=.\filter\lq2x.h -# End Source File -# End Group -# Begin Source File - -SOURCE=.\dosstr.c -# End Source File -# Begin Source File - -SOURCE=.\endtxt.c -# End Source File -# Begin Source File - -SOURCE=.\endtxt.h -# End Source File -# Begin Source File - -SOURCE=..\filesrch.c -# End Source File -# Begin Source File - -SOURCE=..\filesrch.h -# End Source File -# Begin Source File - -SOURCE=.\hwsym_sdl.c -# End Source File -# Begin Source File - -SOURCE=.\hwsym_sdl.h -# End Source File -# Begin Source File - -SOURCE=.\i_cdmus.c -# End Source File -# Begin Source File - -SOURCE=.\i_main.c -# End Source File -# Begin Source File - -SOURCE=.\i_net.c -# End Source File -# Begin Source File - -SOURCE=.\i_sound.c -# End Source File -# Begin Source File - -SOURCE=.\i_system.c -# End Source File -# Begin Source File - -SOURCE=.\i_video.c -# End Source File -# Begin Source File - -SOURCE=.\IMG_xpm.c -# PROP Exclude_From_Build 1 -# End Source File -# Begin Source File - -SOURCE=.\ogl_sdl.c -# End Source File -# Begin Source File - -SOURCE=.\ogl_sdl.h -# End Source File -# Begin Source File - -SOURCE=..\hardware\r_opengl\r_opengl.c -# End Source File -# Begin Source File - -SOURCE=..\hardware\r_opengl\r_opengl.h -# End Source File -# Begin Source File - -SOURCE=.\SDL_icon.xpm -# End Source File -# Begin Source File - -SOURCE=.\SDL_main\SDL_win32_main.c - -!IF "$(CFG)" == "Srb2SDL - Win32 Release" - -!ELSEIF "$(CFG)" == "Srb2SDL - Win32 Debug" - -# PROP Exclude_From_Build 1 - -!ENDIF - -# End Source File -# Begin Source File - -SOURCE=.\sdlmain.h -# End Source File -# Begin Source File - -SOURCE=..\win32\Srb2win.rc -# End Source File -# Begin Source File - -SOURCE=..\win32\win_dbg.c -# End Source File -# Begin Source File - -SOURCE=..\win32\win_dbg.h -# End Source File -# Begin Source File - -SOURCE=..\win32\win_main.h -# End Source File -# End Group -# Begin Group "A_Asm" - -# PROP Default_Filter "" -# Begin Source File - -SOURCE=..\p5prof.h -# End Source File -# Begin Source File - -SOURCE=..\tmap.nas - -!IF "$(CFG)" == "Srb2SDL - Win32 Release" - -# PROP Ignore_Default_Tool 1 -# Begin Custom Build - Compiling $(InputName).nas with NASM... -IntDir=.\..\..\objs\VC\Release\SDL -InputPath=..\tmap.nas -InputName=tmap - -"$(IntDir)/$(InputName).obj" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" - nasm -g -o $(IntDir)/$(InputName).obj -f win32 $(InputPath) - -# End Custom Build - -!ELSEIF "$(CFG)" == "Srb2SDL - Win32 Debug" - -# PROP Ignore_Default_Tool 1 -# Begin Custom Build - Compiling $(InputName).nas with NASM... -IntDir=.\..\..\objs\VC\Debug\SDL -InputPath=..\tmap.nas -InputName=tmap - -"$(IntDir)/$(InputName).obj" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" - nasm -g -o $(IntDir)/$(InputName).obj -f win32 $(InputPath) - -# End Custom Build - -!ENDIF - -# End Source File -# Begin Source File - -SOURCE=..\tmap_mmx.nas - -!IF "$(CFG)" == "Srb2SDL - Win32 Release" - -# PROP Ignore_Default_Tool 1 -# Begin Custom Build - Compiling $(InputName).nas with NASM... -IntDir=.\..\..\objs\VC\Release\SDL -InputPath=..\tmap_mmx.nas -InputName=tmap_mmx - -"$(IntDir)/$(InputName).obj" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" - nasm -g -o $(IntDir)/$(InputName).obj -f win32 $(InputPath) - -# End Custom Build - -!ELSEIF "$(CFG)" == "Srb2SDL - Win32 Debug" - -# PROP Ignore_Default_Tool 1 -# Begin Custom Build - Compiling $(InputName).nas with NASM... - -IntDir=.\..\..\objs\VC\Debug\SDL -InputPath=..\tmap_mmx.nas -InputName=tmap_mmx - -"$(IntDir)/$(InputName).obj" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" - nasm -g -o $(IntDir)/$(InputName).obj -f win32 $(InputPath) - -# End Custom Build - -!ENDIF - -# End Source File -# Begin Source File - -SOURCE=..\tmap_vc.nas - -!IF "$(CFG)" == "Srb2SDL - Win32 Release" - -# Begin Custom Build - Compiling $(InputName).nas with NASM... -IntDir=.\..\..\objs\VC\Release\SDL -InputPath=..\tmap_vc.nas -InputName=tmap_vc - -"$(IntDir)/$(InputName).obj" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" - nasm -g -o $(IntDir)/$(InputName).obj -f win32 $(InputPath) - -# End Custom Build - -!ELSEIF "$(CFG)" == "Srb2SDL - Win32 Debug" - -# Begin Custom Build - Compiling $(InputName).nas with NASM... -IntDir=.\..\..\objs\VC\Debug\SDL -InputPath=..\tmap_vc.nas -InputName=tmap_vc - -"$(IntDir)/$(InputName).obj" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" - nasm -g -o $(IntDir)/$(InputName).obj -f win32 $(InputPath) - -# End Custom Build - -!ENDIF - -# End Source File -# End Group -# Begin Group "D_Doom" - -# PROP Default_Filter "" -# Begin Source File - -SOURCE=..\comptime.c -# End Source File -# Begin Source File - -SOURCE=..\d_clisrv.c -# End Source File -# Begin Source File - -SOURCE=..\d_clisrv.h -# End Source File -# Begin Source File - -SOURCE=..\d_event.h -# End Source File -# Begin Source File - -SOURCE=..\d_main.c -# End Source File -# Begin Source File - -SOURCE=..\d_main.h -# End Source File -# Begin Source File - -SOURCE=..\d_net.c -# End Source File -# Begin Source File - -SOURCE=..\d_net.h -# End Source File -# Begin Source File - -SOURCE=..\d_netcmd.c -# End Source File -# Begin Source File - -SOURCE=..\d_netcmd.h -# End Source File -# Begin Source File - -SOURCE=..\d_netfil.c -# End Source File -# Begin Source File - -SOURCE=..\d_netfil.h -# End Source File -# Begin Source File - -SOURCE=..\d_player.h -# End Source File -# Begin Source File - -SOURCE=..\d_think.h -# End Source File -# Begin Source File - -SOURCE=..\d_ticcmd.h -# End Source File -# Begin Source File - -SOURCE=..\dehacked.c -# End Source File -# Begin Source File - -SOURCE=..\dehacked.h -# End Source File -# Begin Source File - -SOURCE=..\doomdata.h -# End Source File -# Begin Source File - -SOURCE=..\doomdef.h -# End Source File -# Begin Source File - -SOURCE=..\doomstat.h -# End Source File -# Begin Source File - -SOURCE=..\doomtype.h -# End Source File -# Begin Source File - -SOURCE=..\z_zone.c -# End Source File -# Begin Source File - -SOURCE=..\z_zone.h -# End Source File -# End Group -# Begin Group "F_Frame" - -# PROP Default_Filter "" -# Begin Source File - -SOURCE=..\f_finale.c -# End Source File -# Begin Source File - -SOURCE=..\f_finale.h -# End Source File -# Begin Source File - -SOURCE=..\f_wipe.c -# End Source File -# End Group -# Begin Group "G_Game" - -# PROP Default_Filter "" -# Begin Source File - -SOURCE=..\g_game.c -# End Source File -# Begin Source File - -SOURCE=..\g_game.h -# End Source File -# Begin Source File - -SOURCE=..\g_input.c -# End Source File -# Begin Source File - -SOURCE=..\g_input.h -# End Source File -# Begin Source File - -SOURCE=..\g_state.h -# End Source File -# End Group -# Begin Group "H_Hud" - -# PROP Default_Filter "" -# Begin Source File - -SOURCE=..\am_map.c -# End Source File -# Begin Source File - -SOURCE=..\am_map.h -# End Source File -# Begin Source File - -SOURCE=..\command.c -# End Source File -# Begin Source File - -SOURCE=..\command.h -# End Source File -# Begin Source File - -SOURCE=..\console.c -# End Source File -# Begin Source File - -SOURCE=..\console.h -# End Source File -# Begin Source File - -SOURCE=..\hu_stuff.c -# End Source File -# Begin Source File - -SOURCE=..\hu_stuff.h -# End Source File -# Begin Source File - -SOURCE=..\st_stuff.c -# End Source File -# Begin Source File - -SOURCE=..\st_stuff.h -# End Source File -# Begin Source File - -SOURCE=..\y_inter.c -# End Source File -# Begin Source File - -SOURCE=..\y_inter.h -# End Source File -# End Group -# Begin Group "Hw_Hardware" - -# PROP Default_Filter "" -# Begin Source File - -SOURCE=..\hardware\hw3dsdrv.h -# End Source File -# Begin Source File - -SOURCE=..\hardware\hw3sound.c -# End Source File -# Begin Source File - -SOURCE=..\hardware\hw3sound.h -# End Source File -# Begin Source File - -SOURCE=..\hardware\hw_bsp.c -# End Source File -# Begin Source File - -SOURCE=..\hardware\hw_cache.c -# End Source File -# Begin Source File - -SOURCE=..\hardware\hw_data.h -# End Source File -# Begin Source File - -SOURCE=..\hardware\hw_defs.h -# End Source File -# Begin Source File - -SOURCE=..\hardware\hw_dll.h -# End Source File -# Begin Source File - -SOURCE=..\hardware\hw_draw.c -# End Source File -# Begin Source File - -SOURCE=..\hardware\hw_drv.h -# End Source File -# Begin Source File - -SOURCE=..\hardware\hw_glide.h -# End Source File -# Begin Source File - -SOURCE=..\hardware\hw_glob.h -# End Source File -# Begin Source File - -SOURCE=..\hardware\hw_light.c -# End Source File -# Begin Source File - -SOURCE=..\hardware\hw_light.h -# End Source File -# Begin Source File - -SOURCE=..\hardware\hw_main.c -# End Source File -# Begin Source File - -SOURCE=..\hardware\hw_main.h -# End Source File -# Begin Source File - -SOURCE=..\hardware\hw_md2.c -# End Source File -# Begin Source File - -SOURCE=..\hardware\hw_md2.h -# End Source File -# Begin Source File - -SOURCE=..\hardware\hw_trick.c -# End Source File -# Begin Source File - -SOURCE=..\hardware\hws_data.h -# End Source File -# End Group -# Begin Group "I_Interface" - -# PROP Default_Filter "" -# Begin Source File - -SOURCE=..\byteptr.h -# End Source File -# Begin Source File - -SOURCE=..\i_joy.h -# End Source File -# Begin Source File - -SOURCE=..\i_net.h -# End Source File -# Begin Source File - -SOURCE=..\i_sound.h -# End Source File -# Begin Source File - -SOURCE=..\i_system.h -# End Source File -# Begin Source File - -SOURCE=..\i_tcp.c -# End Source File -# Begin Source File - -SOURCE=..\i_tcp.h -# End Source File -# Begin Source File - -SOURCE=..\i_video.h -# End Source File -# Begin Source File - -SOURCE=..\keys.h -# End Source File -# Begin Source File - -SOURCE=..\mserv.c -# End Source File -# Begin Source File - -SOURCE=..\mserv.h -# End Source File -# End Group -# Begin Group "M_Misc" - -# PROP Default_Filter "" -# Begin Source File - -SOURCE=..\m_argv.c -# End Source File -# Begin Source File - -SOURCE=..\m_argv.h -# End Source File -# Begin Source File - -SOURCE=..\m_bbox.c -# End Source File -# Begin Source File - -SOURCE=..\m_bbox.h -# End Source File -# Begin Source File - -SOURCE=..\m_cheat.c -# End Source File -# Begin Source File - -SOURCE=..\m_cheat.h -# End Source File -# Begin Source File - -SOURCE=..\m_dllist.h -# End Source File -# Begin Source File - -SOURCE=..\m_fixed.c -# End Source File -# Begin Source File - -SOURCE=..\m_fixed.h -# End Source File -# Begin Source File - -SOURCE=..\m_menu.c -# End Source File -# Begin Source File - -SOURCE=..\m_menu.h -# End Source File -# Begin Source File - -SOURCE=..\m_misc.c -# End Source File -# Begin Source File - -SOURCE=..\m_misc.h -# End Source File -# Begin Source File - -SOURCE=..\m_queue.c -# End Source File -# Begin Source File - -SOURCE=..\m_queue.h -# End Source File -# Begin Source File - -SOURCE=..\m_random.c -# End Source File -# Begin Source File - -SOURCE=..\m_random.h -# End Source File -# Begin Source File - -SOURCE=..\m_swap.h -# End Source File -# Begin Source File - -SOURCE=..\string.c -# End Source File -# End Group -# Begin Group "P_Play" - -# PROP Default_Filter "" -# Begin Source File - -SOURCE=..\info.c -# End Source File -# Begin Source File - -SOURCE=..\info.h -# End Source File -# Begin Source File - -SOURCE=..\p_ceilng.c -# End Source File -# Begin Source File - -SOURCE=..\p_enemy.c -# End Source File -# Begin Source File - -SOURCE=..\p_fab.c -# End Source File -# Begin Source File - -SOURCE=..\p_floor.c -# End Source File -# Begin Source File - -SOURCE=..\p_inter.c -# End Source File -# Begin Source File - -SOURCE=..\p_lights.c -# End Source File -# Begin Source File - -SOURCE=..\p_local.h -# End Source File -# Begin Source File - -SOURCE=..\p_map.c -# End Source File -# Begin Source File - -SOURCE=..\p_maputl.c -# End Source File -# Begin Source File - -SOURCE=..\p_maputl.h -# End Source File -# Begin Source File - -SOURCE=..\p_mobj.c -# End Source File -# Begin Source File - -SOURCE=..\p_mobj.h -# End Source File -# Begin Source File - -SOURCE=..\p_polyobj.c -# End Source File -# Begin Source File - -SOURCE=..\p_polyobj.h -# End Source File -# Begin Source File - -SOURCE=..\p_pspr.h -# End Source File -# Begin Source File - -SOURCE=..\p_saveg.c -# End Source File -# Begin Source File - -SOURCE=..\p_saveg.h -# End Source File -# Begin Source File - -SOURCE=..\p_setup.c -# End Source File -# Begin Source File - -SOURCE=..\p_setup.h -# End Source File -# Begin Source File - -SOURCE=..\p_sight.c -# End Source File -# Begin Source File - -SOURCE=..\p_spec.c -# End Source File -# Begin Source File - -SOURCE=..\p_spec.h -# End Source File -# Begin Source File - -SOURCE=..\p_telept.c -# End Source File -# Begin Source File - -SOURCE=..\p_tick.c -# End Source File -# Begin Source File - -SOURCE=..\p_tick.h -# End Source File -# Begin Source File - -SOURCE=..\p_user.c -# End Source File -# Begin Source File - -SOURCE=..\tables.c -# End Source File -# Begin Source File - -SOURCE=..\tables.h -# End Source File -# End Group -# Begin Group "R_Rend" - -# PROP Default_Filter "" -# Begin Source File - -SOURCE=..\r_bsp.c -# End Source File -# Begin Source File - -SOURCE=..\r_bsp.h -# End Source File -# Begin Source File - -SOURCE=..\r_data.c -# End Source File -# Begin Source File - -SOURCE=..\r_data.h -# End Source File -# Begin Source File - -SOURCE=..\r_defs.h -# End Source File -# Begin Source File - -SOURCE=..\r_draw.c -# End Source File -# Begin Source File - -SOURCE=..\r_draw.h -# End Source File -# Begin Source File - -SOURCE=..\r_draw16.c -# PROP Exclude_From_Build 1 -# End Source File -# Begin Source File - -SOURCE=..\r_draw8.c -# PROP Exclude_From_Build 1 -# End Source File -# Begin Source File - -SOURCE=..\r_local.h -# End Source File -# Begin Source File - -SOURCE=..\r_main.c -# End Source File -# Begin Source File - -SOURCE=..\r_main.h -# End Source File -# Begin Source File - -SOURCE=..\r_plane.c -# End Source File -# Begin Source File - -SOURCE=..\r_plane.h -# End Source File -# Begin Source File - -SOURCE=..\r_segs.c -# End Source File -# Begin Source File - -SOURCE=..\r_segs.h -# End Source File -# Begin Source File - -SOURCE=..\r_sky.c -# End Source File -# Begin Source File - -SOURCE=..\r_sky.h -# End Source File -# Begin Source File - -SOURCE=..\r_splats.c -# End Source File -# Begin Source File - -SOURCE=..\r_splats.h -# End Source File -# Begin Source File - -SOURCE=..\r_state.h -# End Source File -# Begin Source File - -SOURCE=..\r_things.c -# End Source File -# Begin Source File - -SOURCE=..\r_things.h -# End Source File -# Begin Source File - -SOURCE=..\screen.c -# End Source File -# Begin Source File - -SOURCE=..\screen.h -# End Source File -# Begin Source File - -SOURCE=..\v_video.c -# End Source File -# Begin Source File - -SOURCE=..\v_video.h -# End Source File -# End Group -# Begin Group "S_Sounds" - -# PROP Default_Filter "" -# Begin Source File - -SOURCE=..\s_sound.c -# End Source File -# Begin Source File - -SOURCE=..\s_sound.h -# End Source File -# Begin Source File - -SOURCE=..\sounds.c -# End Source File -# Begin Source File - -SOURCE=..\sounds.h -# End Source File -# End Group -# Begin Group "W_Wad" - -# PROP Default_Filter "" -# Begin Source File - -SOURCE=..\lzf.c -# End Source File -# Begin Source File - -SOURCE=..\lzf.h -# End Source File -# Begin Source File - -SOURCE=..\md5.c -# End Source File -# Begin Source File - -SOURCE=..\md5.h -# End Source File -# Begin Source File - -SOURCE=..\w_wad.c -# End Source File -# Begin Source File - -SOURCE=..\w_wad.h -# End Source File -# End Group -# Begin Group "Docs" - -# PROP Default_Filter "" -# Begin Source File - -SOURCE=..\..\doc\copying -# End Source File -# Begin Source File - -SOURCE=..\..\doc\faq.txt -# End Source File -# Begin Source File - -SOURCE=..\..\readme.txt -# End Source File -# Begin Source File - -SOURCE=..\..\doc\source.txt -# End Source File -# End Group -# Begin Source File - -SOURCE=..\win32\Srb2win.ico -# End Source File -# End Target -# End Project diff --git a/src/sdl12/Srb2SDL.dsw b/src/sdl12/Srb2SDL.dsw deleted file mode 100644 index 4f8f7bdce..000000000 --- a/src/sdl12/Srb2SDL.dsw +++ /dev/null @@ -1,74 +0,0 @@ -Microsoft Developer Studio Workspace File, Format Version 6.00 -# WARNING: DO NOT EDIT OR DELETE THIS WORKSPACE FILE! - -############################################################################### - -Project: "Srb2SDL"=.\Srb2SDL.dsp - Package Owner=<4> - -Package=<5> -{{{ -}}} - -Package=<4> -{{{ - Begin Project Dependency - Project_Dep_Name libpng - End Project Dependency - Begin Project Dependency - Project_Dep_Name zlib - End Project Dependency -}}} - -############################################################################### - -Project: "libpng"="..\..\libs\libpng-src\projects\visualc6\libpng.dsp" - Package Owner=<4> - -Package=<5> -{{{ -}}} - -Package=<4> -{{{ - Begin Project Dependency - Project_Dep_Name zlib - End Project Dependency -}}} - -############################################################################### - -Project: "s_openal"=..\hardware\s_openal\s_openal.dsp - Package Owner=<4> - -Package=<5> -{{{ -}}} - -Package=<4> -{{{ -}}} - -############################################################################### - -Project: "zlib"=..\..\libs\zlib\projects\visualc6\zlib.dsp - Package Owner=<4> - -Package=<5> -{{{ -}}} - -Package=<4> -{{{ -}}} - -############################################################################### - -Global: - -Package=<5> -{{{ -}}} - -Package=<3> -{{{ -}}} - -############################################################################### - diff --git a/src/sdl12/Srb2SDL.ico b/src/sdl12/Srb2SDL.ico deleted file mode 100644 index 700276fd4b9ac2810a6981eb054921f3708c702b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 372798 zcmeEP1$-1o7r)>XikBiSgit6HJ_^O9g+iglH3TORAjN|QCj@swaCdiiD-OkJp=gof z+TxJ+{r{VrusQB7cM%}4;rE!mmD!nR^XAQ)w3ybJQ?U-7qCBeZ23J|GK2mfXdDt`I@Z>$TT6B6(xo3_wyviJ&Fcf^ z0}g}sk}8!PPLaZ(zmEPvK|!W}{`n`><;$1T-nnxp?aGxa%atrya#_WS6|KV0KmWX} zQ>RY-dGD1gSJGa(bSdrQ$B*B7T-)v2w?Dmk^JdyDTecK0RjSmos#U8lD^jG$o`j%v zQb1$CBEUAl)|fHn>F1w|q)8)(k|#Il5BeWJemrZhUcG$#^y$;>(@#Hrh+1`-xtFKOHEA-3VI{Lnp8rvDZxGhnOKo_ka3F1#;w=HImm zbr(L6N+W-l(tS5d*@4@oWRDf{dA1^w{<{*A>6@IVy}iB1?cKY#_~y-<9R}XttXZ?s zUwrY!>CBlkhd|b>Sx+ZVp8RoE&=Fz1@+}}cpb%g@U>smIU?<==zy|Ygo?8Yul^{Vd z?ViR!%i4jvEqk^z%Ne7@EM%`=;5Rxs)0X~3kfG!q5nce}|W(LalMl-BMNqXyn zwAbVwI-ldd2B5z;=60NE{Wq>Rs1~vDjtw=+UhpN0(y8j{72Gv09R=RuA!* zdO>PTza(`RK(6QAmTFVZOSQ@8q&iA>l+701kTxssiqG;p(rW2#@!R}ZM(h(AwkPNf z7_nER^SX!9YT0e={OjKvn?38|Mk72 z4vGxj^Gf<{e=fbZK9$A`t^=+~{e|~5eNxb8ikP5(N`NkuV*=@E4eZg?k!zaH=XkG| zd!77~{$t0E^^OYszpFZ7yQi#Mx9+UO$&$a!T+$O`@;0fr=mBK$AC2Dblg~??8JDE? z^uMLU>ig1T(<2E0y-7pTIV@V+;sO16>I796>m@Js+4fYrZ+aq4S3Qv*yDk<}+ypWZ zbf+GtE^vgN&fH^F=PTNq%bc-dk^ZgU6|Exsy^9tts+}uWu7ioc_*yEA*bn>dmec^< zsoN>*`L-aZ2lMrRJCQsQIGx*-oxIO^aOZ8bPsXk3C*te(IZ_dcKt$R7%{~kZSZQ7Im z;EPG1KV$_G5WW4L2M!#_Q>ILr#b4wuB|mjvBDLn-5s&GYHM$4ucIaa2c0g3oTVL-m zjQxE#-j&hEUP|Eav>C0xmwYhwoJgL!Z6pt9wgupfU1yE{D^SOJ`1J3?ucOWJE%d$K z_76;yi1a@do#}t*(4ibDQlz-?W!^GUW9C(Jg3 zUlSLX7*e=ebMaewR>mF&{cZ3-0Q3NPC1%1T5&+t523Vu3Bj-r_wV?e2_;hXReKS8i zg#RxE?rq(=^@!+7|NZ;-=f^tMy)W{V7WZkFrOs^V`Av@@<3SP#S&vHnZi|mNwh!6) zTsq7=A{lZNmK13-NzWB$WXv(!Jiu!un)cKDIpMVhSAzEIK+k)Wds}0^P8U1?{S(1g z2poPBUFi?s-S#i?`~rW=W${_{5c92P+W1Zy*rLzdIM4TwJ|Z&dFOm9vXG`)l8KuXv zzqPTz+WP|!iTJI(EGbfcA$>r{O-||n+KuZ#%X<#Uz0&_TQl^xI!SpW>9qHc_f6)0a z+^1cVc55DL^DEA?tl{@vox}7)0uDTrFS2|muKz0-tOKmroU{)nU=;o=S3zx^hC09z zeXs7J>~F@JPLKm~uhAd(HG|(TefspLvDTF#y3wDs{~~v3sScgre$Btyy!~Cvye%H1 zJuqHc9XCAH^t~;dz7OX|9TsUZcAI3$UrI(n&)aI#DA3<`!7)KL6`2E|Pf*FX zqb28kr)>H96ikR!#_r8Fy0iyw2ol;j2BOW%&|V2KM3@13%_u(WXbLz{yR~0p#Q#o z`+g{0x-`0NlG5J(;x%}g)a^Y-YIdI{oiS!kJT01!g}gwBEI%LZHP*-ZIej>`fMYlB zvuEFh#Z%h&Ki_fvuVlV0a6-J40Zajq4;TlaYzFFr^_b_K{q$3Lf^lEcrj=aK4Tu?P z3);K9@AUuex8L$o?%79cko5C(;+FFV$@YDD@tt!*I?g%{eegiziEz<_K10}PoV)ki zcwO4fIw6^gRF;IPGD?zk+1`LeUu2bf16ShRe@MSg*R|*Pd|33hyw35VQNVgF7Gxp% z>WKZvI1kdhJs>V19-t&(I)HOX)M=8&vke!LH)(6p{K^1pX2`j{p=|%C+-c_6?S}ndiv8o81tvdH`xkk@p^jsRdQ^v zq&-02Z$m%=Kuka>0Ot{m0aMTNzFz@(^X3JYzyEgM^XJdwAU5eS>5Mi@qehLScJ10y zty(p$M4Y8you9U>RoxIPZan$9kzcUi&5BQu^D&OQ6Cvxp*I$-m^}1{Iq)7R>G-+5@ zu3ot$_wU~as_g$gefm`HKX@RMCryx_iWZV&u)AEpD+NB-`C1Rz@c&a+(2gnGu$yo{ z#&&=j!xh~eDQW-lS=#^g0f_)#0{Q?*_pJbq1<3%wC9J3SpZ?gd5-UfJ9DkDj|NGzn z15RKL9%(%MmcsAN+SY)XU_a3ty?segs`*RuqN4O!&RAlCU{&? za!hB(9ejh|Bz3p^C|NS02u+)1sMP%03LwEi4$L6vt~`X=s!zyUAwX$A++ZHHR^!4apP*|cnz`9k_vXO$t9-btLQC#*WD8T z4fiEqm6npbf;ZOYT4>i&eV$Ufcj+ig7cYze#jQVj=2RPH-pzN^_zVkA!`KZ7na;>8tfahs0FzU4jCAB^?h2Ivj=A3)&`a&!=}uvjE| z|K*=;M9g#%#I*lAZQ3;MQIx;`{#%Y6JEoP0^AbzIJ}1Fm42>ZF{`;@=>)Th-f00J( zf1#o!rCjM!QYc?;nLc@f+`4s3(;?QW7ddA+HcXo`S$ltpq$#ACYbL3mK9f{TkVuM< zMoE&$3;JmQM-a2I80V;`EomB_-{ga>0P;eAKt2F<0b+h`W6#P!=z)s&?%j(;Jio6{ ztXQ$FqehK#m>5reZ{uV(-HX_$eJC8~g-PxpHMq*6^%D&x{*4POuMJI(FGvU2yEO_7>tkK`$ zJY4zXEK97-{0INsG3WxyZ)E8L@`V}~Xb;lP7zLp32x;LpoOybBPVL{ne~(9x9wk5@ z-#IU|ZQC}Gw!Wi(4H`7i`oXad`}M+n4B>(y_wyO(nlPV<=ndU49x=`*tk|p|=z}NN zo3k5pcFx@+lMj@RpibBYAYXI@d~@@0&jGH=bFwYL(4rBICk@S+gV?+GdyjN+&=UJcAAUH`>WDfj-@+ z-~-MXs1G8xUm%C1kz)!l>|6=EBtWs^x2b|+mW|bUA zR>?Z46S$7RasYrfqrzvFELr}&@;bJB@`Nr3MGxdEvF>C&aU4By;2;42XOXiKeM zzg`3A&r-105=MkK4jw#cg6tj`I&`Q*sK&cP(U7vuKkWIFHf`F-@4x@fI7ba=Bhohf z`s=TSa|PJFp`MM0^)k*2qw;V4-o4@v-RiLX>vaQl0pKpy@b|;tu?qEYt`HUD0{MXS z=UNki{6KqQ3ZN^%2awzX=x>579){hfZ$}Uq+1{Ez_n>6^<=0U%q@N^xq90B%T<98%nTYXzGluNShoW5ix;2@z#UKg zrvG+~0S<|wE&2EJ_s1T)xbh`@h6T`$Zvn{dAU~HYCj$o#)au6mfwwOIe6c6yHJ9PH z3^)B1e~=HbrpvY6$Cx+Xfd60@czZAA4TSxGE#M8#Avk6b6rU)%u?+7xLf?WOw&6F| z9tqSH^8ix;T>uci>zI{R^p@IEdVD#e{HM< zuG#?SY)7Ekr}VDqU#DS1>4kQLYYb4d*Oz8}pw*{8hRyH@^T@04iC+V6+yE{Z8?*s3 zxe2}q!e#*D$2pED9?_T7CCVmnw&dJmA7Bswxu;%Dm@uJGSoDWa$^*9FYX@E!Y+yZ$wHJc;P`CmVZ7N zeIv&q8-HLd(ZiqkeH3#QYdS-(KWrV-ZkPmIb3L+3l`2bNTiKO;@&e;G-~ z?CX9r{cAcyf6fuHP8>qVub}f^vOo6vjJ~!sj|Jox1&tdwc9iWRblywIgB! z+Us9rUn4%91>pE1?2>3z75>s!F>H1IZj?9UOy0p$_4-dFd8 zhyGlpdA0$!LgV}>AaP*jmUq}~sf{uuA!c$4+et+7m|7g$>z zpy=vo=`8(`<4b=1^;eDl$7u6&oN`nSaPM8{sd(TWw@jG?z6ZhlQ%Ikv{QKbOPrAbw zMcTuuF78>faP0_DwT{cZy4P9yBbT|9@$iruurnN{yN*Ae<2W0{ckp0s-^8N`&ZWMA4rqy3Ao>L98#-~~L{yPq8(*TG z{YSdPMiPvZQog)kaZRLMI{~pZxo4RJ`T(~0$`>zQzyagD?&mXz;ra#i|JM=ZGuF=^ zvA&FDbJ*_J>HZL10XtwZ=Hn?aej)BfkYia8_aMj_>qs-4z9-tqztZod`&VBHg6u_n ze30<8Gd3)@52nAF2L}A`18uM%;IAO*7+&D|Px0c#w~-F^{yZD^ZgjZv~^;8?Fi4c_n!W=qbcv$ccJO`3KfEB-KmpEhYqjlP98u! z{s6?=DdL6H5&JuPK z?LEpp*7t*^PMzwB4n|1s_0J>z?;CsZf1LB<9;pd`J=gXlEc*(7kj3-Bhbw$SBgT%^ zVum;$&%t zA}cQJ5#kkpf!v(on5EwNHcHZ(GOp%tdGd&W4>@PoYgawWk%SIz$BNW~@eKsnUSxUnPfFVGew zzp409D@}6v)WT)UBn|3*9Krdj!~NxZXuqdVF9O>}zWXki?xZ(qZ%@|sJOJ7s0l%cd zJgI#7^2-r->(F{G5aZOi!1;eB;D>wGGJN@^T(sD?MH-O)Ux9zyQuZTi_gRxY(0@H_ ziqF7XGZ7v>ZkGg*Z;`BN8%#F(RGw{`F z=sEJhEW{Kaf(<~wAif=>*@lQ|)i=xLF>Mu&9rRUngk6~t?RHpp_4IV)m^4>5JmsPY zQoCbqM6=f@>w20xa!lO-JMS21pB8dY-_EmV&tjspPRX=0_mlo#0!Q4B(ixBxep&A2 zCB7N2#dx1gn3po1Gg8NWYxo5YSEAnu!DpVZHMurO9l-H`Kwlx(AGilWuM;32+BvL! zYV%0$MPfW_3iM?L$Nk8d^HHxWP&B8GFI!dw;}#M;29N9d`MM)CSNDKlUI3cs%qgEk z?xFLSp`US`p=EgPRr0?T^qmS|PLsk|-`xouc7m_rbLdZwpHVXI+u(s!@Cz`XKpn&f z?B2aw^E*)&aBe_8U`bw}ZX(cTP}g{V`SRtG9C5n*R#$}LzV+?nS{wO@GG7obw=!i! zTD1zEt5d(zc2cx-wlvQH>R>+j*=L{KL0pV4WH8EfzMfAM{kdXosjc_NmHk4YlO5z_UzfC@dW)v)C~m6JAIS9 z)*s_n68Na{;#saWM@qXX??3(+OmFIU>S_9E9JS?a@dKZSPiGlsUyE^AhaiFL`*(4V&>i}q|EWgcURv~3$~)7he@ zGv}e}AECYlSlfw1A6VPA1ONK#udGo`Z_D~Y|9Y;VJNKksrhTXAO`1oP?#i#Na0t1S zUw*-dSV{#$i4r2!s|V{&%7Ox}brIM64c&SQ{tqAcNIPR}Oafb;wx~6ruG-2zP+m!Y zrDGzaq<*4*o-}5=oT0V;UXB&e9S<x%ty{}^*kAu~KPmlcxpD=|EA>lc^hxm#`I-F6w(Du?$T4{a zeLsgi_Fb@!pBO&RZ@>K(ChnivV9Q3CeIFJdnb&{zwNbHr5s`V~hq@ASiez!Yx{|n} zO{~Bku1J4gM}9HEz9J#bEn&q95dyC>e*pF#;iHPd`hxEuKVeMO=3yMOVFzlqg`#0Z zO7@RFd+?jar}p}yuCY(R!87pnZut6BV}1i0?=tpjw!l7r2usw>?Hs8a`?O8S-_%}e32^+yiIw8DgH1kl@|YUH^W}pG}zSe+|BT z{0aDAJZwOR$A0R0+D7&32g|rUd?*^*E7cf)9Auct*``0n0*(jTSfOHLtkp{zuukkh z3YlX#sRK4+9N{-yLhK23On!%LqVWL7HNH#fIq=2}@bXyLIG;e*7cN|Q3)VJ^V@@AS zkNfxOn0f#_`m{gkPaY2oPo#bN^dig~!~RFaF4EIZ(UUwtJx@C8^?;uC)ED|^tsRpl z@MR#GsR(@B&W;ECcGD8hSvZy`oKO!?=TToG$B1Tg&^BnC;Ufhd(iMP9T z>js17{gHQjZTa!XAGehTzrIlYv{h0D6z!=8t>HZ)=g0%p;mi@k91~{yPb&HDyK45?8_lyeKE1FVolg897wCNP^x6%>nUI)vU&;|Qy)snpMDNF=7 zqUVxhe%=8%*#|vv27K@cecuH9tOKkE5LX2-FZ}}dr3A0!&!2zu+_`gWVy|T4=tO(A z74bkwTZx?3&;d5-Pk!fmHuY*`>3n{TDoxD_Iix^oy^gAmjn;BQ0j<99=zh$%^OS@~%~>wK=GKi9^$0!Zhufcg9sAEd`| zT&$yEJ$Dg&ZMhNG_+Ik?>CbU(As{Q@N7w;ceg{iEzd7L+1JDH}$_W@~_tq93Qp=Sat_w1SCq3 z;Cb1yW!LWAySE_L{L;TqyrAem9qnXJu`vMZgNopRH}nAG*r@{|>hp7yw)XBLA5s?q z8f48Prr4iI)>?j2dHgA9y7VsOJ?M?^M2-9%-;ZB&O-!lM$$)sUbu7m@(0&p6$Z^mQ z;HduB(_bCaR%Cny#|H9&8z3&=i?nI4!9O$zbH$|Z!+b%}pEeA6_84qH?(=7U;u1Ix z#RHU?j2VM%fOn+>=p&*H0@wooTa}D%pnW_k(QT=CF8NPtOur=Vlg~@f&5yNj7prf= zu;e%}@f66OyNFakUqfVG=>YIU8^j-E!<>FMa>&xwXN&|v(KS3J^#OBu;bU9cd?6`t z%lSgTe*HQuSg^q3UFrkSA43&#^8nblQ}mI*@A*6Q{b#^KVzhO-iW4B7Xa{hejXL0M z^8j@HAMn4Qrybg}r?kYnFWa8aYp{4Oe=60doD+|!7o^(cbJBSJwcs%ybl39$ze&}2 z#5!$0&u{gHvI9W>R`BH&;yeg_{R?Y%+rbAr04ir6>BzC3;0!NNwm4td378Gwd?5oM zDeSH9zWeSF@;@KK9=c#-|PVN2DAZG z0>lRp*T4Mo%d)o_8-(xG^vs9%?ql9;_F3se9)sq+AqQ;N6ulncJh3>;+PBFAkpFw| z=VizEl%KqaZ%k-BkjYKb{7_TsF1V}df6||0K%@Epyzvcl(!b+eJM;%{h0tH&fhFGu zATMw)JmusFY^39mk9E+K`msWd8P-a@&LH2=M&R6WAD{(*c=qw}8ICdGt*se@{{8dd zy?1S`1Eb%5<~5Fj;E_v8Z_-~#J@7Wi0*wE+u||*w>v1Ex$5g1H-+{%j+g^ogcJk4D-8? zd&O&{Kj-_}7^m+i<$(0(K30zNoO1*3C!02vB(PhFtDMkt+ev@mPMa6JO?v?A!o9Hv zi|v@q^(n*%tgKjG5~OsMGDG)B?YTEGCpa%Pp$i87_FVgRIqiS%ksCtWf1o{Mnzp0w z8vWT9OF7WvC4$G#Q1?;1BQM5-0tE^jfSamGbw% z{`wDkw-{n-Fkks==FFKbkxPCa*TB0$7d)VS$hqO$AFatmUd>%*NYTE8@5Wozx%n3(*4@ry6F?D4(Trm0#clt~39R)S7V#I^czjI|28` zx8G~uZPoUOQ`aM(B6V9H$Yp!(<;AzJ@e$m}r9brvX^**7tXQ#L!0%HXxP#Jtx3uT` zLB9c^^gs1E_TGfZJ?Re|uR~nxC(!r!zDH}zcH{ewuK0FUSNaW0;+}Kd&%;~D>7 zAAy+%`sl|3>=&r+mR{ng_)?1XSRs|iof4lF_hiZ$s5SWi`o@C2Lw!g4m3$7pkq5uq zBiEr8f5cc%UW*LbN4+~Sj^=^Bj~^@6OVHlk5`XXVH}VPgNgFd}&_&7u<(}(2+`9pN zuL0y~6KEe7>mtpYHy>rMt&0~gu8rIkyBRYxihNYEWN=Iu^+;6e1M&cPP4R#>7W59b z2dEc*?7CRIRz8z9GmePq)1)#aK17eU4eeI&_Fve89UJ3V5AO9ue>I+EoF~UX;v_tL zK$!;|LLEs^ce!%q7GXat2B~*1^ZGX6dvl3C|NQf7jBV5UiutrA`@jq5+T$?CN(4I< z`Md4XUe$?wPD$$3t2Z-Q;>6F>b4)=0@6kqQ>@MnzGJRk%7L4ND5OTe`Vg*U^xvNx} z_?HxHH(kC2KRhR08Q%+AmV7fGdomM3J|8pwko73u=e`!+M_zH12h4QegJ-J1u8M>A zA?McI_hG$9(MVr1Mj>t5w0CFH@4>k|X#^PvgluGj4os3H$<0=+T8-2{^(N>(5VoFMMB2qQCgczwj{08l zdu5e@%RS74Mm`{~Ma8&)dhftjkrQKD9qbc6i}9>5=6LDQr`z1y&-@L1KWP0Dae~~R z*Mj>9xxT3AuS&L$_j3QL@(oabP$v*bd+hf)2%Nb?hY)YMa^>2Geam2+_exo1x~fiWO4Y@2$JUG1G=)l1&QnD89!JB+rLN1KyiK2JTrY}qpEc~fNL z>qD*&Iw1*spWXTGI`*fCir70ubVOF(0D+N!{N0V@Z2q|8@7c#AHzKUw8MG^ z=X%ND_oP4T1^JBcu||Ksmv#UFI_d!Sf>y`;mTkq_{T}T7h&FouedZ;6zcwjsjr5p1 z%)mE_w{c9S%zle8cNubM?xSCZa;s>;lC9(~nGP?ezTn%mb=z$m?dpx1`G; z4^){76)LR2{PbcfteI6n&X_Xr(-Mloo*PuOsNBMMd=dLE6%-ykZD0l7(8I`fWZR>4;VaP@PNSs1`ilKVDNy!0|pNmJm4G;U_I0LGcaIaz`%fk0RsaD z20k(jV84y27{CwUVsgd**8dE<$~n8rz?Xq9g9i*AFnGY=fp^UV{N4z1H?+gIP_dcu zP1)JJS_ z9_)!viFoC3?E%K#$=KLK`}M3@vugD~OnUk3*^jkF%=ga_9Djr1@_&ZLI1mV>C*3Q_J7{Ic^>r|H(!vyTFdJ{w4WvAMjVhDGp~x*l84fC z#edRr)g$S$<)w7q{1W9WX}|utG+p^f8ZW*p)yAKcB0iIXKL57ZlT2~rKJ^AP0W<_guD{rHp@K$QVFW)A*=yMn~;H>3nv^GFJK z50hr57;*@GV-7^ZRsg@X!ThMqrLXelvLxL%tG=6aER0B;I0)a2FC5kV#~zT5xhl7O zPzCwLo2_~*oi{v^0XtqGw{Vb_SBiaQ|Mam+PV&CRf z@VY)n*%RQPUZFz!k-s8bdesq}x!3kwUasE;@!$QLpB?S9p8f&Am*2{BQo2buX*g&B zcp*4H{b=w&iv`EUD_(pp7p!IfwcNs1`cC>&_qX!)9_vUyoV|zpoqF{h=vSftMi~a$ zk=}OsTSseszeA3}|Kx#y1J9*I-S#qI^Ic6>u+G6pf}~1;l3Gq}>N`sutV93*Q+XH2 z_h#N-3Vs+lawInMN51W|V#SK`KY02{!0}+Zhx8+?eui;95OUvi4VsRjD23|(_d%qqR8w&Y`7H2zrF6$luZdJ>(ODgE+wjCyZ>#xCXx-6BtkCSR&X41Y5 zVNLfD7d%h?Uks=TC<(}%BE=2Z&{^=dNZp6LdGqFC_%86{bLY+p<{W|?PQv4}XV1#* zJ9p&7@nh1aZF?CGIxktcKyI+lK`*U$+RE8iFP=-UKE1^|MQWLsCcP|=A6K3yODg9e z*Q=oCnG;)2fBi9SU)sS_0IiTiu~Lp4M>_lZ4#0c@$yg*(_U9rG(qiOdeWT?KkQ1p) znKEyj$J`q!?n=sz9XsB*X79w) z13-L?1yqj_Irh-=rbp~CR-#DfP95+mQ!16Clge)_)ak2ywCKTtM^GhaZNv}rH5 zY}#}zaM1v~n-#PKk{!dxoH=tU0^VqTN92}ZAA2BoKo{f_xPZ1_xp70rjvb4X!+j(+ z+KSvI0>8u?&)Pci6c>gfr^O@WjtS|%4iC%~eja%THUPiuo8k%b1#LpjE<~yDL0%vp zIA(C%>;)er2U^02Mv<5;P*HBufxMr z%<=yQKO8~*%&E`sv2Y$lzEF4}pD5sY;$ka+x`MwK0cczF1#|?Ij}zy4&Kx<&$T0vR zI6&^B0oG_(8~I*He=p>T7zrEf3TUjswm z?gW8zK)8HJYcOfzdr;ww25`+o`GjLUwC8zk1=1m34K!;Ik%w~;-EDlwC8b&5+&v$H&y6H z;@6a!GvyQX{~~o2-=o@u_bvoq5;vuo-_psybGL6xSLUMA>p)d^L`oelLh!;Ib*Qsr z(xfleuV0VEn4$a5-?sWc4*f5yXm8Oj@?$B;V@=2gaydDLfipL6N_)#Oz@q*TT!;5O zcmN431qobaBXWHCv~C?}t?xXCZ@133#{a#TKN371iuS5K!1V&~KwFFrM~@yA_-Y-- z0sG$}s`^i!A|Qtib9z2Np0f%+{&?cvy?bz?yh(eWLw?#Rmi+(k)2C7&`EM&fdBu?IN@PkZ&y?Bm0fKY{L9u%0QGn`*a8QB|6Q;y6RHkdKTco2E`1^@|CDRy zprmh%bus5Hzt_P0SIm8c{8hb?8-3`|p+JOnx~ucRPm%ExCcMzMcl?3{(gWj6SUUPS z-rpm8cA39^y}+lhufpc>!ZmATmNomw7M}Iz6|LESyjRQ3$-IHgA<4Xf$mjJRaNvtE z8a8^EeJ2iDG;iL%cFmeWs=*I17BmJfcR{|b%D%om;DLj%gS?SLYUja&g0&GH2O?qQKs(qIQxyiKts@$2RJLL;EJd9_a!(*bTer%$YNS{Ah3VAO2d|0$Z{ZX~_Pl z=dG3OGj%v~Q?ul^8Sots-AM#aKEmrI(?D#yYUyhaqGiIDmdvO$O z+eWbMHc&Qg^_P$@$jWgnl(#&p^Ga+Uf0?h zPxUxuoux|$=VfGmK7wVx*?;mru8qVz+{@E*=FOWo!B~#*y#BuLbLO0Sn0=-_$^KdE zJ9&`0mh#8^ujr#-exLz!iIYBTW50fK1-_%X7?;p3|lgYz`9FU+;eZ!EA*;#yC4b*ym2`}jVN zXNm`KjHKk!6Z4No_3O_%apJ@`&i2>J{Vtdzx2SDR-;>XC<_y+5%q>XVD>~>)m9G{& zFYuel^5r5cR|*zsL+7()KL};ZzV_*>ew)iR;Iq@jjp75&F{tmsW9yNN(!FTWBWu>I z`Nc{<9Mbo;o~r@>cgVMK*cQqm$5{50I#=IcYsbU^Venu$iO0av8yNf?c|(6cbym0T z@=tYlS@uc1&^!Pcf3McnEj{RDo}i(e+Kk_;?qj1<|`!Wa~6?Zi9db)PV_$jeXW7< zs0^Sw^s*Pg6UX^7WH`_7$As07@Lq4hnA2V2ct#l{??Zn%)qj0IEssfe$nR;- zy5jNecT#`kO2h+P6tBe4t0|%L$aCobVDz6p8~QsL6QF!L^nLjN+)I~U3x72}I2E}( z&>8)2h58#p4=|s<#{b_yy|CQ`%l`#C z0c8L>N7KR1^jCi`^yYQsTWy-JfMluVFE!>|lYrlYV+h8c6e-hjgv^Nz9}{rS z?~XSD{wIOwNpIx~*84p-;ynG}GXY#5E0-(Rk%<#0HiC`yC2Y)auLlh1-@nTs)JMHL z9rHeZ8|f5ffOZ)2#A;)nzF!U;KgB)cpue|!xJ$MyxuxQ?%Tj&DKhk!^9qrqM{4Qa$ zg(swQQoINFeg+w62HW!z@J>J9LEvHwd@$_4-tVc!h2Y#a0CChAP%U}#J03-f?C9OQ zcUR2kVbD0o6C6|efc8obse3Cy53i&xO#3?=I0(YHF$+3mD88Yvr&e{zQuu9W0f7qu@`pjY52Vxe*3KqgWVd09KqUm z0BHL-K>Lt;U=L2k8q%QRKgz_C#pRo7zEXYOU1^2yQ;tRdTd%kvT~na{p#L%8yrZ?b zhZz@|jY>HIPUwSsiD&5VyoIs48EEC#v!|cxkFzEFKa>6rzKdf&a$oa1I%{Fa7AjI? zU)>BDE*_?>PkWa(nWH#>?tBG4=vt_d3@`DcOa?#XX*p49%)cu`55j~VwMN>;2al!t zToyvs`qB15zpUDZFp07BA{in=h4#@AzUW5Hvv1rkQ z(6OK3+uWHO*RMalE86!jbCMGWj@U)S6Xyoto9@8DprYSP&!WZTTklcQZadK2W30BG zCwX$qFnr5!CcmA9btSDG`o8Lq&HTV`H&rcIa6i^*A)wC5yXE~@AIi}+Ns=e{n1$B2 z6Oeb*ecsZ>X8!Z)-+c4e0_4(v0spUNAK0>s^*llx!1n1;xQGlXRup=%qiqCTd~h6t;K*tP_{3RlfYj_Js>So`Zf}rhecYN6Ck!{lwq6wjAH>ZIOMN!H*-)zz>?5G2(4nwjAZ{?!LjRa^C*d}*Q~j=ag7=)2K4LK#Z2!A&21fN zb5z{J?;l;heA#s2!i5-^yM00M_4O^)sCMnf%@JHeXj-pcVWff z;FE~(z{QIfllJV|wcerMf6p9|dK`TgYXK(s!9O7&9t8n6&eIR`w^-O4lzP^T8FiX| z`|Z*0DN{b!v3+~d@YLnVGg!k&w_)?vUxtmI*tt!QffMWc^jck~b(>> z?qEG(i<{fM-+ue8h$C%r^q%_<9weGDY09tlTK8C4uHBe(W&Bq@@)&o;F}HvaL+D5?Qt7%6nme36RF&PxwKF6x$H&zwwZyk_*}2#{saQoZMbIf z%IvT0n=ju{#0g@-*LhylKLh$F>e^?}z@IwJe%^M&GwHX7`^&H=c|Y2WwyQmc`aNgd zi`Q$_-`InAMaCUNpH3mPXygj%8}E}h)*89q$hAPmm2*vwYXZ;VgYD+wu}I&J@E$ku z={%$Egu^l%xEw`1qutiptZzT@-*wR+Qmq5_QLQ>JWAW^uKSk=7_tf@Ctw(#+dMVe$ z*mka`Y3ms%8QU<(&#z~A+pL}&Ff_1Rqp62w^l{s`R_z`Jx+oZqW3G2~ns-RN1}@U} zg^xZBSNHIR5*Q<lQmO4=@tL|)2JLvDwT-;3 z$t&A<@Rju2@t?Gtbr^fD=ShPBv&4JEGU>SJH1ZHU(rCav`2l;e5AiIPH7Bo!3?$HE z4b=Wy#u?NHaG%vqtTo<3TwJH0e%gUt9!SFdI+MC55Ks%y9?%Og7P&RT({}X?;=~%_o6WKZ@uBcl%8213 zWW>-x(yXPA{Mu`rbRRKQrq5j@$B!P87f=7gV{iW5xp7s-OqwF~8+4RjjeAP3JU_^K ztXs0}T;Epm%aXAll!*a=3V=?nS_L3ZJ0JFNIPDkZcU!T~X%1Tiy{|QF7veNKckUt& z?%$Uy7thJVySHRaU;y)K$V>A*Z}uSg%<`GjWWy)%<#~LpTT!O?SMA|mMSLGuVqjd~zHOU!8tan? z*GP_G5^JJ}J+=4u02k-r`6p_v89Ih}RnEai*aUuOKS&SuMeVI3PciO-v>FO%lqu6+ z-I_NaJ$L5Jx`_SG#`p`YizT(T_io&{apiU*{#E@k9yT4;lDi^Ky*+p;aQt`~gm|$* z*mHp?sUWUJ-DHi*9e2R+Xi+wF*DSOfg5MqB{L1NKSLhrGr9ECGxJ zbWE1)j?dR$pK68piFTDLE$PyxP5&{YMqv>;m_FDe&=huHNL%2~*YNC)_<(U=e=RHU zj;`1nH*)%Pt^HWD2)WnR!79WDZezR|$0$8e-=iNKZy#bEp0N*Cunzhs?mdq9gnby- zwnJvPS8^Nr_Z!~53$W7++i}i4W5#pMyu2`Y1h>Cw)299O`xCflCnwe|-O+a~&JZ}e zj5vaFSa*&AoF1^UAJDQNyAaF0i0!sqpH+P^k6YUKh5qPE?&W9v0{3QVd$v$MX3Pa( zb+Tly=Fgq$fq32!*}(qX-i)JGe-E)gr6Ty3yh>bY_{00=qwlVW(>MuP2czR{9lC5@k5Nkb&QY7K4EzaH0}Vp zY`|WEu>MY8yC!28Cmi1P6W?gF28=gATt<(df4+o$->CF;+j)%G$d1@M8q%bl*y}No z?^f|53U8=$1z;HV$X)?{?fr2d&{)P+Iop1=nX%ZUJN9-7))BEuSLS+nyqq(8b}hEo z5|Bgd$8FoUzfkR&3?07`y6z3$MVo5!m$(4lXn!w1zpB0c{k4JX{!8STLQKvD@{Zzt z{kw3y3w-1U-FoKA73|XwdZX<;F%z-Mw9jnvzG^dZ&3$fo&!r=HVq^UggR`om;e+jPVqe*vGrNzHq^U{Jk<{xcML3tZzH%jMxdb zHDo^&V=IU+#v4tYD%b!hudpZKDdO^T0sw}p7GzbcKtFC$MG!;SXOLH&$hr`^nX4DIEKE-ud-fA`(N zS<|Q2L%t0l&-s2JCL~SU?Aed|0xuht{=_(-$(XISTb>8K?zUI z(s_iRwHb(5W0)+Mr;h^f3`3haccJ~yc?@l3#-k4gJ(}jvzYDz74*pyySI7GSn=?7$ zd-gDQK|kt7`o(B>P{%P|%(AVPzd@(nb!yAhpMI2YJi1AxCC{YSmS-~lI6_kAAC~dt zA;ge!|G<905!BBZVYZ)kKk31K&@V9>&J|4XZDR4~)?RxtH!! z=RtnQfCfX+kAJgd3EuBPIaWMk*>?U0-|WDiu?c8@kMbT;pw|XzwDh6o2kL-aO5@U| zgFa0meW9oCnf08CeZByh_yc450odk;F=iiy{eJ=W{~*w#bNluK(e^N91MQF5uV&2! z)Nh*ZLEP0;@K3G8iT^#yy=l~mj7_uFc6APYTwkN63@DUOe9G035&=iVZx=|o=(vnU z4D&72Jp}y!gzsP<%>B@G9&HusD3mWyj!c>I{^()D+QO$|)#kCJ2YoO7Yt&f$gyReM zPxbCCecatoGtcUmf@6+0HYok1c#FRw$IGi!m4HHdq zy4ImlqlNG{WVL)2>m@N)A}+OuxA%4D#jZ|qVqzf45T z@ngij_JRFzf^F~FGngMS$9sl-_=^$u+NFH?)rf(tg7uErmhW}+H^%K4i0RFOxtLvf zr!9N@*s*UXjUC&flb6?$L1oL{-UfMj02$F@IjOHG@33*sAl`Kz;$Hh9PLnaMv@0Kj zR+pgH7GO@&zIN^PYgVr=2fqjg2*>qhWZjFtxWMoFCFe$d9Xbr{;N>-~UD>ibeTo)6 zG5VKZF3+f3`BGq+GM9fXQsj8&vSoL*uUBubU%PfAhGG4Pxf4j!$ZAVO>Y?8cd~1UL z(KKWFbW(*HV1`kd;W7;$meB37RrU~;^r){)|w9k0sBXXcf7A`wcE@w<-v2xUcie3-Xz}Sb11Hb#(xvB+;XXdY0$R5Y7~tVC zuYajh>-!_tX832H-JFN{%?sH3Q$0LZz;<)k4#8X@_Jpakn^o^M=VJ3k*Tf%ll;MZ5 zj(rrV367a_*y4CNj+@UvCjMW2tL0JLhIyfi;n<3I-{%|vHvhPe9f#WMr{%S714fT* zwdkw_Vs6UV5ym$#Z#vi484sYvVywO>ttV`hv1c(&nZ8{nBuMl+1_1BANIwPMeH(MB zd6Oo=D0YnhC(fMTw(qXHGWjp8iJRZa_o_AhQAcq8Q1E(r`|10TllzYJKlWUDep^Ue zr_|Q{@cujW3*!CTQ>T7@@W25$+3dfcHZyX}mHMG-!}~2Ju9mLL&SNb;NPE|ieL>>C z`GItve^lB{*(APm4dT{rznT{VZOpYNFBe4(tR1${g>>MDNEPO&Ru)t@WBJJd-oohFnfu#AHPO= zt~(`d{U^#q;GaGZ`UmJQ@CS4OboTO^99G|Xo%Sa3h%DiHGVE;`F>HunekZ&3?33|h z0_D!lYq%}+-yY;knppTpITtsMTtZ*ho7Z0Hv!K6a9$-MKRM-1@c+6dny?NYkhZ?Nf zwJTSy%m{m3TO`|p_vV1VedFFea`dlLk|oR6%$Xkg<>p^|2K1B1aWJLA9Fe{O`iZ%2 zN*pNP57*(De;2vFjt_3uZ1kK-lNzpHy}Hcr;EVI;&Vfvwz?Le504(^EeGZ&hPMd?1A575BwbmfS+yP zi=}AaBINVzoh;eI*52L~P^W3ch!LL5x5U52@cC9pKVH(80vY}Rxa}Vhpk1^4?+@g& z-IhLm=yfP_JCwhICD$vTWA6VHZF_0<@sBKBdK+jBK^4=mVZ%J{o7X5eATRJ5yGY)@8~RygsD&H&`Cir^5HrcM00AE>h$^Vky7ly9vO58Q}jV-?3!W zD7nD3ar&82&qLsG0`di2eDHvmL;amYKDv$c6|i2*ck(ySvoAcRuO0OqYuYqu`lLy4 zQoQCxe7mLaiq)&1KgG!jm=9|?Ziz<%+P(`gecn9L8mMc*PQ)*qpq@3iReKM8^%Z@Re_3n^k>0Mm?{vZoU9`o`p7C z!rJ3Q#84cBoK8hvu_xe@P<`jR5!QLMH5mGS>5D-Qt5ppe+*&+uUTyt*)p4(?RqL)p zJ-g7Cm!uW@z<#m)@cD3UyWE!B>WqJ$d@z=h{T?q_BKMGo z_XYRra=$h7gQUQFL96R{|9|Pzi(rrDee7#q{p+uPPaHnHD{}5*(d#w6tsT#wJ=7zupf=T++vgJXxCGo$CPII?KB19x^NS7ob^6*$kZZh2M4-=+!1|+6POQ zF4g4Q+WRcet-{{m4)No^`j<3kelEUC`TkT%KPP?8@Jl^z+eVhwZ740KY(QS)0gw~q z+d%*6zi0m71&Bi(@YPqRM)&E{6+Q(BiT(a>Kn{fo2@^h_3*Yk<$`pNH^hGM)ooWNl z|I@UI3@=kr3isVALr;S|3xAiL;MomH63ZIs3&wXa9*yGwbHMjTeC#lcMX<^0(U)tj zEr$*s%)K{Vx_j55%ctV~$Dk*)Hdy-C!3&p~{wgDi|0tEchsduRUP|}PH)LHpS6PR+ zCi-!y@9qMR%)@*Me#HL(E8uq?*riJ!OW9Lx`F;QXyob`Idx*r~GSA!ldO+{q-KUi< z{nrcPoH9gQ5C_Bu+H|UMBk5NlpSX9NDs?9Am9<}dDa&)^l>ewRDF2iR*dWY@w=#3) z8;hn-uTMKez0a~lTuz3mg$n(%$kX%6+EuG6@;dZ$`aoabz?F6CT)D}2(-%qK9ccr( zIM=A53_*?-?~>K!$j_x@33EG8CYXN!GITU`>X#!bR$Q}h-#!SjefrbCxC;B>j~+RK z#njOEGCq68=+PZUw`j3;MZJ0tt|4#bGjn^c`Lvc5WlPIU=*<(*bC1xj{q^g=46Ivs z&H7cVD!}&@A=_Wy7Sawm{xeUXII&LecI`U(RIE6k588gBS(6{ zzx@N(JoL{-<}qTxXfK+E4;f+_*txSQphpkWgup-(@{pL&J`?v&N9OxJ8qb|Pbte1lRohzhA3twY;Otd>*KFERZ5O`( zvk~9#o7SsWkC}xE?Oi@$0*sE(a?IajXD{o~Y4NFtoY#!~6Z1NJ*Qw*mGcv63FTruo z(38wZzGvgcQu^n~)03vnYTj}2aT$38-vZe4Qu?pEDE_Pe7XPEq#lPQFP1mo3J-#Jt z)+<;mPNaVxG0?FF4H|T)|B&G_Z1Gm)-Q6kYFInf z)MA;KH<-2wY@$2JUHhVer<}?DKe>W=$6mB+x|i1h#KMId^Wj%8jcnX_!ZpT1aU3zn zH9T+rt4wO&PdZKBBwJzk%?EC#rATpeN|Pqzep|h|EZa`t^9x(HoUk`{?x4kW>mGT* zF$lR3gWCGY&^pb;Ys_!5Ci}PY{4?MX^_&O(ruXaDSv}8k&4L9r0Syoj@yWVbvwmIe z>$~G@t5%QiwrnmlDpixU?$za=s#TvacXwaEd-LYv`e&^jbIig#;+p_}|MEi`H>y3N zSFiHBckaw(?cRuN|I!+&&SK1ryBkWxbQE->+`*TD#?E(bK*l#$zIt-kW@Vp+uhSAt`E;wkC80o&t$@R;6yvm`-A^nc^>s@=iOi5k5=KlO9ofo z@9v^*Cyr1LkkWzYL+(d4CbS2)#lh+7>V7wzHpO-KK`Y|oJl>=Ix$$`@a=AHW)ub2if4H{?pB!N-T3L|#)D+$%2B@yZ*p^M*w8IQ23H+< zV`z6{zlxh{3{?kiN4@I)ST3$1=*Ris2i)9TOU8JOe$;Q$?ss#GSuLk)28Di{PZC4B z5F=*ZV&I=-$&zZdqdl(Lc~{pwIg@0-pQ}mx1NMV!iV@S~%KL*)n_OIRz$aW?UC{p5 z{E5>h6FXsYi{Ym3)=u(27hEy9S==3bHEF2shCK0B51?nMYB^?vSw7M3ODxw|UNrTL z%hC@l#S*P%8DuVBn#-r=@;=JMxUR~J=HIH^hTr_s6H8N1a|xN#eycL3`L`KAhC@-RVwv+8hZ&9lDu^qh5c4%c$-S1)`DX-%K?|X)h@;TzLs8(Lo zju8x<*b%&jUU!Sdx7z&k!xg+DWSmiBj7GS3G0qGaz}A2|+F#84KmS}H2}HsCJ5T%e z?b_#ZaWV6L%%Aa>zXU`u_5xi1)^IZ_gx2g6s2a;_mJ1TPZ}4Ju11!@%6>_ znP43q$Jf);#MifjO9uWy-T78ZhU*>7I*q?G#6|+F;OnmV-7r~7{0_d37I-wskio;Z z1E0>|ir z6jP_3VBemQ(Vk#uh;;D&Vn6%_BnFVHTmUfvaREG+9#C|fb}!bBf}cx|GVvvxzlLY! zBHX3gRN(asL(kjn^Er9k4?sbp4MjfJcpS&h+f)7VkSkiBFTW2_+0M(WZ48vf^5u7R z1z*I9(>PhO7^YG`mTKaXAp^#g&%g;uOkZXAsu=kSV|*~hF{0cbSybz;iFh*cKD6<*Xz*m{ zKjOmx0|y2V7(8I`fWZR>4;VaP@PNSs1`ilKVDNy!0|pNmJYevE!2<>l7(8I`fWZR> z4;VaP@PNSs1`ilKVDNy!0|pNmJYevE!2<>l7(8I`fWZR>4;VaP@PNSs1`ilKVDNy! z0|pNmJYevE!2<>l7(8I`fWZR>4;VaP@PNSs1`ilKVDNy!0|pNmJYevE!2<>l7(8I` zfWZR>4;VaP@PNSs1`ilKVDNy!0|pNmJYevE!2<>l7(8I`fWZR>4;VaP@PNSs1`ilK zVDNy!0|pNmJYevE!2<>l7(8I`fWZR>4;VaP@PNSs1`ilKVDNy!0|pNmJYevE!2<>l z7(8I`fWZR>4;VaP@PNSs1`ilKVDNy!0|pNmJYevE!2<>l7(8I`fWZR>4;VaP@PNSs z1`ilKVDNy!0|pNmJYev^$H4<8lc^HHp!df?Z-dSToyh}A?p0~8wTw^T-sa8xvk#@4}7>hV9@sCqpdADw{_m&k&ll@ z44Qvw$Z4|&?WYGAS_;t%FZ+J1<6Mc1-4gPe958vjqQORR(u^*x2eKl-;0^YB{A-qQ= zE{wXPuPi%4ySK>e4)O9w(jFz>A*GUiNtG((oTIpKgwDo2AGRDjLtjVv%DB%l|CIIf=7*U+Cjg&6F9Xi_j=iPR{kBOzj5EksaKrfQA6${ zSMJ}CdC)?e-|NSGOW8N%|KpU?sL;=mB>PtRn7r%&d@MR8Ok7yXy!x$detoIKYnb?p z3cfMwjNUpZoN^x~59|0cqW6Z$*Wv8L+p5>0{wo=`SL)?n9qaHMW`7J>joz{vne=l~ zX2RrQkEs_VqM+ktd+!UA&zB`GUe>K0>-rfY=ho;P8T@0^5q4|3>`3)%_1T*|#bqku8&~Z}?tu8Y0pT3t6zb zb{3hk8P#>^<=ob>uFrO5pY%7z?&v#qhnIHt*OO^=m2}NZta?`e|F_Ry!NBc$+aWbRQt`PG5&uf_P?I)YEG*!^*sI| z9qaqefX{M3?9FIEZMQ zRb3I0WoMraORgQguG)^$uKXKv`|jm7GH9Tq_eU%HdU;p)(4TYmSk>XI42SoAM`hcQ z`&8Re8uI@U*#3&%AA_y$s2nStIC{Ue`&1p_m1#$xb3~?{xkt4dr6K=k>^#dm44T8y|wAvmyJ|WnalU@uZH!Q}TI7Pr%H!|*ZMBXj$QEf$O$o~f@|BAl$ z_|>@PxNJLuD~0oj%5-?^v6OLpztuZX8uI^v$-j=a5wd3;;d$ep*E&SuJ+kCKy!F|W zdv#6Kjna_+4@mxXbTwq($^E<$)ny9z5tV;Fuj*2zvvn#tw^ph;&81EGkBs#vqmH+` zcBrRqMETix{`J`I2rd-vot0I4_p3Tt+PlxzwJ_x0ko^y2?AP;&Bgc;LvvJS6mw(E& zB|UA)y1nyyJ)o=4ru^d`Bjzuf=ms4<-{2KTuf315?r7Wf_r1%0sCL+s!|+~Hb?ZxK z>!J?OKaXR(@~^HNHvHSQ;hn{|1x+n!9IoH*N{%ACFK??Ks@=}Yq_g*{_vlM!>d-ys zknH3BQ1>~@o5uZ7t2=b`440fc@_bawkhL~|Z^Hd&tv;TM%6_nZXXG%V_gd?tBX#PY z3nkY$@APjFDC9d)#__wsg^r$4CjaUkktsi_PJJ0}fw%LZzJ7Hanf+j0s$NIrFS74Z z?^dO~`qe$=(rJ0eb5@@*WdGgBKJjirQ#+FI<|WH#9r+zm*|GMHH(M4pXDr|S|Mt%H zT5?>s!Vbe>-G2_`2I3GL!OdZQItz!=CN#BqQ7BO21Ei>`eb%Z4iVp|`_Xnx^^z@AG zvnH?3~e*VWjW0m>Q5)fcY=jEFlTx^i+btteA&JpW~`6i_@dU?czX7v*%yCc z>`rUG{H?$D=W zHSJKolkX~jtOIlEpg!A~jOqKFwP(gK%lFxS>=?M$b_d=|G1&OkbrrX1{*-yF2Ql>k z=Q)cF>lgPE`%ORCm*%>qUE*)2e(ce)Qy5S8srH++#P11>Ilwu76Nh*1CFe8!UAY$a z_1v9!FU5j=7Hl=MY5lahtOwWi5a$=k%nYBA@y+&?_y6TJ0JQ=8b?h{@)4hg$|9XAE zc}4L6f7*`v*1pgl^|@kwj&-00$U6ZTdy2)r9Xrfx^0~}M(#Y3;m%tfC@c@6?j`-Go zYhH{+l)$H$^*q6N^-w_PKm$l*>eJ%IVYtZ&= zi_g2}BJL>G&-{R?CtKv}!Z!1p{0*%UDSyicxs6}~zO2>0G4|JAfBiZ8V2#YzKUnWs zJ#W|cv7f=;1D&FG4@$I>_S>9g-_zp!R-f zwg%w3mZNW+hchTxm;a=vuVY{Kgd9Zh0$tkOx^N%_J z`;DB}?g{#N*`MP-iW8H^gWp5z>IQZW^auMfuGUJ^j_YePb=ymc8T);Tt!3$n^R$Li z`-6Xx-M4-YEe4Td@|anLdp&-p`?q;m{IYt?w$0RSFA?`y4xTdhMBZ)8IFDq1j(ypC z)Q`$zW*`1B)}rgYMg@pI&#Gx#HxYYFE}lHs^0w18&f;as{{T5Amv1!yV=X$y8nO7% zeYTA`yIaKFl8axOyQ)6m9A5UP*iVe4ZU6oMgN)(@{z|q-!|;U|aqU^m+1(=co_ugk z|G%YVbBA+C_UG77jHGR^S z>mYLevTyt+nf%OiAA3bUq7cE~*@s`TGxVtaOB?Jz=^X%jn2{g){Hy`U_shPqpZb34 zy?+(|Gj*uXQ}h3n8i4p`=7_#i9r))zj}P)KtlJNG_%(~1L_Yt8zwCG7f8&OGh$a7@ z&pWd3vM<_v~kXfqHWv<_q8@+PcwZWesVgYcDRUzY5v zKj%PhB6JS^vd_uf~4R?=bJM|MuQ*Ir!D~A6e!Vm6?IIJDq z-jwBtnfzDqU-7&L_hOOTmp%B`x@Y^}bx?9N@}pTp-dAfH_tmlJ_Q?KbtwqeMbM>hE zHFEEU>d->N~?WSkMqhr+VDNr{!MSM%y zyQ4M-^N#Ne$e*%5`QPsfyQ3eK!v+Qad3(OX$1ZwCJeqmkZrbRC$r9f#xtbEkB<`JO zzP!AW{ee0FRt`;8YF)F0^;2{-@XSJ7I#%7T+-mqV#I;+#LgJaoy~94aAK*R-J4x~H zfB#q88o_Ihur@?L1H60pM{GJ?-LBbd^c=+G#rxR4$=s9u@%Mb;-F~1&`Ts4UU88p} zl-C4v8^rBVw#1pl@+x#rx9pClI{wKGV2Dj9sn(i#adS{qtBTM>k+TsL#b^UZoT&W;{H#`*AeGU+>`zJ z>`NViCa?Indd51jPtvoF+wQ4!-NJs!2kyIlu5RRAn77;?`f~o(*cn+XTkN;Qh z-+s?8`o@}Le8O{jHY13?#OhhUR}0SOKPF!ra8LHfd2X$VU_tY*zXQlP^o_Z&vpJpV zAA8XI!#*RezR%44bot(ddGER3s$%`X>XIW4Qs$huK2xv>7Q#L|Cax4G&_NJ zZ*RzhwRo1-Si9D{&#ir%@vrk0^*p1Ww)Y8~f#&~KjYjZ3pmXG7)NY%@f!yeK_K~*D zEtzd&HZos03-G_KZgpK)sA1%%)-r#8{|>KIA8Z~YwM<{_bp+?JE&nrF|JT3%{AvBv z#-r=iZtdDV1kQubV99DbtFv;3Gm#pw#q%prcOTE8R^DsoU&Xr{{}Rtt%t7POmbSBW zOuv0K1!r?R`$3w!)OHQiEpuw)-l-1M#yl_&x`HL2eSFT&8_q}UEj3_3W0$OZzFXM7 zn(O($>ihCKp!IZUioera`a8Xzdhu~)D>Qn=$*l1!rd!5)V_cEn+I#fw!K||yBKvzj z@6YOkJ;N#Q14cJp&+t(nEsU4uj>aJCYZ+ZJZ(u)GH|d)H&&>zE_tze+^eN1E<=h<|Q4SR!sWi$7w@2!3I+~L?h?+WTHW1mkAx(a8#bnhD0?VOUYk^V_F z0B706zm27^FZfpWjrY|5aZS$m;r#3@aHd1L(K;$MPnd767V zPS)>dy>tdRXK1O*u43lP?h}%G^{fW}ur+6i7z*~3>$Ik6yre<)-&Y^>x!35$o%3Z} z&VC2bIhVGZ(}wp0_yhOWV!XjNah?1&%_r~o@osakHPNL*vfuojLFXLpuH3(B1bhhh zXt&tHx+bR6{hH@nE%JJOU9dW7)*<nt3oO_4=0?U8wJArqtV^Qs9 zuG8A)HDrH1`;v2Y&W9G8HAw!e`PaD?_VGb~bM6cLdu+G#As%C!nNI7Q*RT$(tpnza z+iL*%ui{_l8QjC_v7Q=$^(~Co%!OZNn|V%ayVkG{tf>PyThRmB%^GA4IIRK5t5`5^ zE#@@mKD`5AZ4J{sbKqauE~eA^u63*h^J)RkRP!%=O*$n1F8|0atYuzbV@^}vC%ylB zH3IP&+r@M8F|>~LAg&(ZJaOi@Zqgz7|KJ~a6stKewe|d_+%I_kLmT!Pp<*85Ir-^c z&ss263vh-wV_b`E(jjX=t^vqliS<%H)-~mQG5?-U5O=cO9FMML9q6kAI6IuHt?|`b zB>(w)xa73N_*p;BqB`db-~Y8fbQ>`nyR;6F{XX_3Z#Xx7rmO+y|GusL`+>+I?0@~w z|NW8A8SCB{){AYa0a$0xaOE{(aO~7tK=%9DKjXiv2K?YVfYv*>*Vg0wtPlQb`Nw>* zD|s*7OUGl{;dOxQkFkHnzi3dOVU;F-s0QfVXy$eMjCF4eKC5!A&ZorVo&DI0u_1MU z?2og5#=q8|K0n>>wts+soeybi-o3WRd8tqPcJurC&W|z7m+L!OKf5<#bZl2GAp0@w z*YYpgvS$bVx%SIzfX;=-yX`BnUh0Q`H@7GJWBwV7caC9SC-$-)ko`FJHUDxZS{u-k zw)Wig*hl+IY5?|p_Gf;UckjByy4RoYX;}Zrv8v1782a?N?$X8{PwYo6Ap5cGBcC_} zXal+_S_4DW+CBIe z9qDs|u3T%FvCq*bT)*wr><43-^-{aUyX}WhH=pL6pk;2!-^O)->@WED#i1eSprjMq zk9A`0*xR*X<_XN(7_nE|FV`3=agTn>dFdMd-g0QT$5_i;thut#!D@@Wye!#Yz`ndw zA@6eDSK6@SSPN^%^Ys_k0PI~XSTETU^SU4Ya_%nJm-$z7qsC{|1nl|P%Oc(L`^4Yh zCy@Id{zX?<4_nk4Ye3cC3B1hXs~*(OE1pN8u0+kRtrggZSTZ^1JN{W-k^e6K71Qu@ zoMTB_YQFa_{e(X3)5eN^v8Cs~^y_E6*M^@f4r}LK`MGl(dk}l3QI5^43pj&j{vDR# z3)a<^v(B=#^ELJ+*2byFdTRiDxVckxwRYZ>pF748J1qI0$M;ok^BE{@U25WlVfce} zeVwegOzn7$y@|E)VT}C$r~Bs;$Pet5J~=+OHso^%;$L`xPi;Ty0BeBzT>v@z$d@^v z+Id%gR*oZPvE+I#*R}b@nN;iGf?N3W?8iMWeA#E~Zr6H`Ha3iv-UH6Q`^(yoT!DX6 zUyJiFe*=qLz}9M$^XAuxd?qzIx!@JPUN)Kh^Y%{grr8UhmaE;a(+>0AY-|{-tpS)X z_AN*HY!v^;{q)#|ZM~;sU;O=^y!>qQ!TA*R22EXX3O_HK%<+F1MEA1p6{N=>kKe2-wS!%%py*)J87P={JZ|(j9k4zPZ#Wq4&f)+%)FOp zHSbuH?^|(?toIG)>V4TbF?Ll0FfZo>`4_A9oadoW&)cMp7{z)zVBfzPyfYU#Cs%XO z5_DFu@X>PCdd;z}@?M&Q-P(FjIyT*JYk+k)%ubPYgX z-ZMBZti9Yf)=##G8#Y1<^l{B>WRCLLX{{LDL2sA~8yScAf?sVj6NQ)%+iv!44<>eu zp$6bO?^VvitdZ+H&l&reug^2MjX1Q8)&l*lsRKB}tUX6tn4|5?^U?P~`z*c>?K^w8 zYfg^e#Dsp>yuSkb&HT&#$i2Lv@^g{{=uhmSmn)r~_=?W8j!n1kV!8Leh+VHoA8cmT z%YL%%Jqo($mJ^@ z^j)zpapt+bdugo!>Yljw5&Mlgu)5%NOwG{e>$P{vvm0M86N}d&_SU+Cbz)oB7U!ST z1ARZVchUf3iQ!)75$CL}9^b94c@Sw-R;~NPdxiNr%yY3 z9k17pVk6Rzj`PZI%iJqprEz@^w6!MKp35Bb81zUhrf6%Qf|Szg~F;^UlE2yzT=VcUc{aZb!zW{i03H z&C?unyJv2p{gRDj?k-=Yy`i7l+*6x8m-XiYCTi_nOyj<_aeDKpul4$3&YzQWkC~o6 zu-a;S?p0bt-91NlJgaA%Rf)CL{nX1d^ulxct#gW~1JulKX@=*`^QH!<0cwC6pa!S` zYJeJ`2B-mQfEu6%r~zt#8lVQK0cwC6pa!S`YJeJ`2B-mQfEu6%r~zt#8lVQK0cwC6 zpa!S`YJeJ`2B-mQfEu6%r~zt#8lVQK0cwC6pa!S`YJeJ`2B-mQfEu6%r~zt#8lVQK z0cwC6pa!S`YJeJ`2B-mQfEu6%r~zt#8lVQK0cwC6pa!S`YJeJ`2B-mQfEu6%r~zt# z8lVQK0cwC6pa!S`YJeJ`2B-mQfEu6%r~zt#8lVQK0cwC6pa!S`YJeJ`2B-mQfEu6% zr~zt#8lVQK0cwC6pa!S`YJeJ`2B-mQfEu6%r~zt#8lVQK0cwC6pa!S`YJeJ`2B-mQ zfEu6%r~zt#8lVQK0cwC6pa!S`YJeJ`2B-mQfEu6%r~zt#8lVQK0cwC6SfPRc;14sv z3@`)C05iZ0Fayj0Gr$Zm1Iz$3zzi@0%m6dM3@`)C05iZ0Fayj0Gr$Zm1Iz$3zzjS- G1OE?SzcGja diff --git a/src/sdl12/dosstr.c b/src/sdl12/dosstr.c deleted file mode 100644 index f9bbee9b4..000000000 --- a/src/sdl12/dosstr.c +++ /dev/null @@ -1,38 +0,0 @@ -// Emacs style mode select -*- C++ -*- -//----------------------------------------------------------------------------- -// -// This file is in the public domain. -// (Re)written by Graue in 2006. -// -//----------------------------------------------------------------------------- -/// \file -/// \brief String uppercasing/lowercasing functions for non-DOS non-Win32 -/// systems - -#include "../doomtype.h" - -#ifndef HAVE_DOSSTR_FUNCS - -#include - -int strupr(char *n) -{ - while (*n != '\0') - { - *n = toupper(*n); - n++; - } - return 1; -} - -int strlwr(char *n) -{ - while (*n != '\0') - { - *n = tolower(*n); - n++; - } - return 1; -} - -#endif diff --git a/src/sdl12/endtxt.c b/src/sdl12/endtxt.c deleted file mode 100644 index 1e72ca9a8..000000000 --- a/src/sdl12/endtxt.c +++ /dev/null @@ -1,234 +0,0 @@ -/* - * Function to write the SRB2 end message text - * - * Copyright (C) 1998 by Udo Munk - * - * This code is provided AS IS and there are no guarantees, none. - * Feel free to share and modify. - */ -//----------------------------------------------------------------------------- -/// \file -/// \brief Support to show ENDOOM text -/// -/// Loads the lump ENDOOM, set up the console to print -/// out the colors and text - -#include -#include - -// need this 19990118 by Kin -#include "../doomdef.h" -#include "../w_wad.h" -#include "../z_zone.h" -#include "endtxt.h" -/** \brief The ShowEndTxt function - - - Prints out the ENDOOM the way DOOM.EXE/DOOM2.EXE did for Win32 or Linux/GNU - - \return void - - -*/ - -void ShowEndTxt(void) -{ - INT32 i; - UINT16 j, att = 0; - INT32 nlflag = 1; -#ifdef _WIN32 - HANDLE co = GetStdHandle(STD_OUTPUT_HANDLE); - DWORD mode, bytesWritten; - CONSOLE_SCREEN_BUFFER_INFO backupcon; - COORD resizewin = {80,-1}; - CHAR let = 0; -#endif - UINT16 *ptext; - void *data; - lumpnum_t endoomnum = W_GetNumForName("ENDOOM"); - //char *col; - - /* if the xterm has more then 80 columns we need to add nl's */ - /* doesn't work, COLUMNS is not in the environment at this time ??? - col = I_getenv("COLUMNS"); - if (col) { - if (atoi(col) > 80) - nlflag++; - } - */ - - /* get the lump with the text */ - data = ptext = W_CacheLumpNum(endoomnum, PU_CACHE); - -#ifdef _WIN32 - if (co == INVALID_HANDLE_VALUE || GetFileType(co) != FILE_TYPE_CHAR || !GetConsoleMode(co, &mode)) // test if it a good handle - { - Z_Free(data); - return; - } - - backupcon.wAttributes = FOREGROUND_RED|FOREGROUND_GREEN|FOREGROUND_BLUE; // Just in case - GetConsoleScreenBufferInfo(co, &backupcon); //Store old state - resizewin.Y = backupcon.dwSize.Y; - if (backupcon.dwSize.X < resizewin.X) - SetConsoleScreenBufferSize(co, resizewin); - - for (i=1; i<=80*25; i++) // print 80x25 text and deal with the attributes too - { - j = (UINT16)(*ptext >> 8); // attribute first - let = (char)(*ptext & 0xff); // text second - if (j != att) // attribute changed? - { - att = j; // save current attribute - SetConsoleTextAttribute(co, j); //set fg and bg color for buffer - } - - WriteConsoleA(co, &let, 1, &bytesWritten, NULL); // now the text - - if (nlflag && !(i % 80) && backupcon.dwSize.X > resizewin.X) // do we need a nl? - { - att = backupcon.wAttributes; - SetConsoleTextAttribute(co, att); // all attributes off - WriteConsoleA(co, "\n", 1, &bytesWritten, NULL); // newline to console - } - ptext++; - } - SetConsoleTextAttribute(co, backupcon.wAttributes); // all attributes off -#else - /* print 80x25 text and deal with the attributes too */ - for (i=1; i<=80*25; i++) { - /* attribute first */ - /* attribute changed? */ - if ((j = *ptext >> 8) != att) { - /* save current attribute */ - att = j; - /* set new attribute, forground color first */ - printf("\033["); - switch (j & 0x0f) { - case 0: /* black */ - printf("30"); - break; - case 1: /* blue */ - printf("34"); - break; - case 2: /* green */ - printf("32"); - break; - case 3: /* cyan */ - printf("36"); - break; - case 4: /* red */ - printf("31"); - break; - case 5: /* magenta */ - printf("35"); - break; - case 6: /* brown */ - printf("33"); - break; - case 7: /* bright grey */ - printf("37"); - break; - case 8: /* dark grey */ - printf("1;30"); - break; - case 9: /* bright blue */ - printf("1;34"); - break; - case 10: /* bright green */ - printf("1;32"); - break; - case 11: /* bright cyan */ - printf("1;36"); - break; - case 12: /* bright red */ - printf("1;31"); - break; - case 13: /* bright magenta */ - printf("1;35"); - break; - case 14: /* yellow */ - printf("1;33"); - break; - case 15: /* white */ - printf("1;37"); - break; - } - printf("m"); - /* now background color */ - printf("\033["); - switch ((j >> 4) & 0x0f) { - case 0: /* black */ - printf("40"); - break; - case 1: /* blue */ - printf("44"); - break; - case 2: /* green */ - printf("42"); - break; - case 3: /* cyan */ - printf("46"); - break; - case 4: /* red */ - printf("41"); - break; - case 5: /* magenta */ - printf("45"); - break; - case 6: /* brown */ - printf("43"); - break; - case 7: /* bright grey */ - printf("47"); - break; - case 8: /* dark grey */ - printf("1;40"); - break; - case 9: /* bright blue */ - printf("1;44"); - break; - case 10: /* bright green */ - printf("1;42"); - break; - case 11: /* bright cyan */ - printf("1;46"); - break; - case 12: /* bright red */ - printf("1;41"); - break; - case 13: /* bright magenta */ - printf("1;45"); - break; - case 14: /* yellow */ - printf("1;43"); - break; - case 15: /* white */ - printf("1;47"); - break; - } - printf("m"); - } - - /* now the text */ - printf("%c",*ptext++ & 0xff); - - /* do we need a nl? */ - if (nlflag) - { - if (!(i % 80)) - { - printf("\033[0m"); - att = 0; - printf("\n"); - } - } - } - /* all attributes off */ - printf("\033[0m"); -#endif - if (nlflag) - printf("\n"); - - Z_Free(data); -} diff --git a/src/sdl12/endtxt.h b/src/sdl12/endtxt.h deleted file mode 100644 index 41f8e51ad..000000000 --- a/src/sdl12/endtxt.h +++ /dev/null @@ -1,24 +0,0 @@ -// Emacs style mode select -*- C++ -*- -//----------------------------------------------------------------------------- -// -// Copyright (C) 1998-2000 by DooM Legacy Team. -// -// 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 2 -// 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. -//----------------------------------------------------------------------------- -/// \file -/// \brief Support to show ENDOOM text - -#ifndef __ENDTXT__ -#define __ENDTXT__ - -void ShowEndTxt (void); - -#endif diff --git a/src/sdl12/filter/filters.c b/src/sdl12/filter/filters.c deleted file mode 100644 index 1b2346e8e..000000000 --- a/src/sdl12/filter/filters.c +++ /dev/null @@ -1,1000 +0,0 @@ -#include -#include "filters.h" - -//Alam_GBC: C file based on sms_sdl's filter.c - -/* 2X SAI Filter */ -static Uint32 colorMask = 0xF7DEF7DE; -static Uint32 lowPixelMask = 0x08210821; -static Uint32 qcolorMask = 0xE79CE79C; -static Uint32 qlowpixelMask = 0x18631863; -static Uint32 redblueMask = 0xF81F; -static Uint32 greenMask = 0x7E0; - -SDL_Surface *filter_2x(SDL_Surface *src, SDL_Rect *srcclp, filter_2 filter) -{ - return filter_2xe(src,srcclp,filter,0,0,0); -} - -SDL_Surface *filter_2xe(SDL_Surface *src, SDL_Rect *srcclp, filter_2 filter,Uint8 R, Uint8 G, Uint8 B) -{ - SDL_Surface *srcfilter = NULL; - SDL_Rect dstclp = {0,3,0,0}; - SDL_Surface *dstfilter = NULL; - Uint32 Fillcolor = 0; - if(!src || !filter) return NULL; // Need src and filter - if(srcclp) // size by clp - { - dstclp.w = srcclp->w; //clp's width - dstclp.h = srcclp->h; //clp's height - } - else // size by src - { - dstclp.w = (Uint16)src->w; //src's width - dstclp.h = (Uint16)src->h; //src's height - } - if(filter == hq2x32 || filter == lq2x32) // src 0888 surface - srcfilter = SDL_CreateRGBSurface(SDL_SWSURFACE,dstclp.w,dstclp.h+6,32,0x00FF0000,0x0000FF00,0x000000FF,0x00); - else // src 565 surface - srcfilter = SDL_CreateRGBSurface(SDL_SWSURFACE,dstclp.w,dstclp.h+6,16,0x0000F800,0x000007E0,0x0000001F,0x00); - if(!srcfilter) return NULL; //No Memory? - Fillcolor = SDL_MapRGB(srcfilter->format,R,G,B); //Choose color - SDL_FillRect(srcfilter,NULL,Fillcolor); //fill it - if(filter == filter_hq2x || filter == hq2x32 || filter == lq2x32) // dst 0888 surface - dstfilter = SDL_CreateRGBSurface(SDL_SWSURFACE,dstclp.w*2,dstclp.h*2,32,0x00FF0000,0x0000FF00,0x000000FF,0x00); - else // dst 565 surface - dstfilter = SDL_CreateRGBSurface(SDL_SWSURFACE,dstclp.w*2,dstclp.h*2,16,0x0000F800,0x000007E0,0x0000001F,0x00); - if(!dstfilter || SDL_BlitSurface(src,srcclp,srcfilter,&dstclp) == -1) // No dstfilter or Blit failed - { - SDL_FreeSurface(srcfilter); // Free memory - return NULL; //No Memory? - } - else // have dstfilter ready and srcfilter done - { - SDL_FillRect(dstfilter,NULL,Fillcolor); //fill it too - filter(FILTER(srcfilter,dstfilter)); //filtering - SDL_FreeSurface(srcfilter); //almost - } - return dstfilter; //done -} - - -int filter_init_2xsai(SDL_PixelFormat *BitFormat) -{ - if (!BitFormat || BitFormat->BytesPerPixel != 2 ||BitFormat->Amask != 0x0) - { - return 0; - } - else if (BitFormat->Rmask == 0xF800 && BitFormat->Gmask == 0x7E0 - && BitFormat->Bmask == 0x1F && BitFormat->BitsPerPixel == 16) //565 - { - colorMask = 0xF7DEF7DE; - lowPixelMask = 0x08210821; - qcolorMask = 0xE79CE79C; - qlowpixelMask = 0x18631863; - redblueMask = 0xF81F; - greenMask = 0x7E0; - } - else if (BitFormat->Rmask == 0x7C00 && BitFormat->Gmask == 0x3E0 - && BitFormat->Bmask == 0x1F && BitFormat->BitsPerPixel == 15) //555 - { - colorMask = 0x7BDE7BDE; - lowPixelMask = 0x04210421; - qcolorMask = 0x739C739C; - qlowpixelMask = 0x0C630C63; - redblueMask = 0x7C1F; - greenMask = 0x3E0; - } - else - { - return 0; - } -#ifdef MMX - if(BitFormat->Gmask == 0x7E0) Init_2xSaIMMX(565); - else Init_2xSaIMMX(555); -#endif - return 1; -} - - -FUNCINLINE static ATTRINLINE int GetResult1 (Uint32 A, Uint32 B, Uint32 C, Uint32 D, Uint32 E) -{ - int x = 0; - int y = 0; - int r = 0; - (void)E; - - if (A == C) - x += 1; - else if (B == C) - y += 1; - if (A == D) - x += 1; - else if (B == D) - y += 1; - if (x <= 1) - r += 1; - if (y <= 1) - r -= 1; - return r; -} - -FUNCINLINE static ATTRINLINE int GetResult2 (Uint32 A, Uint32 B, Uint32 C, Uint32 D, Uint32 E) -{ - int x = 0; - int y = 0; - int r = 0; - (void)E; - - if (A == C) - x += 1; - else if (B == C) - y += 1; - if (A == D) - x += 1; - else if (B == D) - y += 1; - if (x <= 1) - r -= 1; - if (y <= 1) - r += 1; - return r; -} - -FUNCINLINE static ATTRINLINE int GetResult (Uint32 A, Uint32 B, Uint32 C, Uint32 D) -{ - int x = 0; - int y = 0; - int r = 0; - - if (A == C) - x += 1; - else if (B == C) - y += 1; - if (A == D) - x += 1; - else if (B == D) - y += 1; - if (x <= 1) - r += 1; - if (y <= 1) - r -= 1; - return r; -} - -FUNCINLINE static ATTRINLINE Uint32 INTERPOLATE (Uint32 A, Uint32 B) -{ - if (A != B) - { - return (((A & colorMask) >> 1) + ((B & colorMask) >> 1) + - (A & B & lowPixelMask)); - } - else - return A; -} - -FUNCINLINE static ATTRINLINE Uint32 Q_INTERPOLATE (Uint32 A, Uint32 B, Uint32 C, Uint32 D) -{ - register Uint32 x = ((A & qcolorMask) >> 2) + - ((B & qcolorMask) >> 2) + - ((C & qcolorMask) >> 2) + ((D & qcolorMask) >> 2); - register Uint32 y = (A & qlowpixelMask) + - (B & qlowpixelMask) + (C & qlowpixelMask) + (D & qlowpixelMask); - y = (y >> 2) & qlowpixelMask; - return x + y; -} - -#define BLUE_MASK565 0x001F001F -#define RED_MASK565 0xF800F800 -#define GREEN_MASK565 0x07E007E0 - -#define BLUE_MASK555 0x001F001F -#define RED_MASK555 0x7C007C00 -#define GREEN_MASK555 0x03E003E0 - -void filter_super2xsai(Uint8 *srcPtr, Uint32 srcPitch, - Uint8 *dstPtr, Uint32 dstPitch, - int width, int height) -{ - Uint16 *bP; - Uint8 *dP; - Uint32 inc_bP; - Uint32 Nextline = srcPitch >> 1; - - Uint32 finish; - inc_bP = 1; - - for (; height; height--) - { - bP = (Uint16 *) srcPtr; - dP = (Uint8 *) dstPtr; - - for (finish = width; finish; finish -= inc_bP) - { - Uint32 color4, color5, color6; - Uint32 color1, color2, color3; - Uint32 colorA0, colorA1, colorA2, colorA3, - colorB0, colorB1, colorB2, colorB3, colorS1, colorS2; - Uint32 product1a, product1b, product2a, product2b; - -//--------------------------------------- B1 B2 -// 4 5 6 S2 -// 1 2 3 S1 -// A1 A2 - - colorB0 = *(bP - Nextline - 1); - colorB1 = *(bP - Nextline); - colorB2 = *(bP - Nextline + 1); - colorB3 = *(bP - Nextline + 2); - - color4 = *(bP - 1); - color5 = *(bP); - color6 = *(bP + 1); - colorS2 = *(bP + 2); - - color1 = *(bP + Nextline - 1); - color2 = *(bP + Nextline); - color3 = *(bP + Nextline + 1); - colorS1 = *(bP + Nextline + 2); - - colorA0 = *(bP + Nextline + Nextline - 1); - colorA1 = *(bP + Nextline + Nextline); - colorA2 = *(bP + Nextline + Nextline + 1); - colorA3 = *(bP + Nextline + Nextline + 2); - -//-------------------------------------- - if (color2 == color6 && color5 != color3) - { - product2b = product1b = color2; - } - else if (color5 == color3 && color2 != color6) - { - product2b = product1b = color5; - } - else if (color5 == color3 && color2 == color6) - { - register int r = 0; - - r += GetResult (color6, color5, color1, colorA1); - r += GetResult (color6, color5, color4, colorB1); - r += GetResult (color6, color5, colorA2, colorS1); - r += GetResult (color6, color5, colorB2, colorS2); - - if (r > 0) - product2b = product1b = color6; - else if (r < 0) - product2b = product1b = color5; - else - { - product2b = product1b = INTERPOLATE (color5, color6); - } - } - else - { - if (color6 == color3 && color3 == colorA1 - && color2 != colorA2 && color3 != colorA0) - product2b = - Q_INTERPOLATE (color3, color3, color3, color2); - else if (color5 == color2 && color2 == colorA2 - && colorA1 != color3 && color2 != colorA3) - product2b = - Q_INTERPOLATE (color2, color2, color2, color3); - else - product2b = INTERPOLATE (color2, color3); - - if (color6 == color3 && color6 == colorB1 - && color5 != colorB2 && color6 != colorB0) - product1b = - Q_INTERPOLATE (color6, color6, color6, color5); - else if (color5 == color2 && color5 == colorB2 - && colorB1 != color6 && color5 != colorB3) - product1b = - Q_INTERPOLATE (color6, color5, color5, color5); - else - product1b = INTERPOLATE (color5, color6); - } - - if (color5 == color3 && color2 != color6 && color4 == color5 - && color5 != colorA2) - product2a = INTERPOLATE (color2, color5); - else - if (color5 == color1 && color6 == color5 - && color4 != color2 && color5 != colorA0) - product2a = INTERPOLATE (color2, color5); - else - product2a = color2; - - if (color2 == color6 && color5 != color3 && color1 == color2 - && color2 != colorB2) - product1a = INTERPOLATE (color2, color5); - else - if (color4 == color2 && color3 == color2 - && color1 != color5 && color2 != colorB0) - product1a = INTERPOLATE (color2, color5); - else - product1a = color5; - -#ifdef LSB_FIRST - product1a = product1a | (product1b << 16); - product2a = product2a | (product2b << 16); -#else - product1a = (product1a << 16) | product1b; - product2a = (product2a << 16) | product2b; -#endif - *((Uint32 *) dP) = product1a; - *((Uint32 *) (dP + dstPitch)) = product2a; - - bP += inc_bP; - dP += sizeof (Uint32); - } // end of for ( finish= width etc..) - - srcPtr += srcPitch; - dstPtr += dstPitch * 2; - } // endof: for (; height; height--) -} - -void filter_supereagle(Uint8 *srcPtr, Uint32 srcPitch, /* Uint8 *deltaPtr, */ - Uint8 *dstPtr, Uint32 dstPitch, int width, int height) -{ - Uint8 *dP; - Uint16 *bP; - Uint32 inc_bP; - - - - Uint32 finish; - Uint32 Nextline = srcPitch >> 1; - - inc_bP = 1; - - for (; height ; height--) - { - bP = (Uint16 *) srcPtr; - dP = dstPtr; - for (finish = width; finish; finish -= inc_bP) - { - Uint32 color4, color5, color6; - Uint32 color1, color2, color3; - Uint32 colorA1, colorA2, colorB1, colorB2, colorS1, colorS2; - Uint32 product1a, product1b, product2a, product2b; - colorB1 = *(bP - Nextline); - colorB2 = *(bP - Nextline + 1); - - color4 = *(bP - 1); - color5 = *(bP); - color6 = *(bP + 1); - colorS2 = *(bP + 2); - - color1 = *(bP + Nextline - 1); - color2 = *(bP + Nextline); - color3 = *(bP + Nextline + 1); - colorS1 = *(bP + Nextline + 2); - - colorA1 = *(bP + Nextline + Nextline); - colorA2 = *(bP + Nextline + Nextline + 1); - // -------------------------------------- - if (color2 == color6 && color5 != color3) - { - product1b = product2a = color2; - if ((color1 == color2) || (color6 == colorB2)) - { - product1a = INTERPOLATE (color2, color5); - product1a = INTERPOLATE (color2, product1a); -// product1a = color2; - } - else - { - product1a = INTERPOLATE (color5, color6); - } - - if ((color6 == colorS2) || (color2 == colorA1)) - { - product2b = INTERPOLATE (color2, color3); - product2b = INTERPOLATE (color2, product2b); -// product2b = color2; - } - else - { - product2b = INTERPOLATE (color2, color3); - } - } - else if (color5 == color3 && color2 != color6) - { - product2b = product1a = color5; - - if ((colorB1 == color5) || (color3 == colorS1)) - { - product1b = INTERPOLATE (color5, color6); - product1b = INTERPOLATE (color5, product1b); -// product1b = color5; - } - else - { - product1b = INTERPOLATE (color5, color6); - } - - if ((color3 == colorA2) || (color4 == color5)) - { - product2a = INTERPOLATE (color5, color2); - product2a = INTERPOLATE (color5, product2a); -// product2a = color5; - } - else - { - product2a = INTERPOLATE (color2, color3); - } - - } - else if (color5 == color3 && color2 == color6) - { - register int r = 0; - - r += GetResult (color6, color5, color1, colorA1); - r += GetResult (color6, color5, color4, colorB1); - r += GetResult (color6, color5, colorA2, colorS1); - r += GetResult (color6, color5, colorB2, colorS2); - - if (r > 0) - { - product1b = product2a = color2; - product1a = product2b = INTERPOLATE (color5, color6); - } - else if (r < 0) - { - product2b = product1a = color5; - product1b = product2a = INTERPOLATE (color5, color6); - } - else - { - product2b = product1a = color5; - product1b = product2a = color2; - } - } - else - { - product2b = product1a = INTERPOLATE (color2, color6); - product2b = - Q_INTERPOLATE (color3, color3, color3, product2b); - product1a = - Q_INTERPOLATE (color5, color5, color5, product1a); - - product2a = product1b = INTERPOLATE (color5, color3); - product2a = - Q_INTERPOLATE (color2, color2, color2, product2a); - product1b = - Q_INTERPOLATE (color6, color6, color6, product1b); - -// product1a = color5; -// product1b = color6; -// product2a = color2; -// product2b = color3; - } -#ifdef LSB_FIRST - product1a = product1a | (product1b << 16); - product2a = product2a | (product2b << 16); -#else - product1a = (product1a << 16) | product1b; - product2a = (product2a << 16) | product2b; -#endif - - *((Uint32 *) dP) = product1a; - *((Uint32 *) (dP + dstPitch)) = product2a; - - bP += inc_bP; - dP += sizeof (Uint32); - } // end of for ( finish= width etc..) - srcPtr += srcPitch; - dstPtr += dstPitch * 2; - } // endof: for (height; height; height--) -} - -void filter_2xsai (Uint8 *srcPtr, Uint32 srcPitch, - Uint8 *dstPtr, Uint32 dstPitch, int width, int height) -{ - Uint8 *dP; - Uint16 *bP; - Uint32 inc_bP; - - - Uint32 finish; - Uint32 Nextline = srcPitch >> 1; - inc_bP = 1; - - - for (; height; height--) - { - bP = (Uint16 *) srcPtr; - dP = dstPtr; - - for (finish = width; finish; finish -= inc_bP) - { - - register Uint32 colorA, colorB; - Uint32 colorC, colorD, - colorE, colorF, colorG, colorH, - colorI, colorJ, colorK, colorL, - - colorM, colorN, colorO, colorP; - Uint32 product, product1, product2; - -//--------------------------------------- -// Map of the pixels: I|E F|J -// G|A B|K -// H|C D|L -// M|N O|P - colorI = *(bP - Nextline - 1); - colorE = *(bP - Nextline); - colorF = *(bP - Nextline + 1); - colorJ = *(bP - Nextline + 2); - - colorG = *(bP - 1); - colorA = *(bP); - colorB = *(bP + 1); - colorK = *(bP + 2); - - colorH = *(bP + Nextline - 1); - colorC = *(bP + Nextline); - colorD = *(bP + Nextline + 1); - colorL = *(bP + Nextline + 2); - - colorM = *(bP + Nextline + Nextline - 1); - colorN = *(bP + Nextline + Nextline); - colorO = *(bP + Nextline + Nextline + 1); - colorP = *(bP + Nextline + Nextline + 2); - - if ((colorA == colorD) && (colorB != colorC)) - { - if (((colorA == colorE) && (colorB == colorL)) || - ((colorA == colorC) && (colorA == colorF) - && (colorB != colorE) && (colorB == colorJ))) - { - product = colorA; - } - else - { - product = INTERPOLATE (colorA, colorB); - } - - if (((colorA == colorG) && (colorC == colorO)) || - ((colorA == colorB) && (colorA == colorH) - && (colorG != colorC) && (colorC == colorM))) - { - product1 = colorA; - } - else - { - product1 = INTERPOLATE (colorA, colorC); - } - product2 = colorA; - } - else if ((colorB == colorC) && (colorA != colorD)) - { - if (((colorB == colorF) && (colorA == colorH)) || - ((colorB == colorE) && (colorB == colorD) - && (colorA != colorF) && (colorA == colorI))) - { - product = colorB; - } - else - { - product = INTERPOLATE (colorA, colorB); - } - - if (((colorC == colorH) && (colorA == colorF)) || - ((colorC == colorG) && (colorC == colorD) - && (colorA != colorH) && (colorA == colorI))) - { - product1 = colorC; - } - else - { - product1 = INTERPOLATE (colorA, colorC); - } - product2 = colorB; - } - else if ((colorA == colorD) && (colorB == colorC)) - { - if (colorA == colorB) - { - product = colorA; - product1 = colorA; - product2 = colorA; - } - else - { - register int r = 0; - - product1 = INTERPOLATE (colorA, colorC); - product = INTERPOLATE (colorA, colorB); - - r += - GetResult1 (colorA, colorB, colorG, colorE, - colorI); - r += - GetResult2 (colorB, colorA, colorK, colorF, - colorJ); - r += - GetResult2 (colorB, colorA, colorH, colorN, - colorM); - r += - GetResult1 (colorA, colorB, colorL, colorO, - colorP); - - if (r > 0) - product2 = colorA; - else if (r < 0) - product2 = colorB; - else - { - product2 = - Q_INTERPOLATE (colorA, colorB, colorC, - colorD); - } - } - } - else - { - product2 = Q_INTERPOLATE (colorA, colorB, colorC, colorD); - - if ((colorA == colorC) && (colorA == colorF) - && (colorB != colorE) && (colorB == colorJ)) - { - product = colorA; - } - else - if ((colorB == colorE) && (colorB == colorD) - && (colorA != colorF) && (colorA == colorI)) - { - product = colorB; - } - else - { - product = INTERPOLATE (colorA, colorB); - } - - if ((colorA == colorB) && (colorA == colorH) - && (colorG != colorC) && (colorC == colorM)) - { - product1 = colorA; - } - else - if ((colorC == colorG) && (colorC == colorD) - && (colorA != colorH) && (colorA == colorI)) - { - product1 = colorC; - } - else - { - product1 = INTERPOLATE (colorA, colorC); - } - } -#ifdef LSB_FIRST - product = colorA | (product << 16); - product1 = product1 | (product2 << 16); -#else - product = (colorA << 16) | product; - product1 = (product1 << 16) | product2; -#endif - *((Uint32 *) dP) = product; - *((Uint32 *) (dP + dstPitch)) = product1; - - bP += inc_bP; - dP += sizeof (Uint32); - } // end of for ( finish= width etc..) - - srcPtr += srcPitch; - dstPtr += dstPitch * 2; - } // endof: for (height; height; height--) -} - -#if 0 -static inline Uint32 Bilinear(Uint32 A, Uint32 B, Uint32 x) -{ - unsigned long areaA, areaB; - unsigned long result; - - if (A == B) - return A; - - areaB = (x >> 11) & 0x1f; // reduce 16 bit fraction to 5 bits - areaA = 0x20 - areaB; - - A = (A & redblueMask) | ((A & greenMask) << 16); - B = (B & redblueMask) | ((B & greenMask) << 16); - - result = ((areaA * A) + (areaB * B)) >> 5; - - return (result & redblueMask) | ((result >> 16) & greenMask); - -} - -static inline Uint32 Bilinear4 (Uint32 A, Uint32 B, Uint32 C, Uint32 D, Uint32 x, - Uint32 y) -{ - unsigned long areaA, areaB, areaC, areaD; - unsigned long result, xy; - - x = (x >> 11) & 0x1f; - y = (y >> 11) & 0x1f; - xy = (x * y) >> 5; - - A = (A & redblueMask) | ((A & greenMask) << 16); - B = (B & redblueMask) | ((B & greenMask) << 16); - C = (C & redblueMask) | ((C & greenMask) << 16); - D = (D & redblueMask) | ((D & greenMask) << 16); - - areaA = 0x20 + xy - x - y; - areaB = x - xy; - areaC = y - xy; - areaD = xy; - - result = ((areaA * A) + (areaB * B) + (areaC * C) + (areaD * D)) >> 5; - - return (result & redblueMask) | ((result >> 16) & greenMask); -} -#endif - - -void filter_advmame2x(Uint8 *srcPtr, Uint32 srcPitch, - Uint8 *dstPtr, Uint32 dstPitch, - int width, int height) -{ - unsigned int nextlineSrc = srcPitch / sizeof(short); - short *p = (short *)srcPtr; - - unsigned int nextlineDst = dstPitch / sizeof(short); - short *q = (short *)dstPtr; - - while(height--) { - int i = 0, j = 0; - for(i = 0; i < width; ++i, j += 2) { - short B = *(p + i - nextlineSrc); - short D = *(p + i - 1); - short E = *(p + i); - short F = *(p + i + 1); - short H = *(p + i + nextlineSrc); - - *(q + j) = (short)(D == B && B != F && D != H ? D : E); - *(q + j + 1) = (short)(B == F && B != D && F != H ? F : E); - *(q + j + nextlineDst) = (short)(D == H && D != B && H != F ? D : E); - *(q + j + nextlineDst + 1) = (short)(H == F && D != H && B != F ? F : E); - } - p += nextlineSrc; - q += nextlineDst << 1; - } -} - - -void filter_tv2x(Uint8 *srcPtr, Uint32 srcPitch, - Uint8 *dstPtr, Uint32 dstPitch, - int width, int height) -{ - unsigned int nextlineSrc = srcPitch / sizeof(Uint16); - Uint16 *p = (Uint16 *)srcPtr; - - unsigned int nextlineDst = dstPitch / sizeof(Uint16); - Uint16 *q = (Uint16 *)dstPtr; - - while(height--) { - int i = 0, j = 0; - for(; i < width; ++i, j += 2) { - Uint16 p1 = *(p + i); - Uint32 pi; - - pi = (((p1 & redblueMask) * 7) >> 3) & redblueMask; - pi |= (((p1 & greenMask) * 7) >> 3) & greenMask; - - *(q + j) = (Uint16)p1; - *(q + j + 1) = (Uint16)p1; - *(q + j + nextlineDst) = (Uint16)pi; - *(q + j + nextlineDst + 1) = (Uint16)pi; - } - p += nextlineSrc; - q += nextlineDst << 1; - } -} - -void filter_normal2x(Uint8 *srcPtr, Uint32 srcPitch, - Uint8 *dstPtr, Uint32 dstPitch, - int width, int height) -{ - unsigned int nextlineSrc = srcPitch / sizeof(Uint16); - Uint16 *p = (Uint16 *)srcPtr; - - unsigned int nextlineDst = dstPitch / sizeof(Uint16); - Uint16 *q = (Uint16 *)dstPtr; - - while(height--) { - int i = 0, j = 0; - for(; i < width; ++i, j += 2) { - Uint16 color = *(p + i); - - *(q + j) = color; - *(q + j + 1) = color; - *(q + j + nextlineDst) = color; - *(q + j + nextlineDst + 1) = color; - } - p += nextlineSrc; - q += nextlineDst << 1; - } -} - -void filter_scan50(Uint8 *srcPtr, Uint32 srcPitch, - Uint8 *dstPtr, Uint32 dstPitch, - int width, int height) -{ - - unsigned int nextlineSrc = srcPitch / sizeof(Uint16); - Uint16 *p = (Uint16 *)srcPtr; - - unsigned int nextlineDst = dstPitch / sizeof(Uint16); - Uint16 *q = (Uint16 *)dstPtr; - - while(height--) { - int i = 0, j = 0; - for(; i < width; ++i, j += 2) { - Uint16 p1 = *(p + i); - Uint16 p2 = *(p + i + nextlineSrc); - // 0111 1011 1110 1111 == 0x7BEF - Uint16 pm = (Uint16)(((p1 + p2) >> 2) & 0x7BEF); - - *(q + j) = p1; - *(q + j + 1) = p1; - *(q + j + nextlineDst) = pm; - *(q + j + nextlineDst + 1) = pm; - - } - p += nextlineSrc; - q += nextlineDst << 1; - } -} - - -void filter_scan100(Uint8 *srcPtr, Uint32 srcPitch, - Uint8 *dstPtr, Uint32 dstPitch, - int width, int height) -{ - unsigned int nextlineSrc = srcPitch / sizeof(Uint16); - Uint16 *p = (Uint16 *)srcPtr; - - unsigned int nextlineDst = dstPitch / sizeof(Uint16); - Uint16 *q = (Uint16 *)dstPtr; - - while(height--) { - int i = 0, j = 0; - for(; i < width; ++i, j += 2) { - *(q + j) = *(q + j + 1) = *(p + i); - } - p += nextlineSrc; - q += nextlineDst << 1; - } -} - - -FUNCINLINE static ATTRINLINE Uint16 DOT_16(Uint16 c, int j, int i) { - static const Uint16 dotmatrix[16] = { - 0x01E0, 0x0007, 0x3800, 0x0000, - 0x39E7, 0x0000, 0x39E7, 0x0000, - 0x3800, 0x0000, 0x01E0, 0x0007, - 0x39E7, 0x0000, 0x39E7, 0x0000 - }; - return (Uint16)(c - ((c >> 2) & *(dotmatrix + ((j & 3) << 2) + (i & 3)))); -} - -void filter_dotmatrix(Uint8 *srcPtr, Uint32 srcPitch, - Uint8 *dstPtr, Uint32 dstPitch, - int width, int height) -{ - unsigned int nextlineSrc = srcPitch / sizeof(Uint16); - Uint16 *p = (Uint16 *)srcPtr; - - unsigned int nextlineDst = dstPitch / sizeof(Uint16); - Uint16 *q = (Uint16 *)dstPtr; - - int i, ii, j, jj; - for(j = 0, jj = 0; j < height; ++j, jj += 2) { - for(i = 0, ii = 0; i < width; ++i, ii += 2) { - Uint16 c = *(p + i); - *(q + ii) = DOT_16(c, jj, ii); - *(q + ii + 1) = DOT_16(c, jj, ii + 1); - *(q + ii + nextlineDst) = DOT_16(c, jj + 1, ii); - *(q + ii + nextlineDst + 1) = DOT_16(c, jj + 1, ii + 1); - } - p += nextlineSrc; - q += nextlineDst << 1; - } -} - - -void filter_bilinear(Uint8 *srcPtr, Uint32 srcPitch, - Uint8 *dstPtr, Uint32 dstPitch, - int width, int height) -{ - unsigned int nextlineSrc = srcPitch / sizeof(Uint16); - Uint16 *p = (Uint16 *)srcPtr; - unsigned int nextlineDst = dstPitch / sizeof(Uint16); - Uint16 *q = (Uint16 *)dstPtr; - - while(height--) { - int i, ii; - for(i = 0, ii = 0; i < width; ++i, ii += 2) { - Uint16 A = *(p + i); - Uint16 B = *(p + i + 1); - Uint16 C = *(p + i + nextlineSrc); - Uint16 D = *(p + i + nextlineSrc + 1); - *(q + ii) = A; - *(q + ii + 1) = (Uint16)INTERPOLATE(A, B); - *(q + ii + nextlineDst) = (Uint16)INTERPOLATE(A, C); - *(q + ii + nextlineDst + 1) = (Uint16)Q_INTERPOLATE(A, B, C, D); - } - p += nextlineSrc; - q += nextlineDst << 1; - } -} - - -// NEED_OPTIMIZE -static void MULT(Uint16 c, float* r, float* g, float* b, float alpha) { - *r += alpha * ((c & RED_MASK565 ) >> 11); - *g += alpha * ((c & GREEN_MASK565) >> 5); - *b += alpha * ((c & BLUE_MASK565 ) >> 0); -} - -static Uint16 MAKE_RGB565(float r, float g, float b) { - return (Uint16) - (((((Uint8)r) << 11) & RED_MASK565 ) | - ((((Uint8)g) << 5) & GREEN_MASK565) | - ((((Uint8)b) << 0) & BLUE_MASK565 )); -} - -FUNCINLINE static ATTRINLINE float CUBIC_WEIGHT(float x) { - // P(x) = { x, x>0 | 0, x<=0 } - // P(x + 2) ^ 3 - 4 * P(x + 1) ^ 3 + 6 * P(x) ^ 3 - 4 * P(x - 1) ^ 3 - double r = 0.; - if(x + 2 > 0) r += pow(x + 2, 3); - if(x + 1 > 0) r += -4 * pow(x + 1, 3); - if(x > 0) r += 6 * pow(x , 3); - if(x - 1 > 0) r += -4 * pow(x - 1, 3); - return (float)r / 6; -} - -void filter_bicubic(Uint8 *srcPtr, Uint32 srcPitch, - Uint8 *dstPtr, Uint32 dstPitch, - int width, int height) -{ - unsigned int nextlineSrc = srcPitch / sizeof(Uint16); - Uint16 *p = (Uint16 *)srcPtr; - unsigned int nextlineDst = dstPitch / sizeof(Uint16); - Uint16 *q = (Uint16 *)dstPtr; - int dx = width << 1, dy = height << 1; - float fsx = (float)width / dx; - float fsy = (float)height / dy; - float v = 0.0f; - int j = 0; - for(; j < dy; ++j) { - float u = 0.0f; - int iv = (int)v; - float decy = v - iv; - int i = 0; - for(; i < dx; ++i) { - int iu = (int)u; - float decx = u - iu; - float r, g, b; - int m; - r = g = b = 0.; - for(m = -1; m <= 2; ++m) { - float r1 = CUBIC_WEIGHT(decy - m); - int n; - for(n = -1; n <= 2; ++n) { - float r2 = CUBIC_WEIGHT(n - decx); - Uint16* pIn = p + (iu + n) + (iv + m) * nextlineSrc; - MULT(*pIn, &r, &g, &b, r1 * r2); - } - } - *(q + i) = MAKE_RGB565(r, g, b); - u += fsx; - } - q += nextlineDst; - v += fsy; - } -} diff --git a/src/sdl12/filter/filters.h b/src/sdl12/filter/filters.h deleted file mode 100644 index c4a84b4c9..000000000 --- a/src/sdl12/filter/filters.h +++ /dev/null @@ -1,212 +0,0 @@ -#ifndef __FILTERS_H__ -#define __FILTERS_H__ - -#ifdef _MSC_VER -#pragma warning(disable : 4514 4214 4244) -#endif - -#include "SDL.h" - -#ifdef _MSC_VER -#pragma warning(default : 4214 4244) -#endif - -typedef enum { - FILTER_2XSAI = 0, - FILTER_SUPER2XSAI, - FILTER_SUPEREAGLE, - FILTER_ADVMAME2X , - FILTER_TV2X , - FILTER_NORMAL2X , - FILTER_BILINEAR , - FILTER_DOTMATRIX , - FILTER_NUM , -} t_filter; - -typedef void (*filter_2)(Uint8 *srcPtr, Uint32 srcPitch, Uint8 *dstPtr, Uint32 dstPitch, int width, int height); -SDL_Surface *filter_2x(SDL_Surface *src, SDL_Rect *srcclp, filter_2 filter); -SDL_Surface *filter_2xe(SDL_Surface *src, SDL_Rect *srcclp, filter_2 filter,Uint8 R, Uint8 G, Uint8 B); -//Alam_GBC: Header file based on sms_sdl's filter.h -//Note: need 3 lines at the bottom and top? - -//int filter_init_2xsai(SDL_PixelFormat *BitFormat); -#define FILTER(src,dst) (Uint8 *)(src->pixels)+src->pitch*3, (Uint32)src->pitch, (Uint8 *)dst->pixels, (Uint32)dst->pitch, src->w, src->h-6 -#define SDLFILTER(src,dst) (Uint8 *)src->pixels, (Uint32)src->pitch, (Uint8 *)dst->pixels, (Uint32)dst->pitch, src->w, src->h -int filter_init_2xsai(SDL_PixelFormat *BitFormat); //unless? -void filter_scan50(Uint8 *srcPtr, Uint32 srcPitch, Uint8 *dstPtr, Uint32 dstPitch, int width, int height); -void filter_scan100(Uint8 *srcPtr, Uint32 srcPitch, Uint8 *dstPtr, Uint32 dstPitch, int width, int height); - -void filter_2xsai(Uint8 *srcPtr, Uint32 srcPitch, Uint8 *dstPtr, Uint32 dstPitch, int width, int height); -void filter_super2xsai(Uint8 *srcPtr, Uint32 srcPitch, Uint8 *dstPtr, Uint32 dstPitch, int width, int height); -void filter_supereagle(Uint8 *srcPtr, Uint32 srcPitch, Uint8 *dstPtr, Uint32 dstPitch, int width, int height); -void filter_advmame2x(Uint8 *srcPtr, Uint32 srcPitch, Uint8 *dstPtr, Uint32 dstPitch, int width, int height); -void filter_tv2x(Uint8 *srcPtr, Uint32 srcPitch, Uint8 *dstPtr, Uint32 dstPitch, int width, int height); -void filter_normal2x(Uint8 *srcPtr, Uint32 srcPitch, Uint8 *dstPtr, Uint32 dstPitch, int width, int height); -void filter_bilinear(Uint8 *srcPtr, Uint32 srcPitch, Uint8 *dstPtr, Uint32 dstPitch, int width, int height); -void filter_dotmatrix(Uint8 *srcPtr, Uint32 srcPitch, Uint8 *dstPtr, Uint32 dstPitch, int width, int height); -void filter_bicubic(Uint8 *srcPtr, Uint32 srcPitch, Uint8 *dstPtr, Uint32 dstPitch, int width, int height); -void lq2x16(Uint8 *srcPtr, Uint32 srcPitch, Uint8 *dstPtr, Uint32 dstPitch, int width, int height); -void hq2x16(Uint8 *srcPtr, Uint32 srcPitch, Uint8 *dstPtr, Uint32 dstPitch, int width, int height); - -void filter_hq2x(Uint8 *srcPtr, Uint32 srcPitch, Uint8 *dstPtr, Uint32 dstPitch, int width, int height); -void lq2x32(Uint8 *srcPtr, Uint32 srcPitch, Uint8 *dstPtr, Uint32 dstPitch, int width, int height); -void hq2x32(Uint8 *srcPtr, Uint32 srcPitch, Uint8 *dstPtr, Uint32 dstPitch, int width, int height); - -#ifdef FILTERS -typedef struct filter_s { filter_2 filter; int bpp; } filter_t; -#define NUMFILTERS 13 -static filter_t filtermode[NUMFILTERS+1] = { - {NULL , 0}, //None - {filter_normal2x , 16}, //2xNormal - {filter_advmame2x , 16}, //AdvMAME2x - {filter_tv2x , 16}, //TV2x - {filter_bilinear , 16}, //Bilinear - {filter_dotmatrix , 16}, //DotMatrix - {lq2x16 , 16}, //16LQ2x - {hq2x16 , 16}, //16HQ2x - {lq2x32 , 32}, //32LQ2x - {hq2x32 , 32}, //32HQ2x -// {filter_bicubic , 16}, //Slow Bicubic - // BAD - {filter_2xsai , 16}, //2xSAI - {filter_super2xsai, 16}, //Super2xSAI - {filter_supereagle, 16}, //SuperEagle -}; -CV_PossibleValue_t CV_Filters[] = {{ 0, "None"}, { 1, "2xNormal"}, - { 2, "AdvMAME2x"}, { 3, "TV2x"}, { 4, "Bilinear"} , { 5, "DotMatrix"}, - { 6, "16LQ2x"}, { 7, "16HQ2x"}, { 8, "32LQ2x"} , { 9, "32HQ2x"}, - {10, "2xSAI"}, {11, "Super2xSAI"}, {12, "SuperEagle"}, {0, NULL},}; -static void Filterchange(void); -consvar_t cv_filter = {"filter", "None", CV_CALL|CV_NOINIT, CV_Filters,Filterchange,0,NULL,NULL,0,0,NULL}; -static filter_2 blitfilter = NULL; -static SDL_Surface *preSurface = NULL; -static SDL_Surface *f2xSurface = NULL; - -static void Filterchange(void) -{ - if(blitfilter) // only filtering? - { - int i=0; - for(;i < NUMFILTERS; i++)//find old filter - { - if(filtermode[i].filter == blitfilter) //Found it - break; //Stop - } - if(i < NUMFILTERS && filtermode[i].bpp == filtermode[cv_filter.value].bpp) //Easy to swap? - blitfilter = filtermode[cv_filter.value].filter; // Swap with new filter - } -} - -FUNCINLINE static ATTRINLINE void FilterBlit(SDL_Surface *froSurface) -{ - if(froSurface && blitfilter && preSurface && f2xSurface) - { - SDL_Rect dstclp = {0,3,0,0}; - int lockedpre = 0, lockedf2x = 0, blitpre = 0; - blitpre = SDL_BlitSurface(froSurface,NULL,preSurface,&dstclp); - if(SDL_MUSTLOCK(preSurface)) lockedpre = SDL_LockSurface(preSurface); - if(SDL_MUSTLOCK(f2xSurface)) lockedf2x = SDL_LockSurface(f2xSurface); - if(lockedpre == 0 && preSurface->pixels && lockedf2x == 0 && f2xSurface->pixels && blitpre == 0) - { - blitfilter(FILTER(preSurface,f2xSurface)); - if(SDL_MUSTLOCK(preSurface)) SDL_UnlockSurface(preSurface); - if(SDL_MUSTLOCK(f2xSurface)) SDL_UnlockSurface(f2xSurface); - } - } - else - { - blitfilter = NULL; - if(preSurface) SDL_FreeSurface(preSurface); - preSurface = NULL; - if(f2xSurface) SDL_FreeSurface(f2xSurface); - f2xSurface = NULL; - } -} - -FUNCINLINE static ATTRINLINE int Setupf2x(int width, int height, int bpp) -{ - blitfilter = NULL; - if(preSurface) SDL_FreeSurface(preSurface); - preSurface = NULL; - if(f2xSurface) SDL_FreeSurface(f2xSurface); - f2xSurface = NULL; - if( !(width%2) && !(height%2) && width >= BASEVIDWIDTH*2 && height >= BASEVIDHEIGHT*2 && cv_filter.value - && cv_filter.value <= NUMFILTERS && filtermode[cv_filter.value].filter && filtermode[cv_filter.value].bpp) - { - int hwidth = width/2 + 6; - int heighth = height/2 + 6; - int hbpp = filtermode[cv_filter.value].bpp; - switch(hbpp) - { - case 8: - preSurface = SDL_CreateRGBSurface(SDL_SWSURFACE,hwidth,heighth, 8,0x00000000,0x00000000,0x00000000,0x00); - f2xSurface = SDL_CreateRGBSurface(SDL_HWSURFACE, width,height , 8,0x00000000,0x00000000,0x00000000,0x00); - case 15: - preSurface = SDL_CreateRGBSurface(SDL_SWSURFACE,hwidth,heighth,15,0x00007C00,0x000003E0,0x0000001F,0x00); - f2xSurface = SDL_CreateRGBSurface(SDL_HWSURFACE, width,height ,15,0x00007C00,0x000003E0,0x0000001F,0x00); - break; - case 16: - preSurface = SDL_CreateRGBSurface(SDL_SWSURFACE,hwidth,heighth,16,0x0000F800,0x000007E0,0x0000001F,0x00); - f2xSurface = SDL_CreateRGBSurface(SDL_HWSURFACE, width,height ,16,0x0000F800,0x000007E0,0x0000001F,0x00); - break; - case 24: - preSurface = SDL_CreateRGBSurface(SDL_SWSURFACE,hwidth,heighth,24,0x00FF0000,0x0000FF00,0x000000FF,0x00); - f2xSurface = SDL_CreateRGBSurface(SDL_HWSURFACE, width,height ,24,0x00FF0000,0x0000FF00,0x000000FF,0x00); - break; - case 32: - preSurface = SDL_CreateRGBSurface(SDL_SWSURFACE,hwidth,heighth,32,0x00FF0000,0x0000FF00,0x000000FF,0x00); - f2xSurface = SDL_CreateRGBSurface(SDL_HWSURFACE, width,height ,32,0x00FF0000,0x0000FF00,0x000000FF,0x00); - break; - default: - //I_Error("Filter help"); - break; - } - if(preSurface && f2xSurface) - { - blitfilter = filtermode[cv_filter.value].filter; - if(bpp < hbpp) bpp = hbpp; - } - else - { - if(preSurface) SDL_FreeSurface(preSurface); - preSurface = NULL; - if(f2xSurface) SDL_FreeSurface(f2xSurface); - f2xSurface = NULL; - } - } - return bpp; -} -#else - -#ifdef __GNUC__ // __attribute__ ((X)) -#if (__GNUC__ > 3) || (__GNUC__ == 3 && __GNUC_MINOR__ >= 1) -#define FUNCINLINE __attribute__((always_inline)) -#endif -#define FUNCNOINLINE __attribute__((noinline)) -#elif defined(_MSC_VER) -#define inline __inline -#define ATTRNORETURN __declspec(noreturn) -#define ATTRINLINE __forceinline -#if _MSC_VER > 1200 -#define ATTRNOINLINE __declspec(noinline) -#endif -#endif - - - -#ifndef FUNCINLINE -#define FUNCINLINE -#endif -#ifndef FUNCNOINLINE -#define FUNCNOINLINE -#endif -#ifndef ATTRINLINE -#define ATTRINLINE inline -#endif -#ifndef ATTRNOINLINE -#define ATTRNOINLINE -#endif - -#endif - -#endif diff --git a/src/sdl12/filter/hq2x.c b/src/sdl12/filter/hq2x.c deleted file mode 100644 index acdbcb168..000000000 --- a/src/sdl12/filter/hq2x.c +++ /dev/null @@ -1,3125 +0,0 @@ -//hq2x filter demo program -//---------------------------------------------------------- -//Copyright (C) 2003 MaxSt ( maxst@hiend3d.com ) - -//This program is free software; you can redistribute it and/or -//modify it under the terms of the GNU Lesser General Public -//License as published by the Free Software Foundation; either -//version 2.1 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 -//Lesser General Public License for more details. -// -//You should have received a copy of the GNU Lesser General Public -//License along with this program; if not, write to the Free Software -//Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - -#include "filters.h" -#include -#ifdef __GNUC__ -#include -#endif - - -#if (defined(__GNUC__) && defined(__i386__)) || (defined(_MSC_VER) && defined(_X86_)) -#define HQ2XASM -#endif - -#ifdef _MSC_VER -//#define HQ2XMMXASM -#endif - -static int LUT16to32[65536]; -static int RGBtoYUV[65536]; -#ifdef HQ2XMMXASM -#include "SDL_cpuinfo.h" -static SDL_bool hasMMX = 0; -const Sint64 reg_blank = 0; -const Sint64 const3 = 0x0000000300030003; -const Sint64 const5 = 0x0000000500050005; -const Sint64 const6 = 0x0000000600060006; -const Sint64 const14 = 0x0000000E000E000E; -const Sint64 tr3eshold = 0x0000000000300706; -#endif -static int YUV1, YUV2; -const int Ymask = 0x00FF0000; -const int Umask = 0x0000FF00; -const int Vmask = 0x000000FF; -const int trY = 0x00300000; -const int trU = 0x00000700; -const int trV = 0x00000006; - -FUNCINLINE static ATTRINLINE void Interp1(Uint8 * pc, int c1, int c2) -{ -#ifdef HQ2XASM - //*((int*)pc) = (c1*3+c2)/4; -#ifdef __GNUC__ - int c3 = c1; - __asm__("shl $2, %1; add %2, %1; sub %3, %1; shr $2, %1":"=d"(*((int*)pc)):"d"(c1),"r"(c2),"r"(c3):"memory"); -#else - __asm - { - mov eax, pc - mov edx, c1 - shl edx, 2 - add edx, c2 - sub edx, c1 - shr edx, 2 - mov [eax], edx - } -#endif -#else - *((int*)pc) = (c1*3+c2) >> 2; -#endif -} - -FUNCINLINE static ATTRINLINE void Interp2(Uint8 * pc, int c1, int c2, int c3) -{ -#ifdef HQ2XASM -// *((int*)pc) = (c1*2+c2+c3) >> 2; -#ifdef __GNUC__ - __asm__("shl $1, %1; add %2, %1; add %3, %1; shr $2, %1":"=d"(*((int*)pc)):"d"(c1),"r"(c2),"r"(c3):"memory"); -#else - __asm - { - mov eax, pc - mov edx, c1 - shl edx, 1 - add edx, c2 - add edx, c3 - shr edx, 2 - mov [eax], edx - } -#endif -#else - *((int*)pc) = (c1*2+c2+c3) >> 2; -#endif -} - -#if 0 -static inline void Interp5(Uint8 * pc, int c1, int c2) -{ -#ifdef HQ2XASM - //*((int*)pc) = (c1+c2)/2; -#ifdef __GNUC__ - __asm__("add %2, %1; shr $1, %1":"=d"(*((int*)pc)):"d"(c1),"r"(c2):"memory"); -#else - __asm - { - mov eax, pc - mov edx, c1 - add edx, c2 - shr edx, 1 - mov [eax], edx - } -#endif -#else - *((int*)pc) = (c1+c2) >> 1; -#endif -} -#endif - -FUNCINLINE static ATTRINLINE void Interp6(Uint8 * pc, int c1, int c2, int c3) -{ -#ifdef HQ2XMMXASM - //*((int*)pc) = (c1*5+c2*2+c3)/8; - if(hasMMX) -#ifdef __GNUC__ - __asm__("movd %1, %%mm1; movd %2, %%mm2, movd %3, %%mm3; punpcklbw $_reg_blank, %%mm1; punpcklbw $_reg_blank, %%mm2; punpcklbw $_reg_blank, %%mm3; pmullw $_const5, %%mm1; psllw $1, %%mm2; paddw %%mm3, %%mm1; paddw %%mm2, %%mm1; psrlw $3, %%mm1; packuswb $_reg_blank, %%mm1; movd %%mm1, %0" : "=r"(*((int*)pc)) : "r" (c1),"r" (c2),"r" (c3) : "memory"); -#else - __asm - { - mov eax, pc - movd mm1, c1 - movd mm2, c2 - movd mm3, c3 - punpcklbw mm1, reg_blank - punpcklbw mm2, reg_blank - punpcklbw mm3, reg_blank - pmullw mm1, const5 - psllw mm2, 1 - paddw mm1, mm3 - paddw mm1, mm2 - psrlw mm1, 3 - packuswb mm1, reg_blank - movd [eax], mm1 - } -#endif - else -#endif - *((int*)pc) = ((((c1 & 0x00FF00)*5 + (c2 & 0x00FF00)*2 + (c3 & 0x00FF00) ) & 0x0007F800) + - (((c1 & 0xFF00FF)*5 + (c2 & 0xFF00FF)*2 + (c3 & 0xFF00FF) ) & 0x07F807F8)) >> 3; -} - -FUNCINLINE static ATTRINLINE void Interp7(Uint8 * pc, int c1, int c2, int c3) -{ -#ifdef HQ2XMMXASM - //*((int*)pc) = (c1*6+c2+c3)/8; - if(hasMMX) -#ifdef __GNUC__ - __asm__("movd %1, %%mm1; movd %2, %%mm2, movd %3, %%mm3; punpcklbw $_reg_blank, %%mm1; punpcklbw $_reg_blank, %%mm2; punpcklbw $_reg_blank, %%mm3; pmull2 $_const6, %%mm1; padw %%mm3, %%mm2; paddw %%mm2, %%mm1; psrlw $3, %%mm1; packuswb $_reg_blank, %%mm1; movd %%mm1, %0 " : "=r" (*((int*)pc)): "r"(c1), "r"(c2), "r"(c3) : "memory"); -#else - __asm - { - mov eax, pc - movd mm1, c1 - movd mm2, c2 - movd mm3, c3 - punpcklbw mm1, reg_blank - punpcklbw mm2, reg_blank - punpcklbw mm3, reg_blank - pmullw mm1, const6 - paddw mm2, mm3 - paddw mm1, mm2 - psrlw mm1, 3 - packuswb mm1, reg_blank - movd [eax], mm1 - } -#endif - else -#endif - *((int*)pc) = ((((c1 & 0x00FF00)*6 + (c2 & 0x00FF00) + (c3 & 0x00FF00) ) & 0x0007F800) + - (((c1 & 0xFF00FF)*6 + (c2 & 0xFF00FF) + (c3 & 0xFF00FF) ) & 0x07F807F8)) >> 3; -} - -FUNCINLINE static ATTRINLINE void Interp9(Uint8 * pc, int c1, int c2, int c3) -{ -#ifdef HQ2XMMXASM - //*((int*)pc) = (c1*2+(c2+c3)*3)/8; - if(hasMMX) -#ifdef __GNUC__ - __asm__("movd %1, %%mm1; movd %2, %%mm2, movd %3, %%mm3; punpcklbw $_reg_blank, %%mm1; punpcklbw $_reg_blank, %%mm2; punpcklbw $_reg_blank, %%mm3; psllw $1, %%mm1; paddw %%mm3, %%mm2; pmullw $_const3, %%mm2; padw %%mm2, %%mm1; psrlw $3, %%mm1; packuswb $_reg_blank, %%mm1; movd %%mm1, %0;" : "=r"(*((int*)pc)) : "r" (c1),"r" (c2),"r" (c3) : "memory"); -#else - __asm - { - mov eax, pc - movd mm1, c1 - movd mm2, c2 - movd mm3, c3 - punpcklbw mm1, reg_blank - punpcklbw mm2, reg_blank - punpcklbw mm3, reg_blank - psllw mm1, 1 - paddw mm2, mm3 - pmullw mm2, const3 - paddw mm1, mm2 - psrlw mm1, 3 - packuswb mm1, reg_blank - movd [eax], mm1 - } -#endif - else -#endif - *((int*)pc) = ((((c1 & 0x00FF00)*2 + ((c2 & 0x00FF00) + (c3 & 0x00FF00))*3 ) & 0x0007F800) + - (((c1 & 0xFF00FF)*2 + ((c2 & 0xFF00FF) + (c3 & 0xFF00FF))*3 ) & 0x07F807F8)) >> 3; -} - -FUNCINLINE static ATTRINLINE void Interp10(Uint8 * pc, int c1, int c2, int c3) -{ -#ifdef HQ2XMMXASM - //*((int*)pc) = (c1*14+c2+c3)/16; - if(hasMMX) -#ifdef __GNUC__ - __asm__("movd %1, %%mm1; movd %2, %%mm2, movd %3, %%mm3; punpcklbw $_reg_blank, %%mm1; punpcklbw $_reg_blank, %%mm2; punpcklbw $_reg_blank, %%mm3; pmullw $_const14, %%mm1; paddw %%mm3, %%mm2; paddw %%mm2, %%mm1; psrlw $4, %%mm1; packuswb $_req_blank, %%mm1; movd %%mm1, %0;" : "=r"(*((int*)pc)) : "r" (c1),"r" (c2),"r" (c3) : "memory"); -#else - __asm - { - mov eax, pc - movd mm1, c1 - movd mm2, c2 - movd mm3, c3 - punpcklbw mm1, reg_blank - punpcklbw mm2, reg_blank - punpcklbw mm3, reg_blank - pmullw mm1, const14 - paddw mm2, mm3 - paddw mm1, mm2 - psrlw mm1, 4 - packuswb mm1, reg_blank - movd [eax], mm1 - } -#endif - else -#endif - *((int*)pc) = ((((c1 & 0x00FF00)*14 + (c2 & 0x00FF00) + (c3 & 0x00FF00) ) & 0x000FF000) + - (((c1 & 0xFF00FF)*14 + (c2 & 0xFF00FF) + (c3 & 0xFF00FF) ) & 0x0FF00FF0)) >> 4; -} -#define PIXEL00_0 *((int*)(pOut)) = c[5]; -#define PIXEL00_10 Interp1(pOut, c[5], c[1]); -#define PIXEL00_11 Interp1(pOut, c[5], c[4]); -#define PIXEL00_12 Interp1(pOut, c[5], c[2]); -#define PIXEL00_20 Interp2(pOut, c[5], c[4], c[2]); -#define PIXEL00_21 Interp2(pOut, c[5], c[1], c[2]); -#define PIXEL00_22 Interp2(pOut, c[5], c[1], c[4]); -#define PIXEL00_60 Interp6(pOut, c[5], c[2], c[4]); -#define PIXEL00_61 Interp6(pOut, c[5], c[4], c[2]); -#define PIXEL00_70 Interp7(pOut, c[5], c[4], c[2]); -#define PIXEL00_90 Interp9(pOut, c[5], c[4], c[2]); -#define PIXEL00_100 Interp10(pOut, c[5], c[4], c[2]); -#define PIXEL01_0 *((int*)(pOut+4)) = c[5]; -#define PIXEL01_10 Interp1(pOut+4, c[5], c[3]); -#define PIXEL01_11 Interp1(pOut+4, c[5], c[2]); -#define PIXEL01_12 Interp1(pOut+4, c[5], c[6]); -#define PIXEL01_20 Interp2(pOut+4, c[5], c[2], c[6]); -#define PIXEL01_21 Interp2(pOut+4, c[5], c[3], c[6]); -#define PIXEL01_22 Interp2(pOut+4, c[5], c[3], c[2]); -#define PIXEL01_60 Interp6(pOut+4, c[5], c[6], c[2]); -#define PIXEL01_61 Interp6(pOut+4, c[5], c[2], c[6]); -#define PIXEL01_70 Interp7(pOut+4, c[5], c[2], c[6]); -#define PIXEL01_90 Interp9(pOut+4, c[5], c[2], c[6]); -#define PIXEL01_100 Interp10(pOut+4, c[5], c[2], c[6]); -#define PIXEL10_0 *((int*)(pOut+BpL)) = c[5]; -#define PIXEL10_10 Interp1(pOut+BpL, c[5], c[7]); -#define PIXEL10_11 Interp1(pOut+BpL, c[5], c[8]); -#define PIXEL10_12 Interp1(pOut+BpL, c[5], c[4]); -#define PIXEL10_20 Interp2(pOut+BpL, c[5], c[8], c[4]); -#define PIXEL10_21 Interp2(pOut+BpL, c[5], c[7], c[4]); -#define PIXEL10_22 Interp2(pOut+BpL, c[5], c[7], c[8]); -#define PIXEL10_60 Interp6(pOut+BpL, c[5], c[4], c[8]); -#define PIXEL10_61 Interp6(pOut+BpL, c[5], c[8], c[4]); -#define PIXEL10_70 Interp7(pOut+BpL, c[5], c[8], c[4]); -#define PIXEL10_90 Interp9(pOut+BpL, c[5], c[8], c[4]); -#define PIXEL10_100 Interp10(pOut+BpL, c[5], c[8], c[4]); -#define PIXEL11_0 *((int*)(pOut+BpL+4)) = c[5]; -#define PIXEL11_10 Interp1(pOut+BpL+4, c[5], c[9]); -#define PIXEL11_11 Interp1(pOut+BpL+4, c[5], c[6]); -#define PIXEL11_12 Interp1(pOut+BpL+4, c[5], c[8]); -#define PIXEL11_20 Interp2(pOut+BpL+4, c[5], c[6], c[8]); -#define PIXEL11_21 Interp2(pOut+BpL+4, c[5], c[9], c[8]); -#define PIXEL11_22 Interp2(pOut+BpL+4, c[5], c[9], c[6]); -#define PIXEL11_60 Interp6(pOut+BpL+4, c[5], c[8], c[6]); -#define PIXEL11_61 Interp6(pOut+BpL+4, c[5], c[6], c[8]); -#define PIXEL11_70 Interp7(pOut+BpL+4, c[5], c[6], c[8]); -#define PIXEL11_90 Interp9(pOut+BpL+4, c[5], c[6], c[8]); -#define PIXEL11_100 Interp10(pOut+BpL+4, c[5], c[6], c[8]); - -#ifdef _MSC_VER -#pragma warning(disable: 4035) -#endif - -FUNCINLINE static ATTRINLINE int Diff(Uint32 w1, Uint32 w2) -{ -#ifdef HQ2XMMXASM - if(hasMMX) - { -#ifdef __GNUC__ - int diffresult = 0; - if(w1 != w2) - __asm__("movd %3+%1*4, %%mm1; movq %%mm1, %%mm5; movd %3+%2*4, %%mm2; psubusb %%mm2, %%mm1; psubusb %%mm5, %%mm2; por %%mm2, %%mm1; psubusb $_treshold, %%mm1; movd %%mm1, %0" : "=c" (diffresult):"d" (w1),"q" (w2),"c" (RGBtoYUV) : "memory"); - return diffresult; -#else - __asm - { - xor eax,eax - mov ebx,w1 - mov edx,w2 - cmp ebx,edx - je FIN - mov ecx,offset RGBtoYUV - movd mm1,[ecx + ebx*4] - movq mm5,mm1 - movd mm2,[ecx + edx*4] - psubusb mm1,mm2 - psubusb mm2,mm5 - por mm1,mm2 - psubusb mm1,treshold - movd eax,mm1 -FIN: - }// returns result in eax register -#endif - } - else -#endif - { - YUV1 = RGBtoYUV[w1]; - YUV2 = RGBtoYUV[w2]; - return ( ( abs((YUV1 & Ymask) - (YUV2 & Ymask)) > trY ) || - ( abs((YUV1 & Umask) - (YUV2 & Umask)) > trU ) || - ( abs((YUV1 & Vmask) - (YUV2 & Vmask)) > trV ) ); - } -} - - -#ifdef _MSC_VER -#pragma warning(default: 4035) -#endif - - -static void hq2x_32( Uint8 * pIn, Uint8 * pOut, int Xres, int Yres, int BpL ) -{ - int i, j, k; - int prevline, nextline; - int w[10]; - int c[10]; - - // +----+----+----+ - // | | | | - // | w1 | w2 | w3 | - // +----+----+----+ - // | | | | - // | w4 | w5 | w6 | - // +----+----+----+ - // | | | | - // | w7 | w8 | w9 | - // +----+----+----+ - - for (j=0; j0) prevline = -Xres*2; else prevline = 0; - if (j0) - { - w[1] = *((Uint16*)(pIn + prevline - 2)); - w[4] = *((Uint16*)(pIn - 2)); - w[7] = *((Uint16*)(pIn + nextline - 2)); - } - else - { - w[1] = w[2]; - w[4] = w[5]; - w[7] = w[8]; - } - - if (i trY ) || - ( abs((YUV1 & Umask) - (YUV2 & Umask)) > trU ) || - ( abs((YUV1 & Vmask) - (YUV2 & Vmask)) > trV ) ) - pattern |= flag; - } - flag <<= 1; - } - } - - for (k=1; k<=9; k++) - c[k] = LUT16to32[w[k]]; - - switch (pattern) - { - case 0: - case 1: - case 4: - case 32: - case 128: - case 5: - case 132: - case 160: - case 33: - case 129: - case 36: - case 133: - case 164: - case 161: - case 37: - case 165: - { - PIXEL00_20 - PIXEL01_20 - PIXEL10_20 - PIXEL11_20 - break; - } - case 2: - case 34: - case 130: - case 162: - { - PIXEL00_22 - PIXEL01_21 - PIXEL10_20 - PIXEL11_20 - break; - } - case 16: - case 17: - case 48: - case 49: - { - PIXEL00_20 - PIXEL01_22 - PIXEL10_20 - PIXEL11_21 - break; - } - case 64: - case 65: - case 68: - case 69: - { - PIXEL00_20 - PIXEL01_20 - PIXEL10_21 - PIXEL11_22 - break; - } - case 8: - case 12: - case 136: - case 140: - { - PIXEL00_21 - PIXEL01_20 - PIXEL10_22 - PIXEL11_20 - break; - } - case 3: - case 35: - case 131: - case 163: - { - PIXEL00_11 - PIXEL01_21 - PIXEL10_20 - PIXEL11_20 - break; - } - case 6: - case 38: - case 134: - case 166: - { - PIXEL00_22 - PIXEL01_12 - PIXEL10_20 - PIXEL11_20 - break; - } - case 20: - case 21: - case 52: - case 53: - { - PIXEL00_20 - PIXEL01_11 - PIXEL10_20 - PIXEL11_21 - break; - } - case 144: - case 145: - case 176: - case 177: - { - PIXEL00_20 - PIXEL01_22 - PIXEL10_20 - PIXEL11_12 - break; - } - case 192: - case 193: - case 196: - case 197: - { - PIXEL00_20 - PIXEL01_20 - PIXEL10_21 - PIXEL11_11 - break; - } - case 96: - case 97: - case 100: - case 101: - { - PIXEL00_20 - PIXEL01_20 - PIXEL10_12 - PIXEL11_22 - break; - } - case 40: - case 44: - case 168: - case 172: - { - PIXEL00_21 - PIXEL01_20 - PIXEL10_11 - PIXEL11_20 - break; - } - case 9: - case 13: - case 137: - case 141: - { - PIXEL00_12 - PIXEL01_20 - PIXEL10_22 - PIXEL11_20 - break; - } - case 18: - case 50: - { - PIXEL00_22 - if (Diff(w[2], w[6])) - { - PIXEL01_10 - } - else - { - PIXEL01_20 - } - PIXEL10_20 - PIXEL11_21 - break; - } - case 80: - case 81: - { - PIXEL00_20 - PIXEL01_22 - PIXEL10_21 - if (Diff(w[6], w[8])) - { - PIXEL11_10 - } - else - { - PIXEL11_20 - } - break; - } - case 72: - case 76: - { - PIXEL00_21 - PIXEL01_20 - if (Diff(w[8], w[4])) - { - PIXEL10_10 - } - else - { - PIXEL10_20 - } - PIXEL11_22 - break; - } - case 10: - case 138: - { - if (Diff(w[4], w[2])) - { - PIXEL00_10 - } - else - { - PIXEL00_20 - } - PIXEL01_21 - PIXEL10_22 - PIXEL11_20 - break; - } - case 66: - { - PIXEL00_22 - PIXEL01_21 - PIXEL10_21 - PIXEL11_22 - break; - } - case 24: - { - PIXEL00_21 - PIXEL01_22 - PIXEL10_22 - PIXEL11_21 - break; - } - case 7: - case 39: - case 135: - { - PIXEL00_11 - PIXEL01_12 - PIXEL10_20 - PIXEL11_20 - break; - } - case 148: - case 149: - case 180: - { - PIXEL00_20 - PIXEL01_11 - PIXEL10_20 - PIXEL11_12 - break; - } - case 224: - case 228: - case 225: - { - PIXEL00_20 - PIXEL01_20 - PIXEL10_12 - PIXEL11_11 - break; - } - case 41: - case 169: - case 45: - { - PIXEL00_12 - PIXEL01_20 - PIXEL10_11 - PIXEL11_20 - break; - } - case 22: - case 54: - { - PIXEL00_22 - if (Diff(w[2], w[6])) - { - PIXEL01_0 - } - else - { - PIXEL01_20 - } - PIXEL10_20 - PIXEL11_21 - break; - } - case 208: - case 209: - { - PIXEL00_20 - PIXEL01_22 - PIXEL10_21 - if (Diff(w[6], w[8])) - { - PIXEL11_0 - } - else - { - PIXEL11_20 - } - break; - } - case 104: - case 108: - { - PIXEL00_21 - PIXEL01_20 - if (Diff(w[8], w[4])) - { - PIXEL10_0 - } - else - { - PIXEL10_20 - } - PIXEL11_22 - break; - } - case 11: - case 139: - { - if (Diff(w[4], w[2])) - { - PIXEL00_0 - } - else - { - PIXEL00_20 - } - PIXEL01_21 - PIXEL10_22 - PIXEL11_20 - break; - } - case 19: - case 51: - { - if (Diff(w[2], w[6])) - { - PIXEL00_11 - PIXEL01_10 - } - else - { - PIXEL00_60 - PIXEL01_90 - } - PIXEL10_20 - PIXEL11_21 - break; - } - case 146: - case 178: - { - PIXEL00_22 - if (Diff(w[2], w[6])) - { - PIXEL01_10 - PIXEL11_12 - } - else - { - PIXEL01_90 - PIXEL11_61 - } - PIXEL10_20 - break; - } - case 84: - case 85: - { - PIXEL00_20 - if (Diff(w[6], w[8])) - { - PIXEL01_11 - PIXEL11_10 - } - else - { - PIXEL01_60 - PIXEL11_90 - } - PIXEL10_21 - break; - } - case 112: - case 113: - { - PIXEL00_20 - PIXEL01_22 - if (Diff(w[6], w[8])) - { - PIXEL10_12 - PIXEL11_10 - } - else - { - PIXEL10_61 - PIXEL11_90 - } - break; - } - case 200: - case 204: - { - PIXEL00_21 - PIXEL01_20 - if (Diff(w[8], w[4])) - { - PIXEL10_10 - PIXEL11_11 - } - else - { - PIXEL10_90 - PIXEL11_60 - } - break; - } - case 73: - case 77: - { - if (Diff(w[8], w[4])) - { - PIXEL00_12 - PIXEL10_10 - } - else - { - PIXEL00_61 - PIXEL10_90 - } - PIXEL01_20 - PIXEL11_22 - break; - } - case 42: - case 170: - { - if (Diff(w[4], w[2])) - { - PIXEL00_10 - PIXEL10_11 - } - else - { - PIXEL00_90 - PIXEL10_60 - } - PIXEL01_21 - PIXEL11_20 - break; - } - case 14: - case 142: - { - if (Diff(w[4], w[2])) - { - PIXEL00_10 - PIXEL01_12 - } - else - { - PIXEL00_90 - PIXEL01_61 - } - PIXEL10_22 - PIXEL11_20 - break; - } - case 67: - { - PIXEL00_11 - PIXEL01_21 - PIXEL10_21 - PIXEL11_22 - break; - } - case 70: - { - PIXEL00_22 - PIXEL01_12 - PIXEL10_21 - PIXEL11_22 - break; - } - case 28: - { - PIXEL00_21 - PIXEL01_11 - PIXEL10_22 - PIXEL11_21 - break; - } - case 152: - { - PIXEL00_21 - PIXEL01_22 - PIXEL10_22 - PIXEL11_12 - break; - } - case 194: - { - PIXEL00_22 - PIXEL01_21 - PIXEL10_21 - PIXEL11_11 - break; - } - case 98: - { - PIXEL00_22 - PIXEL01_21 - PIXEL10_12 - PIXEL11_22 - break; - } - case 56: - { - PIXEL00_21 - PIXEL01_22 - PIXEL10_11 - PIXEL11_21 - break; - } - case 25: - { - PIXEL00_12 - PIXEL01_22 - PIXEL10_22 - PIXEL11_21 - break; - } - case 26: - case 31: - { - if (Diff(w[4], w[2])) - { - PIXEL00_0 - } - else - { - PIXEL00_20 - } - if (Diff(w[2], w[6])) - { - PIXEL01_0 - } - else - { - PIXEL01_20 - } - PIXEL10_22 - PIXEL11_21 - break; - } - case 82: - case 214: - { - PIXEL00_22 - if (Diff(w[2], w[6])) - { - PIXEL01_0 - } - else - { - PIXEL01_20 - } - PIXEL10_21 - if (Diff(w[6], w[8])) - { - PIXEL11_0 - } - else - { - PIXEL11_20 - } - break; - } - case 88: - case 248: - { - PIXEL00_21 - PIXEL01_22 - if (Diff(w[8], w[4])) - { - PIXEL10_0 - } - else - { - PIXEL10_20 - } - if (Diff(w[6], w[8])) - { - PIXEL11_0 - } - else - { - PIXEL11_20 - } - break; - } - case 74: - case 107: - { - if (Diff(w[4], w[2])) - { - PIXEL00_0 - } - else - { - PIXEL00_20 - } - PIXEL01_21 - if (Diff(w[8], w[4])) - { - PIXEL10_0 - } - else - { - PIXEL10_20 - } - PIXEL11_22 - break; - } - case 27: - { - if (Diff(w[4], w[2])) - { - PIXEL00_0 - } - else - { - PIXEL00_20 - } - PIXEL01_10 - PIXEL10_22 - PIXEL11_21 - break; - } - case 86: - { - PIXEL00_22 - if (Diff(w[2], w[6])) - { - PIXEL01_0 - } - else - { - PIXEL01_20 - } - PIXEL10_21 - PIXEL11_10 - break; - } - case 216: - { - PIXEL00_21 - PIXEL01_22 - PIXEL10_10 - if (Diff(w[6], w[8])) - { - PIXEL11_0 - } - else - { - PIXEL11_20 - } - break; - } - case 106: - { - PIXEL00_10 - PIXEL01_21 - if (Diff(w[8], w[4])) - { - PIXEL10_0 - } - else - { - PIXEL10_20 - } - PIXEL11_22 - break; - } - case 30: - { - PIXEL00_10 - if (Diff(w[2], w[6])) - { - PIXEL01_0 - } - else - { - PIXEL01_20 - } - PIXEL10_22 - PIXEL11_21 - break; - } - case 210: - { - PIXEL00_22 - PIXEL01_10 - PIXEL10_21 - if (Diff(w[6], w[8])) - { - PIXEL11_0 - } - else - { - PIXEL11_20 - } - break; - } - case 120: - { - PIXEL00_21 - PIXEL01_22 - if (Diff(w[8], w[4])) - { - PIXEL10_0 - } - else - { - PIXEL10_20 - } - PIXEL11_10 - break; - } - case 75: - { - if (Diff(w[4], w[2])) - { - PIXEL00_0 - } - else - { - PIXEL00_20 - } - PIXEL01_21 - PIXEL10_10 - PIXEL11_22 - break; - } - case 29: - { - PIXEL00_12 - PIXEL01_11 - PIXEL10_22 - PIXEL11_21 - break; - } - case 198: - { - PIXEL00_22 - PIXEL01_12 - PIXEL10_21 - PIXEL11_11 - break; - } - case 184: - { - PIXEL00_21 - PIXEL01_22 - PIXEL10_11 - PIXEL11_12 - break; - } - case 99: - { - PIXEL00_11 - PIXEL01_21 - PIXEL10_12 - PIXEL11_22 - break; - } - case 57: - { - PIXEL00_12 - PIXEL01_22 - PIXEL10_11 - PIXEL11_21 - break; - } - case 71: - { - PIXEL00_11 - PIXEL01_12 - PIXEL10_21 - PIXEL11_22 - break; - } - case 156: - { - PIXEL00_21 - PIXEL01_11 - PIXEL10_22 - PIXEL11_12 - break; - } - case 226: - { - PIXEL00_22 - PIXEL01_21 - PIXEL10_12 - PIXEL11_11 - break; - } - case 60: - { - PIXEL00_21 - PIXEL01_11 - PIXEL10_11 - PIXEL11_21 - break; - } - case 195: - { - PIXEL00_11 - PIXEL01_21 - PIXEL10_21 - PIXEL11_11 - break; - } - case 102: - { - PIXEL00_22 - PIXEL01_12 - PIXEL10_12 - PIXEL11_22 - break; - } - case 153: - { - PIXEL00_12 - PIXEL01_22 - PIXEL10_22 - PIXEL11_12 - break; - } - case 58: - { - if (Diff(w[4], w[2])) - { - PIXEL00_10 - } - else - { - PIXEL00_70 - } - if (Diff(w[2], w[6])) - { - PIXEL01_10 - } - else - { - PIXEL01_70 - } - PIXEL10_11 - PIXEL11_21 - break; - } - case 83: - { - PIXEL00_11 - if (Diff(w[2], w[6])) - { - PIXEL01_10 - } - else - { - PIXEL01_70 - } - PIXEL10_21 - if (Diff(w[6], w[8])) - { - PIXEL11_10 - } - else - { - PIXEL11_70 - } - break; - } - case 92: - { - PIXEL00_21 - PIXEL01_11 - if (Diff(w[8], w[4])) - { - PIXEL10_10 - } - else - { - PIXEL10_70 - } - if (Diff(w[6], w[8])) - { - PIXEL11_10 - } - else - { - PIXEL11_70 - } - break; - } - case 202: - { - if (Diff(w[4], w[2])) - { - PIXEL00_10 - } - else - { - PIXEL00_70 - } - PIXEL01_21 - if (Diff(w[8], w[4])) - { - PIXEL10_10 - } - else - { - PIXEL10_70 - } - PIXEL11_11 - break; - } - case 78: - { - if (Diff(w[4], w[2])) - { - PIXEL00_10 - } - else - { - PIXEL00_70 - } - PIXEL01_12 - if (Diff(w[8], w[4])) - { - PIXEL10_10 - } - else - { - PIXEL10_70 - } - PIXEL11_22 - break; - } - case 154: - { - if (Diff(w[4], w[2])) - { - PIXEL00_10 - } - else - { - PIXEL00_70 - } - if (Diff(w[2], w[6])) - { - PIXEL01_10 - } - else - { - PIXEL01_70 - } - PIXEL10_22 - PIXEL11_12 - break; - } - case 114: - { - PIXEL00_22 - if (Diff(w[2], w[6])) - { - PIXEL01_10 - } - else - { - PIXEL01_70 - } - PIXEL10_12 - if (Diff(w[6], w[8])) - { - PIXEL11_10 - } - else - { - PIXEL11_70 - } - break; - } - case 89: - { - PIXEL00_12 - PIXEL01_22 - if (Diff(w[8], w[4])) - { - PIXEL10_10 - } - else - { - PIXEL10_70 - } - if (Diff(w[6], w[8])) - { - PIXEL11_10 - } - else - { - PIXEL11_70 - } - break; - } - case 90: - { - if (Diff(w[4], w[2])) - { - PIXEL00_10 - } - else - { - PIXEL00_70 - } - if (Diff(w[2], w[6])) - { - PIXEL01_10 - } - else - { - PIXEL01_70 - } - if (Diff(w[8], w[4])) - { - PIXEL10_10 - } - else - { - PIXEL10_70 - } - if (Diff(w[6], w[8])) - { - PIXEL11_10 - } - else - { - PIXEL11_70 - } - break; - } - case 55: - case 23: - { - if (Diff(w[2], w[6])) - { - PIXEL00_11 - PIXEL01_0 - } - else - { - PIXEL00_60 - PIXEL01_90 - } - PIXEL10_20 - PIXEL11_21 - break; - } - case 182: - case 150: - { - PIXEL00_22 - if (Diff(w[2], w[6])) - { - PIXEL01_0 - PIXEL11_12 - } - else - { - PIXEL01_90 - PIXEL11_61 - } - PIXEL10_20 - break; - } - case 213: - case 212: - { - PIXEL00_20 - if (Diff(w[6], w[8])) - { - PIXEL01_11 - PIXEL11_0 - } - else - { - PIXEL01_60 - PIXEL11_90 - } - PIXEL10_21 - break; - } - case 241: - case 240: - { - PIXEL00_20 - PIXEL01_22 - if (Diff(w[6], w[8])) - { - PIXEL10_12 - PIXEL11_0 - } - else - { - PIXEL10_61 - PIXEL11_90 - } - break; - } - case 236: - case 232: - { - PIXEL00_21 - PIXEL01_20 - if (Diff(w[8], w[4])) - { - PIXEL10_0 - PIXEL11_11 - } - else - { - PIXEL10_90 - PIXEL11_60 - } - break; - } - case 109: - case 105: - { - if (Diff(w[8], w[4])) - { - PIXEL00_12 - PIXEL10_0 - } - else - { - PIXEL00_61 - PIXEL10_90 - } - PIXEL01_20 - PIXEL11_22 - break; - } - case 171: - case 43: - { - if (Diff(w[4], w[2])) - { - PIXEL00_0 - PIXEL10_11 - } - else - { - PIXEL00_90 - PIXEL10_60 - } - PIXEL01_21 - PIXEL11_20 - break; - } - case 143: - case 15: - { - if (Diff(w[4], w[2])) - { - PIXEL00_0 - PIXEL01_12 - } - else - { - PIXEL00_90 - PIXEL01_61 - } - PIXEL10_22 - PIXEL11_20 - break; - } - case 124: - { - PIXEL00_21 - PIXEL01_11 - if (Diff(w[8], w[4])) - { - PIXEL10_0 - } - else - { - PIXEL10_20 - } - PIXEL11_10 - break; - } - case 203: - { - if (Diff(w[4], w[2])) - { - PIXEL00_0 - } - else - { - PIXEL00_20 - } - PIXEL01_21 - PIXEL10_10 - PIXEL11_11 - break; - } - case 62: - { - PIXEL00_10 - if (Diff(w[2], w[6])) - { - PIXEL01_0 - } - else - { - PIXEL01_20 - } - PIXEL10_11 - PIXEL11_21 - break; - } - case 211: - { - PIXEL00_11 - PIXEL01_10 - PIXEL10_21 - if (Diff(w[6], w[8])) - { - PIXEL11_0 - } - else - { - PIXEL11_20 - } - break; - } - case 118: - { - PIXEL00_22 - if (Diff(w[2], w[6])) - { - PIXEL01_0 - } - else - { - PIXEL01_20 - } - PIXEL10_12 - PIXEL11_10 - break; - } - case 217: - { - PIXEL00_12 - PIXEL01_22 - PIXEL10_10 - if (Diff(w[6], w[8])) - { - PIXEL11_0 - } - else - { - PIXEL11_20 - } - break; - } - case 110: - { - PIXEL00_10 - PIXEL01_12 - if (Diff(w[8], w[4])) - { - PIXEL10_0 - } - else - { - PIXEL10_20 - } - PIXEL11_22 - break; - } - case 155: - { - if (Diff(w[4], w[2])) - { - PIXEL00_0 - } - else - { - PIXEL00_20 - } - PIXEL01_10 - PIXEL10_22 - PIXEL11_12 - break; - } - case 188: - { - PIXEL00_21 - PIXEL01_11 - PIXEL10_11 - PIXEL11_12 - break; - } - case 185: - { - PIXEL00_12 - PIXEL01_22 - PIXEL10_11 - PIXEL11_12 - break; - } - case 61: - { - PIXEL00_12 - PIXEL01_11 - PIXEL10_11 - PIXEL11_21 - break; - } - case 157: - { - PIXEL00_12 - PIXEL01_11 - PIXEL10_22 - PIXEL11_12 - break; - } - case 103: - { - PIXEL00_11 - PIXEL01_12 - PIXEL10_12 - PIXEL11_22 - break; - } - case 227: - { - PIXEL00_11 - PIXEL01_21 - PIXEL10_12 - PIXEL11_11 - break; - } - case 230: - { - PIXEL00_22 - PIXEL01_12 - PIXEL10_12 - PIXEL11_11 - break; - } - case 199: - { - PIXEL00_11 - PIXEL01_12 - PIXEL10_21 - PIXEL11_11 - break; - } - case 220: - { - PIXEL00_21 - PIXEL01_11 - if (Diff(w[8], w[4])) - { - PIXEL10_10 - } - else - { - PIXEL10_70 - } - if (Diff(w[6], w[8])) - { - PIXEL11_0 - } - else - { - PIXEL11_20 - } - break; - } - case 158: - { - if (Diff(w[4], w[2])) - { - PIXEL00_10 - } - else - { - PIXEL00_70 - } - if (Diff(w[2], w[6])) - { - PIXEL01_0 - } - else - { - PIXEL01_20 - } - PIXEL10_22 - PIXEL11_12 - break; - } - case 234: - { - if (Diff(w[4], w[2])) - { - PIXEL00_10 - } - else - { - PIXEL00_70 - } - PIXEL01_21 - if (Diff(w[8], w[4])) - { - PIXEL10_0 - } - else - { - PIXEL10_20 - } - PIXEL11_11 - break; - } - case 242: - { - PIXEL00_22 - if (Diff(w[2], w[6])) - { - PIXEL01_10 - } - else - { - PIXEL01_70 - } - PIXEL10_12 - if (Diff(w[6], w[8])) - { - PIXEL11_0 - } - else - { - PIXEL11_20 - } - break; - } - case 59: - { - if (Diff(w[4], w[2])) - { - PIXEL00_0 - } - else - { - PIXEL00_20 - } - if (Diff(w[2], w[6])) - { - PIXEL01_10 - } - else - { - PIXEL01_70 - } - PIXEL10_11 - PIXEL11_21 - break; - } - case 121: - { - PIXEL00_12 - PIXEL01_22 - if (Diff(w[8], w[4])) - { - PIXEL10_0 - } - else - { - PIXEL10_20 - } - if (Diff(w[6], w[8])) - { - PIXEL11_10 - } - else - { - PIXEL11_70 - } - break; - } - case 87: - { - PIXEL00_11 - if (Diff(w[2], w[6])) - { - PIXEL01_0 - } - else - { - PIXEL01_20 - } - PIXEL10_21 - if (Diff(w[6], w[8])) - { - PIXEL11_10 - } - else - { - PIXEL11_70 - } - break; - } - case 79: - { - if (Diff(w[4], w[2])) - { - PIXEL00_0 - } - else - { - PIXEL00_20 - } - PIXEL01_12 - if (Diff(w[8], w[4])) - { - PIXEL10_10 - } - else - { - PIXEL10_70 - } - PIXEL11_22 - break; - } - case 122: - { - if (Diff(w[4], w[2])) - { - PIXEL00_10 - } - else - { - PIXEL00_70 - } - if (Diff(w[2], w[6])) - { - PIXEL01_10 - } - else - { - PIXEL01_70 - } - if (Diff(w[8], w[4])) - { - PIXEL10_0 - } - else - { - PIXEL10_20 - } - if (Diff(w[6], w[8])) - { - PIXEL11_10 - } - else - { - PIXEL11_70 - } - break; - } - case 94: - { - if (Diff(w[4], w[2])) - { - PIXEL00_10 - } - else - { - PIXEL00_70 - } - if (Diff(w[2], w[6])) - { - PIXEL01_0 - } - else - { - PIXEL01_20 - } - if (Diff(w[8], w[4])) - { - PIXEL10_10 - } - else - { - PIXEL10_70 - } - if (Diff(w[6], w[8])) - { - PIXEL11_10 - } - else - { - PIXEL11_70 - } - break; - } - case 218: - { - if (Diff(w[4], w[2])) - { - PIXEL00_10 - } - else - { - PIXEL00_70 - } - if (Diff(w[2], w[6])) - { - PIXEL01_10 - } - else - { - PIXEL01_70 - } - if (Diff(w[8], w[4])) - { - PIXEL10_10 - } - else - { - PIXEL10_70 - } - if (Diff(w[6], w[8])) - { - PIXEL11_0 - } - else - { - PIXEL11_20 - } - break; - } - case 91: - { - if (Diff(w[4], w[2])) - { - PIXEL00_0 - } - else - { - PIXEL00_20 - } - if (Diff(w[2], w[6])) - { - PIXEL01_10 - } - else - { - PIXEL01_70 - } - if (Diff(w[8], w[4])) - { - PIXEL10_10 - } - else - { - PIXEL10_70 - } - if (Diff(w[6], w[8])) - { - PIXEL11_10 - } - else - { - PIXEL11_70 - } - break; - } - case 229: - { - PIXEL00_20 - PIXEL01_20 - PIXEL10_12 - PIXEL11_11 - break; - } - case 167: - { - PIXEL00_11 - PIXEL01_12 - PIXEL10_20 - PIXEL11_20 - break; - } - case 173: - { - PIXEL00_12 - PIXEL01_20 - PIXEL10_11 - PIXEL11_20 - break; - } - case 181: - { - PIXEL00_20 - PIXEL01_11 - PIXEL10_20 - PIXEL11_12 - break; - } - case 186: - { - if (Diff(w[4], w[2])) - { - PIXEL00_10 - } - else - { - PIXEL00_70 - } - if (Diff(w[2], w[6])) - { - PIXEL01_10 - } - else - { - PIXEL01_70 - } - PIXEL10_11 - PIXEL11_12 - break; - } - case 115: - { - PIXEL00_11 - if (Diff(w[2], w[6])) - { - PIXEL01_10 - } - else - { - PIXEL01_70 - } - PIXEL10_12 - if (Diff(w[6], w[8])) - { - PIXEL11_10 - } - else - { - PIXEL11_70 - } - break; - } - case 93: - { - PIXEL00_12 - PIXEL01_11 - if (Diff(w[8], w[4])) - { - PIXEL10_10 - } - else - { - PIXEL10_70 - } - if (Diff(w[6], w[8])) - { - PIXEL11_10 - } - else - { - PIXEL11_70 - } - break; - } - case 206: - { - if (Diff(w[4], w[2])) - { - PIXEL00_10 - } - else - { - PIXEL00_70 - } - PIXEL01_12 - if (Diff(w[8], w[4])) - { - PIXEL10_10 - } - else - { - PIXEL10_70 - } - PIXEL11_11 - break; - } - case 205: - case 201: - { - PIXEL00_12 - PIXEL01_20 - if (Diff(w[8], w[4])) - { - PIXEL10_10 - } - else - { - PIXEL10_70 - } - PIXEL11_11 - break; - } - case 174: - case 46: - { - if (Diff(w[4], w[2])) - { - PIXEL00_10 - } - else - { - PIXEL00_70 - } - PIXEL01_12 - PIXEL10_11 - PIXEL11_20 - break; - } - case 179: - case 147: - { - PIXEL00_11 - if (Diff(w[2], w[6])) - { - PIXEL01_10 - } - else - { - PIXEL01_70 - } - PIXEL10_20 - PIXEL11_12 - break; - } - case 117: - case 116: - { - PIXEL00_20 - PIXEL01_11 - PIXEL10_12 - if (Diff(w[6], w[8])) - { - PIXEL11_10 - } - else - { - PIXEL11_70 - } - break; - } - case 189: - { - PIXEL00_12 - PIXEL01_11 - PIXEL10_11 - PIXEL11_12 - break; - } - case 231: - { - PIXEL00_11 - PIXEL01_12 - PIXEL10_12 - PIXEL11_11 - break; - } - case 126: - { - PIXEL00_10 - if (Diff(w[2], w[6])) - { - PIXEL01_0 - } - else - { - PIXEL01_20 - } - if (Diff(w[8], w[4])) - { - PIXEL10_0 - } - else - { - PIXEL10_20 - } - PIXEL11_10 - break; - } - case 219: - { - if (Diff(w[4], w[2])) - { - PIXEL00_0 - } - else - { - PIXEL00_20 - } - PIXEL01_10 - PIXEL10_10 - if (Diff(w[6], w[8])) - { - PIXEL11_0 - } - else - { - PIXEL11_20 - } - break; - } - case 125: - { - if (Diff(w[8], w[4])) - { - PIXEL00_12 - PIXEL10_0 - } - else - { - PIXEL00_61 - PIXEL10_90 - } - PIXEL01_11 - PIXEL11_10 - break; - } - case 221: - { - PIXEL00_12 - if (Diff(w[6], w[8])) - { - PIXEL01_11 - PIXEL11_0 - } - else - { - PIXEL01_60 - PIXEL11_90 - } - PIXEL10_10 - break; - } - case 207: - { - if (Diff(w[4], w[2])) - { - PIXEL00_0 - PIXEL01_12 - } - else - { - PIXEL00_90 - PIXEL01_61 - } - PIXEL10_10 - PIXEL11_11 - break; - } - case 238: - { - PIXEL00_10 - PIXEL01_12 - if (Diff(w[8], w[4])) - { - PIXEL10_0 - PIXEL11_11 - } - else - { - PIXEL10_90 - PIXEL11_60 - } - break; - } - case 190: - { - PIXEL00_10 - if (Diff(w[2], w[6])) - { - PIXEL01_0 - PIXEL11_12 - } - else - { - PIXEL01_90 - PIXEL11_61 - } - PIXEL10_11 - break; - } - case 187: - { - if (Diff(w[4], w[2])) - { - PIXEL00_0 - PIXEL10_11 - } - else - { - PIXEL00_90 - PIXEL10_60 - } - PIXEL01_10 - PIXEL11_12 - break; - } - case 243: - { - PIXEL00_11 - PIXEL01_10 - if (Diff(w[6], w[8])) - { - PIXEL10_12 - PIXEL11_0 - } - else - { - PIXEL10_61 - PIXEL11_90 - } - break; - } - case 119: - { - if (Diff(w[2], w[6])) - { - PIXEL00_11 - PIXEL01_0 - } - else - { - PIXEL00_60 - PIXEL01_90 - } - PIXEL10_12 - PIXEL11_10 - break; - } - case 237: - case 233: - { - PIXEL00_12 - PIXEL01_20 - if (Diff(w[8], w[4])) - { - PIXEL10_0 - } - else - { - PIXEL10_100 - } - PIXEL11_11 - break; - } - case 175: - case 47: - { - if (Diff(w[4], w[2])) - { - PIXEL00_0 - } - else - { - PIXEL00_100 - } - PIXEL01_12 - PIXEL10_11 - PIXEL11_20 - break; - } - case 183: - case 151: - { - PIXEL00_11 - if (Diff(w[2], w[6])) - { - PIXEL01_0 - } - else - { - PIXEL01_100 - } - PIXEL10_20 - PIXEL11_12 - break; - } - case 245: - case 244: - { - PIXEL00_20 - PIXEL01_11 - PIXEL10_12 - if (Diff(w[6], w[8])) - { - PIXEL11_0 - } - else - { - PIXEL11_100 - } - break; - } - case 250: - { - PIXEL00_10 - PIXEL01_10 - if (Diff(w[8], w[4])) - { - PIXEL10_0 - } - else - { - PIXEL10_20 - } - if (Diff(w[6], w[8])) - { - PIXEL11_0 - } - else - { - PIXEL11_20 - } - break; - } - case 123: - { - if (Diff(w[4], w[2])) - { - PIXEL00_0 - } - else - { - PIXEL00_20 - } - PIXEL01_10 - if (Diff(w[8], w[4])) - { - PIXEL10_0 - } - else - { - PIXEL10_20 - } - PIXEL11_10 - break; - } - case 95: - { - if (Diff(w[4], w[2])) - { - PIXEL00_0 - } - else - { - PIXEL00_20 - } - if (Diff(w[2], w[6])) - { - PIXEL01_0 - } - else - { - PIXEL01_20 - } - PIXEL10_10 - PIXEL11_10 - break; - } - case 222: - { - PIXEL00_10 - if (Diff(w[2], w[6])) - { - PIXEL01_0 - } - else - { - PIXEL01_20 - } - PIXEL10_10 - if (Diff(w[6], w[8])) - { - PIXEL11_0 - } - else - { - PIXEL11_20 - } - break; - } - case 252: - { - PIXEL00_21 - PIXEL01_11 - if (Diff(w[8], w[4])) - { - PIXEL10_0 - } - else - { - PIXEL10_20 - } - if (Diff(w[6], w[8])) - { - PIXEL11_0 - } - else - { - PIXEL11_100 - } - break; - } - case 249: - { - PIXEL00_12 - PIXEL01_22 - if (Diff(w[8], w[4])) - { - PIXEL10_0 - } - else - { - PIXEL10_100 - } - if (Diff(w[6], w[8])) - { - PIXEL11_0 - } - else - { - PIXEL11_20 - } - break; - } - case 235: - { - if (Diff(w[4], w[2])) - { - PIXEL00_0 - } - else - { - PIXEL00_20 - } - PIXEL01_21 - if (Diff(w[8], w[4])) - { - PIXEL10_0 - } - else - { - PIXEL10_100 - } - PIXEL11_11 - break; - } - case 111: - { - if (Diff(w[4], w[2])) - { - PIXEL00_0 - } - else - { - PIXEL00_100 - } - PIXEL01_12 - if (Diff(w[8], w[4])) - { - PIXEL10_0 - } - else - { - PIXEL10_20 - } - PIXEL11_22 - break; - } - case 63: - { - if (Diff(w[4], w[2])) - { - PIXEL00_0 - } - else - { - PIXEL00_100 - } - if (Diff(w[2], w[6])) - { - PIXEL01_0 - } - else - { - PIXEL01_20 - } - PIXEL10_11 - PIXEL11_21 - break; - } - case 159: - { - if (Diff(w[4], w[2])) - { - PIXEL00_0 - } - else - { - PIXEL00_20 - } - if (Diff(w[2], w[6])) - { - PIXEL01_0 - } - else - { - PIXEL01_100 - } - PIXEL10_22 - PIXEL11_12 - break; - } - case 215: - { - PIXEL00_11 - if (Diff(w[2], w[6])) - { - PIXEL01_0 - } - else - { - PIXEL01_100 - } - PIXEL10_21 - if (Diff(w[6], w[8])) - { - PIXEL11_0 - } - else - { - PIXEL11_20 - } - break; - } - case 246: - { - PIXEL00_22 - if (Diff(w[2], w[6])) - { - PIXEL01_0 - } - else - { - PIXEL01_20 - } - PIXEL10_12 - if (Diff(w[6], w[8])) - { - PIXEL11_0 - } - else - { - PIXEL11_100 - } - break; - } - case 254: - { - PIXEL00_10 - if (Diff(w[2], w[6])) - { - PIXEL01_0 - } - else - { - PIXEL01_20 - } - if (Diff(w[8], w[4])) - { - PIXEL10_0 - } - else - { - PIXEL10_20 - } - if (Diff(w[6], w[8])) - { - PIXEL11_0 - } - else - { - PIXEL11_100 - } - break; - } - case 253: - { - PIXEL00_12 - PIXEL01_11 - if (Diff(w[8], w[4])) - { - PIXEL10_0 - } - else - { - PIXEL10_100 - } - if (Diff(w[6], w[8])) - { - PIXEL11_0 - } - else - { - PIXEL11_100 - } - break; - } - case 251: - { - if (Diff(w[4], w[2])) - { - PIXEL00_0 - } - else - { - PIXEL00_20 - } - PIXEL01_10 - if (Diff(w[8], w[4])) - { - PIXEL10_0 - } - else - { - PIXEL10_100 - } - if (Diff(w[6], w[8])) - { - PIXEL11_0 - } - else - { - PIXEL11_20 - } - break; - } - case 239: - { - if (Diff(w[4], w[2])) - { - PIXEL00_0 - } - else - { - PIXEL00_100 - } - PIXEL01_12 - if (Diff(w[8], w[4])) - { - PIXEL10_0 - } - else - { - PIXEL10_100 - } - PIXEL11_11 - break; - } - case 127: - { - if (Diff(w[4], w[2])) - { - PIXEL00_0 - } - else - { - PIXEL00_100 - } - if (Diff(w[2], w[6])) - { - PIXEL01_0 - } - else - { - PIXEL01_20 - } - if (Diff(w[8], w[4])) - { - PIXEL10_0 - } - else - { - PIXEL10_20 - } - PIXEL11_10 - break; - } - case 191: - { - if (Diff(w[4], w[2])) - { - PIXEL00_0 - } - else - { - PIXEL00_100 - } - if (Diff(w[2], w[6])) - { - PIXEL01_0 - } - else - { - PIXEL01_100 - } - PIXEL10_11 - PIXEL11_12 - break; - } - case 223: - { - if (Diff(w[4], w[2])) - { - PIXEL00_0 - } - else - { - PIXEL00_20 - } - if (Diff(w[2], w[6])) - { - PIXEL01_0 - } - else - { - PIXEL01_100 - } - PIXEL10_10 - if (Diff(w[6], w[8])) - { - PIXEL11_0 - } - else - { - PIXEL11_20 - } - break; - } - case 247: - { - PIXEL00_11 - if (Diff(w[2], w[6])) - { - PIXEL01_0 - } - else - { - PIXEL01_100 - } - PIXEL10_12 - if (Diff(w[6], w[8])) - { - PIXEL11_0 - } - else - { - PIXEL11_100 - } - break; - } - case 255: - { - if (Diff(w[4], w[2])) - { - PIXEL00_0 - } - else - { - PIXEL00_100 - } - if (Diff(w[2], w[6])) - { - PIXEL01_0 - } - else - { - PIXEL01_100 - } - if (Diff(w[8], w[4])) - { - PIXEL10_0 - } - else - { - PIXEL10_100 - } - if (Diff(w[6], w[8])) - { - PIXEL11_0 - } - else - { - PIXEL11_100 - } - break; - } - } - pIn+=2; - pOut+=8; - } - pOut+=BpL; - } -} - -FUNCINLINE static ATTRINLINE void InitLUTs(void) -{ - int i, j, k, r, g, b, Y, u, v; - -#ifdef HQ2XMMXASM - hasMMX = SDL_HasMMX(); -#endif - - for (i=0; i<65536; i++) - LUT16to32[i] = ((i & 0xF800) << 8) + ((i & 0x07E0) << 5) + ((i & 0x001F) << 3); - - for (i=0; i<32; i++) - for (j=0; j<64; j++) - for (k=0; k<32; k++) - { - r = i << 3; - g = j << 2; - b = k << 3; - Y = (r + g + b) >> 2; - u = 128 + ((r - b) >> 2); - v = 128 + ((-r + 2*g -b)>>3); - RGBtoYUV[ (i << 11) + (j << 5) + k ] = (Y<<16) + (u<<8) + v; - } -} - -void filter_hq2x(Uint8 *srcPtr, Uint32 srcPitch, Uint8 *dstPtr, Uint32 dstPitch, int width, int height) -{ - static Uint8 doneLUT = 1; - (void)srcPitch; - if(doneLUT) InitLUTs(); - else doneLUT = 0; - hq2x_32( srcPtr, dstPtr, width, height, dstPitch ); -} diff --git a/src/sdl12/filter/hq2x.h b/src/sdl12/filter/hq2x.h deleted file mode 100644 index 49c0b2687..000000000 --- a/src/sdl12/filter/hq2x.h +++ /dev/null @@ -1,1824 +0,0 @@ -case 0 : -case 1 : -case 4 : -case 5 : -case 32 : -case 33 : -case 36 : -case 37 : -case 128 : -case 129 : -case 132 : -case 133 : -case 160 : -case 161 : -case 164 : -case 165 : -{ - P0 = I211(4, 1, 3); - P1 = I211(4, 1, 5); - P2 = I211(4, 3, 7); - P3 = I211(4, 5, 7); -} break; -case 2 : -case 34 : -case 130 : -case 162 : -{ - P0 = I31(4, 0); - P1 = I31(4, 2); - P2 = I211(4, 3, 7); - P3 = I211(4, 5, 7); -} break; -case 3 : -case 35 : -case 131 : -case 163 : -{ - P0 = I31(4, 3); - P1 = I31(4, 2); - P2 = I211(4, 3, 7); - P3 = I211(4, 5, 7); -} break; -case 6 : -case 38 : -case 134 : -case 166 : -{ - P0 = I31(4, 0); - P1 = I31(4, 5); - P2 = I211(4, 3, 7); - P3 = I211(4, 5, 7); -} break; -case 7 : -case 39 : -case 135 : -case 167 : -{ - P0 = I31(4, 3); - P1 = I31(4, 5); - P2 = I211(4, 3, 7); - P3 = I211(4, 5, 7); -} break; -case 8 : -case 12 : -case 136 : -case 140 : -{ - P0 = I31(4, 0); - P1 = I211(4, 1, 5); - P2 = I31(4, 6); - P3 = I211(4, 5, 7); -} break; -case 9 : -case 13 : -case 137 : -case 141 : -{ - P0 = I31(4, 1); - P1 = I211(4, 1, 5); - P2 = I31(4, 6); - P3 = I211(4, 5, 7); -} break; -case 10 : -case 138 : -{ - P1 = I31(4, 2); - P2 = I31(4, 6); - P3 = I211(4, 5, 7); - if (MUL) { - P0 = I31(4, 0); - } else { - P0 = I211(4, 1, 3); - } -} break; -case 11 : -case 139 : -{ - P1 = I31(4, 2); - P2 = I31(4, 6); - P3 = I211(4, 5, 7); - if (MUL) { - P0 = IC(4); - } else { - P0 = I211(4, 1, 3); - } -} break; -case 14 : -case 142 : -{ - P2 = I31(4, 6); - P3 = I211(4, 5, 7); - if (MUL) { - P0 = I31(4, 0); - P1 = I31(4, 5); - } else { - P0 = I332(1, 3, 4); - P1 = I521(4, 1, 5); - } -} break; -case 15 : -case 143 : -{ - P2 = I31(4, 6); - P3 = I211(4, 5, 7); - if (MUL) { - P0 = IC(4); - P1 = I31(4, 5); - } else { - P0 = I332(1, 3, 4); - P1 = I521(4, 1, 5); - } -} break; -case 16 : -case 17 : -case 48 : -case 49 : -{ - P0 = I211(4, 1, 3); - P1 = I31(4, 2); - P2 = I211(4, 3, 7); - P3 = I31(4, 8); -} break; -case 18 : -case 50 : -{ - P0 = I31(4, 0); - P2 = I211(4, 3, 7); - P3 = I31(4, 8); - if (MUR) { - P1 = I31(4, 2); - } else { - P1 = I211(4, 1, 5); - } -} break; -case 19 : -case 51 : -{ - P2 = I211(4, 3, 7); - P3 = I31(4, 8); - if (MUR) { - P0 = I31(4, 3); - P1 = I31(4, 2); - } else { - P0 = I521(4, 1, 3); - P1 = I332(1, 5, 4); - } -} break; -case 20 : -case 21 : -case 52 : -case 53 : -{ - P0 = I211(4, 1, 3); - P1 = I31(4, 1); - P2 = I211(4, 3, 7); - P3 = I31(4, 8); -} break; -case 22 : -case 54 : -{ - P0 = I31(4, 0); - P2 = I211(4, 3, 7); - P3 = I31(4, 8); - if (MUR) { - P1 = IC(4); - } else { - P1 = I211(4, 1, 5); - } -} break; -case 23 : -case 55 : -{ - P2 = I211(4, 3, 7); - P3 = I31(4, 8); - if (MUR) { - P0 = I31(4, 3); - P1 = IC(4); - } else { - P0 = I521(4, 1, 3); - P1 = I332(1, 5, 4); - } -} break; -case 24 : -case 66 : -{ - P0 = I31(4, 0); - P1 = I31(4, 2); - P2 = I31(4, 6); - P3 = I31(4, 8); -} break; -case 25 : -{ - P0 = I31(4, 1); - P1 = I31(4, 2); - P2 = I31(4, 6); - P3 = I31(4, 8); -} break; -case 26 : -case 31 : -case 95 : -{ - P2 = I31(4, 6); - P3 = I31(4, 8); - if (MUL) { - P0 = IC(4); - } else { - P0 = I211(4, 1, 3); - } - if (MUR) { - P1 = IC(4); - } else { - P1 = I211(4, 1, 5); - } -} break; -case 27 : -case 75 : -{ - P1 = I31(4, 2); - P2 = I31(4, 6); - P3 = I31(4, 8); - if (MUL) { - P0 = IC(4); - } else { - P0 = I211(4, 1, 3); - } -} break; -case 28 : -{ - P0 = I31(4, 0); - P1 = I31(4, 1); - P2 = I31(4, 6); - P3 = I31(4, 8); -} break; -case 29 : -{ - P0 = I31(4, 1); - P1 = I31(4, 1); - P2 = I31(4, 6); - P3 = I31(4, 8); -} break; -case 30 : -case 86 : -{ - P0 = I31(4, 0); - P2 = I31(4, 6); - P3 = I31(4, 8); - if (MUR) { - P1 = IC(4); - } else { - P1 = I211(4, 1, 5); - } -} break; -case 40 : -case 44 : -case 168 : -case 172 : -{ - P0 = I31(4, 0); - P1 = I211(4, 1, 5); - P2 = I31(4, 7); - P3 = I211(4, 5, 7); -} break; -case 41 : -case 45 : -case 169 : -case 173 : -{ - P0 = I31(4, 1); - P1 = I211(4, 1, 5); - P2 = I31(4, 7); - P3 = I211(4, 5, 7); -} break; -case 42 : -case 170 : -{ - P1 = I31(4, 2); - P3 = I211(4, 5, 7); - if (MUL) { - P0 = I31(4, 0); - P2 = I31(4, 7); - } else { - P0 = I332(1, 3, 4); - P2 = I521(4, 3, 7); - } -} break; -case 43 : -case 171 : -{ - P1 = I31(4, 2); - P3 = I211(4, 5, 7); - if (MUL) { - P0 = IC(4); - P2 = I31(4, 7); - } else { - P0 = I332(1, 3, 4); - P2 = I521(4, 3, 7); - } -} break; -case 46 : -case 174 : -{ - P1 = I31(4, 5); - P2 = I31(4, 7); - P3 = I211(4, 5, 7); - if (MUL) { - P0 = I31(4, 0); - } else { - P0 = I611(4, 1, 3); - } -} break; -case 47 : -case 175 : -{ - P1 = I31(4, 5); - P2 = I31(4, 7); - P3 = I211(4, 5, 7); - if (MUL) { - P0 = IC(4); - } else { - P0 = I1411(4, 1, 3); - } -} break; -case 56 : -{ - P0 = I31(4, 0); - P1 = I31(4, 2); - P2 = I31(4, 7); - P3 = I31(4, 8); -} break; -case 57 : -{ - P0 = I31(4, 1); - P1 = I31(4, 2); - P2 = I31(4, 7); - P3 = I31(4, 8); -} break; -case 58 : -{ - P2 = I31(4, 7); - P3 = I31(4, 8); - if (MUL) { - P0 = I31(4, 0); - } else { - P0 = I611(4, 1, 3); - } - if (MUR) { - P1 = I31(4, 2); - } else { - P1 = I611(4, 1, 5); - } -} break; -case 59 : -{ - P2 = I31(4, 7); - P3 = I31(4, 8); - if (MUL) { - P0 = IC(4); - } else { - P0 = I211(4, 1, 3); - } - if (MUR) { - P1 = I31(4, 2); - } else { - P1 = I611(4, 1, 5); - } -} break; -case 60 : -{ - P0 = I31(4, 0); - P1 = I31(4, 1); - P2 = I31(4, 7); - P3 = I31(4, 8); -} break; -case 61 : -{ - P0 = I31(4, 1); - P1 = I31(4, 1); - P2 = I31(4, 7); - P3 = I31(4, 8); -} break; -case 62 : -{ - P0 = I31(4, 0); - P2 = I31(4, 7); - P3 = I31(4, 8); - if (MUR) { - P1 = IC(4); - } else { - P1 = I211(4, 1, 5); - } -} break; -case 63 : -{ - P2 = I31(4, 7); - P3 = I31(4, 8); - if (MUL) { - P0 = IC(4); - } else { - P0 = I1411(4, 1, 3); - } - if (MUR) { - P1 = IC(4); - } else { - P1 = I211(4, 1, 5); - } -} break; -case 64 : -case 65 : -case 68 : -case 69 : -{ - P0 = I211(4, 1, 3); - P1 = I211(4, 1, 5); - P2 = I31(4, 6); - P3 = I31(4, 8); -} break; -case 67 : -{ - P0 = I31(4, 3); - P1 = I31(4, 2); - P2 = I31(4, 6); - P3 = I31(4, 8); -} break; -case 70 : -{ - P0 = I31(4, 0); - P1 = I31(4, 5); - P2 = I31(4, 6); - P3 = I31(4, 8); -} break; -case 71 : -{ - P0 = I31(4, 3); - P1 = I31(4, 5); - P2 = I31(4, 6); - P3 = I31(4, 8); -} break; -case 72 : -case 76 : -{ - P0 = I31(4, 0); - P1 = I211(4, 1, 5); - P3 = I31(4, 8); - if (MDL) { - P2 = I31(4, 6); - } else { - P2 = I211(4, 3, 7); - } -} break; -case 73 : -case 77 : -{ - P1 = I211(4, 1, 5); - P3 = I31(4, 8); - if (MDL) { - P0 = I31(4, 1); - P2 = I31(4, 6); - } else { - P0 = I521(4, 3, 1); - P2 = I332(3, 7, 4); - } -} break; -case 74 : -case 107 : -case 123 : -{ - P1 = I31(4, 2); - P3 = I31(4, 8); - if (MDL) { - P2 = IC(4); - } else { - P2 = I211(4, 3, 7); - } - if (MUL) { - P0 = IC(4); - } else { - P0 = I211(4, 1, 3); - } -} break; -case 78 : -{ - P1 = I31(4, 5); - P3 = I31(4, 8); - if (MDL) { - P2 = I31(4, 6); - } else { - P2 = I611(4, 3, 7); - } - if (MUL) { - P0 = I31(4, 0); - } else { - P0 = I611(4, 1, 3); - } -} break; -case 79 : -{ - P1 = I31(4, 5); - P3 = I31(4, 8); - if (MDL) { - P2 = I31(4, 6); - } else { - P2 = I611(4, 3, 7); - } - if (MUL) { - P0 = IC(4); - } else { - P0 = I211(4, 1, 3); - } -} break; -case 80 : -case 81 : -{ - P0 = I211(4, 1, 3); - P1 = I31(4, 2); - P2 = I31(4, 6); - if (MDR) { - P3 = I31(4, 8); - } else { - P3 = I211(4, 5, 7); - } -} break; -case 82 : -case 214 : -case 222 : -{ - P0 = I31(4, 0); - P2 = I31(4, 6); - if (MDR) { - P3 = IC(4); - } else { - P3 = I211(4, 5, 7); - } - if (MUR) { - P1 = IC(4); - } else { - P1 = I211(4, 1, 5); - } -} break; -case 83 : -{ - P0 = I31(4, 3); - P2 = I31(4, 6); - if (MDR) { - P3 = I31(4, 8); - } else { - P3 = I611(4, 5, 7); - } - if (MUR) { - P1 = I31(4, 2); - } else { - P1 = I611(4, 1, 5); - } -} break; -case 84 : -case 85 : -{ - P0 = I211(4, 1, 3); - P2 = I31(4, 6); - if (MDR) { - P1 = I31(4, 1); - P3 = I31(4, 8); - } else { - P1 = I521(4, 5, 1); - P3 = I332(5, 7, 4); - } -} break; -case 87 : -{ - P0 = I31(4, 3); - P2 = I31(4, 6); - if (MDR) { - P3 = I31(4, 8); - } else { - P3 = I611(4, 5, 7); - } - if (MUR) { - P1 = IC(4); - } else { - P1 = I211(4, 1, 5); - } -} break; -case 88 : -case 248 : -case 250 : -{ - P0 = I31(4, 0); - P1 = I31(4, 2); - if (MDL) { - P2 = IC(4); - } else { - P2 = I211(4, 3, 7); - } - if (MDR) { - P3 = IC(4); - } else { - P3 = I211(4, 5, 7); - } -} break; -case 89 : -{ - P0 = I31(4, 1); - P1 = I31(4, 2); - if (MDL) { - P2 = I31(4, 6); - } else { - P2 = I611(4, 3, 7); - } - if (MDR) { - P3 = I31(4, 8); - } else { - P3 = I611(4, 5, 7); - } -} break; -case 90 : -{ - if (MDL) { - P2 = I31(4, 6); - } else { - P2 = I611(4, 3, 7); - } - if (MDR) { - P3 = I31(4, 8); - } else { - P3 = I611(4, 5, 7); - } - if (MUL) { - P0 = I31(4, 0); - } else { - P0 = I611(4, 1, 3); - } - if (MUR) { - P1 = I31(4, 2); - } else { - P1 = I611(4, 1, 5); - } -} break; -case 91 : -{ - if (MDL) { - P2 = I31(4, 6); - } else { - P2 = I611(4, 3, 7); - } - if (MDR) { - P3 = I31(4, 8); - } else { - P3 = I611(4, 5, 7); - } - if (MUL) { - P0 = IC(4); - } else { - P0 = I211(4, 1, 3); - } - if (MUR) { - P1 = I31(4, 2); - } else { - P1 = I611(4, 1, 5); - } -} break; -case 92 : -{ - P0 = I31(4, 0); - P1 = I31(4, 1); - if (MDL) { - P2 = I31(4, 6); - } else { - P2 = I611(4, 3, 7); - } - if (MDR) { - P3 = I31(4, 8); - } else { - P3 = I611(4, 5, 7); - } -} break; -case 93 : -{ - P0 = I31(4, 1); - P1 = I31(4, 1); - if (MDL) { - P2 = I31(4, 6); - } else { - P2 = I611(4, 3, 7); - } - if (MDR) { - P3 = I31(4, 8); - } else { - P3 = I611(4, 5, 7); - } -} break; -case 94 : -{ - if (MDL) { - P2 = I31(4, 6); - } else { - P2 = I611(4, 3, 7); - } - if (MDR) { - P3 = I31(4, 8); - } else { - P3 = I611(4, 5, 7); - } - if (MUL) { - P0 = I31(4, 0); - } else { - P0 = I611(4, 1, 3); - } - if (MUR) { - P1 = IC(4); - } else { - P1 = I211(4, 1, 5); - } -} break; -case 96 : -case 97 : -case 100 : -case 101 : -{ - P0 = I211(4, 1, 3); - P1 = I211(4, 1, 5); - P2 = I31(4, 3); - P3 = I31(4, 8); -} break; -case 98 : -{ - P0 = I31(4, 0); - P1 = I31(4, 2); - P2 = I31(4, 3); - P3 = I31(4, 8); -} break; -case 99 : -{ - P0 = I31(4, 3); - P1 = I31(4, 2); - P2 = I31(4, 3); - P3 = I31(4, 8); -} break; -case 102 : -{ - P0 = I31(4, 0); - P1 = I31(4, 5); - P2 = I31(4, 3); - P3 = I31(4, 8); -} break; -case 103 : -{ - P0 = I31(4, 3); - P1 = I31(4, 5); - P2 = I31(4, 3); - P3 = I31(4, 8); -} break; -case 104 : -case 108 : -{ - P0 = I31(4, 0); - P1 = I211(4, 1, 5); - P3 = I31(4, 8); - if (MDL) { - P2 = IC(4); - } else { - P2 = I211(4, 3, 7); - } -} break; -case 105 : -case 109 : -{ - P1 = I211(4, 1, 5); - P3 = I31(4, 8); - if (MDL) { - P0 = I31(4, 1); - P2 = IC(4); - } else { - P0 = I521(4, 3, 1); - P2 = I332(3, 7, 4); - } -} break; -case 106 : -case 120 : -{ - P0 = I31(4, 0); - P1 = I31(4, 2); - P3 = I31(4, 8); - if (MDL) { - P2 = IC(4); - } else { - P2 = I211(4, 3, 7); - } -} break; -case 110 : -{ - P0 = I31(4, 0); - P1 = I31(4, 5); - P3 = I31(4, 8); - if (MDL) { - P2 = IC(4); - } else { - P2 = I211(4, 3, 7); - } -} break; -case 111 : -{ - P1 = I31(4, 5); - P3 = I31(4, 8); - if (MDL) { - P2 = IC(4); - } else { - P2 = I211(4, 3, 7); - } - if (MUL) { - P0 = IC(4); - } else { - P0 = I1411(4, 1, 3); - } -} break; -case 112 : -case 113 : -{ - P0 = I211(4, 1, 3); - P1 = I31(4, 2); - if (MDR) { - P2 = I31(4, 3); - P3 = I31(4, 8); - } else { - P2 = I521(4, 7, 3); - P3 = I332(5, 7, 4); - } -} break; -case 114 : -{ - P0 = I31(4, 0); - P2 = I31(4, 3); - if (MDR) { - P3 = I31(4, 8); - } else { - P3 = I611(4, 5, 7); - } - if (MUR) { - P1 = I31(4, 2); - } else { - P1 = I611(4, 1, 5); - } -} break; -case 115 : -{ - P0 = I31(4, 3); - P2 = I31(4, 3); - if (MDR) { - P3 = I31(4, 8); - } else { - P3 = I611(4, 5, 7); - } - if (MUR) { - P1 = I31(4, 2); - } else { - P1 = I611(4, 1, 5); - } -} break; -case 116 : -case 117 : -{ - P0 = I211(4, 1, 3); - P1 = I31(4, 1); - P2 = I31(4, 3); - if (MDR) { - P3 = I31(4, 8); - } else { - P3 = I611(4, 5, 7); - } -} break; -case 118 : -{ - P0 = I31(4, 0); - P2 = I31(4, 3); - P3 = I31(4, 8); - if (MUR) { - P1 = IC(4); - } else { - P1 = I211(4, 1, 5); - } -} break; -case 119 : -{ - P2 = I31(4, 3); - P3 = I31(4, 8); - if (MUR) { - P0 = I31(4, 3); - P1 = IC(4); - } else { - P0 = I521(4, 1, 3); - P1 = I332(1, 5, 4); - } -} break; -case 121 : -{ - P0 = I31(4, 1); - P1 = I31(4, 2); - if (MDL) { - P2 = IC(4); - } else { - P2 = I211(4, 3, 7); - } - if (MDR) { - P3 = I31(4, 8); - } else { - P3 = I611(4, 5, 7); - } -} break; -case 122 : -{ - if (MDL) { - P2 = IC(4); - } else { - P2 = I211(4, 3, 7); - } - if (MDR) { - P3 = I31(4, 8); - } else { - P3 = I611(4, 5, 7); - } - if (MUL) { - P0 = I31(4, 0); - } else { - P0 = I611(4, 1, 3); - } - if (MUR) { - P1 = I31(4, 2); - } else { - P1 = I611(4, 1, 5); - } -} break; -case 124 : -{ - P0 = I31(4, 0); - P1 = I31(4, 1); - P3 = I31(4, 8); - if (MDL) { - P2 = IC(4); - } else { - P2 = I211(4, 3, 7); - } -} break; -case 125 : -{ - P1 = I31(4, 1); - P3 = I31(4, 8); - if (MDL) { - P0 = I31(4, 1); - P2 = IC(4); - } else { - P0 = I521(4, 3, 1); - P2 = I332(3, 7, 4); - } -} break; -case 126 : -{ - P0 = I31(4, 0); - P3 = I31(4, 8); - if (MDL) { - P2 = IC(4); - } else { - P2 = I211(4, 3, 7); - } - if (MUR) { - P1 = IC(4); - } else { - P1 = I211(4, 1, 5); - } -} break; -case 127 : -{ - P3 = I31(4, 8); - if (MDL) { - P2 = IC(4); - } else { - P2 = I211(4, 3, 7); - } - if (MUL) { - P0 = IC(4); - } else { - P0 = I1411(4, 1, 3); - } - if (MUR) { - P1 = IC(4); - } else { - P1 = I211(4, 1, 5); - } -} break; -case 144 : -case 145 : -case 176 : -case 177 : -{ - P0 = I211(4, 1, 3); - P1 = I31(4, 2); - P2 = I211(4, 3, 7); - P3 = I31(4, 7); -} break; -case 146 : -case 178 : -{ - P0 = I31(4, 0); - P2 = I211(4, 3, 7); - if (MUR) { - P1 = I31(4, 2); - P3 = I31(4, 7); - } else { - P1 = I332(1, 5, 4); - P3 = I521(4, 5, 7); - } -} break; -case 147 : -case 179 : -{ - P0 = I31(4, 3); - P2 = I211(4, 3, 7); - P3 = I31(4, 7); - if (MUR) { - P1 = I31(4, 2); - } else { - P1 = I611(4, 1, 5); - } -} break; -case 148 : -case 149 : -case 180 : -case 181 : -{ - P0 = I211(4, 1, 3); - P1 = I31(4, 1); - P2 = I211(4, 3, 7); - P3 = I31(4, 7); -} break; -case 150 : -case 182 : -{ - P0 = I31(4, 0); - P2 = I211(4, 3, 7); - if (MUR) { - P1 = IC(4); - P3 = I31(4, 7); - } else { - P1 = I332(1, 5, 4); - P3 = I521(4, 5, 7); - } -} break; -case 151 : -case 183 : -{ - P0 = I31(4, 3); - P2 = I211(4, 3, 7); - P3 = I31(4, 7); - if (MUR) { - P1 = IC(4); - } else { - P1 = I1411(4, 1, 5); - } -} break; -case 152 : -{ - P0 = I31(4, 0); - P1 = I31(4, 2); - P2 = I31(4, 6); - P3 = I31(4, 7); -} break; -case 153 : -{ - P0 = I31(4, 1); - P1 = I31(4, 2); - P2 = I31(4, 6); - P3 = I31(4, 7); -} break; -case 154 : -{ - P2 = I31(4, 6); - P3 = I31(4, 7); - if (MUL) { - P0 = I31(4, 0); - } else { - P0 = I611(4, 1, 3); - } - if (MUR) { - P1 = I31(4, 2); - } else { - P1 = I611(4, 1, 5); - } -} break; -case 155 : -{ - P1 = I31(4, 2); - P2 = I31(4, 6); - P3 = I31(4, 7); - if (MUL) { - P0 = IC(4); - } else { - P0 = I211(4, 1, 3); - } -} break; -case 156 : -{ - P0 = I31(4, 0); - P1 = I31(4, 1); - P2 = I31(4, 6); - P3 = I31(4, 7); -} break; -case 157 : -{ - P0 = I31(4, 1); - P1 = I31(4, 1); - P2 = I31(4, 6); - P3 = I31(4, 7); -} break; -case 158 : -{ - P2 = I31(4, 6); - P3 = I31(4, 7); - if (MUL) { - P0 = I31(4, 0); - } else { - P0 = I611(4, 1, 3); - } - if (MUR) { - P1 = IC(4); - } else { - P1 = I211(4, 1, 5); - } -} break; -case 159 : -{ - P2 = I31(4, 6); - P3 = I31(4, 7); - if (MUL) { - P0 = IC(4); - } else { - P0 = I211(4, 1, 3); - } - if (MUR) { - P1 = IC(4); - } else { - P1 = I1411(4, 1, 5); - } -} break; -case 184 : -{ - P0 = I31(4, 0); - P1 = I31(4, 2); - P2 = I31(4, 7); - P3 = I31(4, 7); -} break; -case 185 : -{ - P0 = I31(4, 1); - P1 = I31(4, 2); - P2 = I31(4, 7); - P3 = I31(4, 7); -} break; -case 186 : -{ - P2 = I31(4, 7); - P3 = I31(4, 7); - if (MUL) { - P0 = I31(4, 0); - } else { - P0 = I611(4, 1, 3); - } - if (MUR) { - P1 = I31(4, 2); - } else { - P1 = I611(4, 1, 5); - } -} break; -case 187 : -{ - P1 = I31(4, 2); - P3 = I31(4, 7); - if (MUL) { - P0 = IC(4); - P2 = I31(4, 7); - } else { - P0 = I332(1, 3, 4); - P2 = I521(4, 3, 7); - } -} break; -case 188 : -{ - P0 = I31(4, 0); - P1 = I31(4, 1); - P2 = I31(4, 7); - P3 = I31(4, 7); -} break; -case 189 : -{ - P0 = I31(4, 1); - P1 = I31(4, 1); - P2 = I31(4, 7); - P3 = I31(4, 7); -} break; -case 190 : -{ - P0 = I31(4, 0); - P2 = I31(4, 7); - if (MUR) { - P1 = IC(4); - P3 = I31(4, 7); - } else { - P1 = I332(1, 5, 4); - P3 = I521(4, 5, 7); - } -} break; -case 191 : -{ - P2 = I31(4, 7); - P3 = I31(4, 7); - if (MUL) { - P0 = IC(4); - } else { - P0 = I1411(4, 1, 3); - } - if (MUR) { - P1 = IC(4); - } else { - P1 = I1411(4, 1, 5); - } -} break; -case 192 : -case 193 : -case 196 : -case 197 : -{ - P0 = I211(4, 1, 3); - P1 = I211(4, 1, 5); - P2 = I31(4, 6); - P3 = I31(4, 5); -} break; -case 194 : -{ - P0 = I31(4, 0); - P1 = I31(4, 2); - P2 = I31(4, 6); - P3 = I31(4, 5); -} break; -case 195 : -{ - P0 = I31(4, 3); - P1 = I31(4, 2); - P2 = I31(4, 6); - P3 = I31(4, 5); -} break; -case 198 : -{ - P0 = I31(4, 0); - P1 = I31(4, 5); - P2 = I31(4, 6); - P3 = I31(4, 5); -} break; -case 199 : -{ - P0 = I31(4, 3); - P1 = I31(4, 5); - P2 = I31(4, 6); - P3 = I31(4, 5); -} break; -case 200 : -case 204 : -{ - P0 = I31(4, 0); - P1 = I211(4, 1, 5); - if (MDL) { - P2 = I31(4, 6); - P3 = I31(4, 5); - } else { - P2 = I332(3, 7, 4); - P3 = I521(4, 7, 5); - } -} break; -case 201 : -case 205 : -{ - P0 = I31(4, 1); - P1 = I211(4, 1, 5); - P3 = I31(4, 5); - if (MDL) { - P2 = I31(4, 6); - } else { - P2 = I611(4, 3, 7); - } -} break; -case 202 : -{ - P1 = I31(4, 2); - P3 = I31(4, 5); - if (MDL) { - P2 = I31(4, 6); - } else { - P2 = I611(4, 3, 7); - } - if (MUL) { - P0 = I31(4, 0); - } else { - P0 = I611(4, 1, 3); - } -} break; -case 203 : -{ - P1 = I31(4, 2); - P2 = I31(4, 6); - P3 = I31(4, 5); - if (MUL) { - P0 = IC(4); - } else { - P0 = I211(4, 1, 3); - } -} break; -case 206 : -{ - P1 = I31(4, 5); - P3 = I31(4, 5); - if (MDL) { - P2 = I31(4, 6); - } else { - P2 = I611(4, 3, 7); - } - if (MUL) { - P0 = I31(4, 0); - } else { - P0 = I611(4, 1, 3); - } -} break; -case 207 : -{ - P2 = I31(4, 6); - P3 = I31(4, 5); - if (MUL) { - P0 = IC(4); - P1 = I31(4, 5); - } else { - P0 = I332(1, 3, 4); - P1 = I521(4, 1, 5); - } -} break; -case 208 : -case 209 : -{ - P0 = I211(4, 1, 3); - P1 = I31(4, 2); - P2 = I31(4, 6); - if (MDR) { - P3 = IC(4); - } else { - P3 = I211(4, 5, 7); - } -} break; -case 210 : -case 216 : -{ - P0 = I31(4, 0); - P1 = I31(4, 2); - P2 = I31(4, 6); - if (MDR) { - P3 = IC(4); - } else { - P3 = I211(4, 5, 7); - } -} break; -case 211 : -{ - P0 = I31(4, 3); - P1 = I31(4, 2); - P2 = I31(4, 6); - if (MDR) { - P3 = IC(4); - } else { - P3 = I211(4, 5, 7); - } -} break; -case 212 : -case 213 : -{ - P0 = I211(4, 1, 3); - P2 = I31(4, 6); - if (MDR) { - P1 = I31(4, 1); - P3 = IC(4); - } else { - P1 = I521(4, 5, 1); - P3 = I332(5, 7, 4); - } -} break; -case 215 : -{ - P0 = I31(4, 3); - P2 = I31(4, 6); - if (MDR) { - P3 = IC(4); - } else { - P3 = I211(4, 5, 7); - } - if (MUR) { - P1 = IC(4); - } else { - P1 = I1411(4, 1, 5); - } -} break; -case 217 : -{ - P0 = I31(4, 1); - P1 = I31(4, 2); - P2 = I31(4, 6); - if (MDR) { - P3 = IC(4); - } else { - P3 = I211(4, 5, 7); - } -} break; -case 218 : -{ - if (MDL) { - P2 = I31(4, 6); - } else { - P2 = I611(4, 3, 7); - } - if (MDR) { - P3 = IC(4); - } else { - P3 = I211(4, 5, 7); - } - if (MUL) { - P0 = I31(4, 0); - } else { - P0 = I611(4, 1, 3); - } - if (MUR) { - P1 = I31(4, 2); - } else { - P1 = I611(4, 1, 5); - } -} break; -case 219 : -{ - P1 = I31(4, 2); - P2 = I31(4, 6); - if (MDR) { - P3 = IC(4); - } else { - P3 = I211(4, 5, 7); - } - if (MUL) { - P0 = IC(4); - } else { - P0 = I211(4, 1, 3); - } -} break; -case 220 : -{ - P0 = I31(4, 0); - P1 = I31(4, 1); - if (MDL) { - P2 = I31(4, 6); - } else { - P2 = I611(4, 3, 7); - } - if (MDR) { - P3 = IC(4); - } else { - P3 = I211(4, 5, 7); - } -} break; -case 221 : -{ - P0 = I31(4, 1); - P2 = I31(4, 6); - if (MDR) { - P1 = I31(4, 1); - P3 = IC(4); - } else { - P1 = I521(4, 5, 1); - P3 = I332(5, 7, 4); - } -} break; -case 223 : -{ - P2 = I31(4, 6); - if (MDR) { - P3 = IC(4); - } else { - P3 = I211(4, 5, 7); - } - if (MUL) { - P0 = IC(4); - } else { - P0 = I211(4, 1, 3); - } - if (MUR) { - P1 = IC(4); - } else { - P1 = I1411(4, 1, 5); - } -} break; -case 224 : -case 225 : -case 228 : -case 229 : -{ - P0 = I211(4, 1, 3); - P1 = I211(4, 1, 5); - P2 = I31(4, 3); - P3 = I31(4, 5); -} break; -case 226 : -{ - P0 = I31(4, 0); - P1 = I31(4, 2); - P2 = I31(4, 3); - P3 = I31(4, 5); -} break; -case 227 : -{ - P0 = I31(4, 3); - P1 = I31(4, 2); - P2 = I31(4, 3); - P3 = I31(4, 5); -} break; -case 230 : -{ - P0 = I31(4, 0); - P1 = I31(4, 5); - P2 = I31(4, 3); - P3 = I31(4, 5); -} break; -case 231 : -{ - P0 = I31(4, 3); - P1 = I31(4, 5); - P2 = I31(4, 3); - P3 = I31(4, 5); -} break; -case 232 : -case 236 : -{ - P0 = I31(4, 0); - P1 = I211(4, 1, 5); - if (MDL) { - P2 = IC(4); - P3 = I31(4, 5); - } else { - P2 = I332(3, 7, 4); - P3 = I521(4, 7, 5); - } -} break; -case 233 : -case 237 : -{ - P0 = I31(4, 1); - P1 = I211(4, 1, 5); - P3 = I31(4, 5); - if (MDL) { - P2 = IC(4); - } else { - P2 = I1411(4, 3, 7); - } -} break; -case 234 : -{ - P1 = I31(4, 2); - P3 = I31(4, 5); - if (MDL) { - P2 = IC(4); - } else { - P2 = I211(4, 3, 7); - } - if (MUL) { - P0 = I31(4, 0); - } else { - P0 = I611(4, 1, 3); - } -} break; -case 235 : -{ - P1 = I31(4, 2); - P3 = I31(4, 5); - if (MDL) { - P2 = IC(4); - } else { - P2 = I1411(4, 3, 7); - } - if (MUL) { - P0 = IC(4); - } else { - P0 = I211(4, 1, 3); - } -} break; -case 238 : -{ - P0 = I31(4, 0); - P1 = I31(4, 5); - if (MDL) { - P2 = IC(4); - P3 = I31(4, 5); - } else { - P2 = I332(3, 7, 4); - P3 = I521(4, 7, 5); - } -} break; -case 239 : -{ - P1 = I31(4, 5); - P3 = I31(4, 5); - if (MDL) { - P2 = IC(4); - } else { - P2 = I1411(4, 3, 7); - } - if (MUL) { - P0 = IC(4); - } else { - P0 = I1411(4, 1, 3); - } -} break; -case 240 : -case 241 : -{ - P0 = I211(4, 1, 3); - P1 = I31(4, 2); - if (MDR) { - P2 = I31(4, 3); - P3 = IC(4); - } else { - P2 = I521(4, 7, 3); - P3 = I332(5, 7, 4); - } -} break; -case 242 : -{ - P0 = I31(4, 0); - P2 = I31(4, 3); - if (MDR) { - P3 = IC(4); - } else { - P3 = I211(4, 5, 7); - } - if (MUR) { - P1 = I31(4, 2); - } else { - P1 = I611(4, 1, 5); - } -} break; -case 243 : -{ - P0 = I31(4, 3); - P1 = I31(4, 2); - if (MDR) { - P2 = I31(4, 3); - P3 = IC(4); - } else { - P2 = I521(4, 7, 3); - P3 = I332(5, 7, 4); - } -} break; -case 244 : -case 245 : -{ - P0 = I211(4, 1, 3); - P1 = I31(4, 1); - P2 = I31(4, 3); - if (MDR) { - P3 = IC(4); - } else { - P3 = I1411(4, 5, 7); - } -} break; -case 246 : -{ - P0 = I31(4, 0); - P2 = I31(4, 3); - if (MDR) { - P3 = IC(4); - } else { - P3 = I1411(4, 5, 7); - } - if (MUR) { - P1 = IC(4); - } else { - P1 = I211(4, 1, 5); - } -} break; -case 247 : -{ - P0 = I31(4, 3); - P2 = I31(4, 3); - if (MDR) { - P3 = IC(4); - } else { - P3 = I1411(4, 5, 7); - } - if (MUR) { - P1 = IC(4); - } else { - P1 = I1411(4, 1, 5); - } -} break; -case 249 : -{ - P0 = I31(4, 1); - P1 = I31(4, 2); - if (MDL) { - P2 = IC(4); - } else { - P2 = I1411(4, 3, 7); - } - if (MDR) { - P3 = IC(4); - } else { - P3 = I211(4, 5, 7); - } -} break; -case 251 : -{ - P1 = I31(4, 2); - if (MDL) { - P2 = IC(4); - } else { - P2 = I1411(4, 3, 7); - } - if (MDR) { - P3 = IC(4); - } else { - P3 = I211(4, 5, 7); - } - if (MUL) { - P0 = IC(4); - } else { - P0 = I211(4, 1, 3); - } -} break; -case 252 : -{ - P0 = I31(4, 0); - P1 = I31(4, 1); - if (MDL) { - P2 = IC(4); - } else { - P2 = I211(4, 3, 7); - } - if (MDR) { - P3 = IC(4); - } else { - P3 = I1411(4, 5, 7); - } -} break; -case 253 : -{ - P0 = I31(4, 1); - P1 = I31(4, 1); - if (MDL) { - P2 = IC(4); - } else { - P2 = I1411(4, 3, 7); - } - if (MDR) { - P3 = IC(4); - } else { - P3 = I1411(4, 5, 7); - } -} break; -case 254 : -{ - P0 = I31(4, 0); - if (MDL) { - P2 = IC(4); - } else { - P2 = I211(4, 3, 7); - } - if (MDR) { - P3 = IC(4); - } else { - P3 = I1411(4, 5, 7); - } - if (MUR) { - P1 = IC(4); - } else { - P1 = I211(4, 1, 5); - } -} break; -case 255 : -{ - if (MDL) { - P2 = IC(4); - } else { - P2 = I1411(4, 3, 7); - } - if (MDR) { - P3 = IC(4); - } else { - P3 = I1411(4, 5, 7); - } - if (MUL) { - P0 = IC(4); - } else { - P0 = I1411(4, 1, 3); - } - if (MUR) { - P1 = IC(4); - } else { - P1 = I1411(4, 1, 5); - } -} break; diff --git a/src/sdl12/filter/interp.h b/src/sdl12/filter/interp.h deleted file mode 100644 index e994387fb..000000000 --- a/src/sdl12/filter/interp.h +++ /dev/null @@ -1,306 +0,0 @@ -/* - * This file is part of the Advance project. - * - * Copyright (C) 2003 Andrea Mazzoleni - * - * 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 2 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, write to the Free Software - * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - * - * In addition, as a special exception, Andrea Mazzoleni - * gives permission to link the code of this program with - * the MAME library (or with modified versions of MAME that use the - * same license as MAME), and distribute linked combinations including - * the two. You must obey the GNU General Public License in all - * respects for all of the code used other than MAME. If you modify - * this file, you may extend this exception to your version of the - * file, but you are not obligated to do so. If you do not wish to - * do so, delete this exception statement from your version. - */ - -#ifndef __INTERP_H -#define __INTERP_H - -/***************************************************************************/ -/* Basic types */ - -/***************************************************************************/ -/* interpolation */ - -static Uint32 interp_mask[2] = {0xF81F,0x07E0}; -static Uint32 interp_bits_per_pixel = 16; - -#define INTERP_16_MASK_1(v) (v & interp_mask[0]) -#define INTERP_16_MASK_2(v) (v & interp_mask[1]) - -FUNCINLINE static ATTRINLINE Uint16 interp_16_521(Uint16 p1, Uint16 p2, Uint16 p3) -{ - return (Uint16)(INTERP_16_MASK_1((INTERP_16_MASK_1(p1)*5 + INTERP_16_MASK_1(p2)*2 + INTERP_16_MASK_1(p3)*1) / 8) - | INTERP_16_MASK_2((INTERP_16_MASK_2(p1)*5 + INTERP_16_MASK_2(p2)*2 + INTERP_16_MASK_2(p3)*1) / 8)); -} - -FUNCINLINE static ATTRINLINE Uint16 interp_16_332(Uint16 p1, Uint16 p2, Uint16 p3) -{ - return (Uint16)(INTERP_16_MASK_1((INTERP_16_MASK_1(p1)*3 + INTERP_16_MASK_1(p2)*3 + INTERP_16_MASK_1(p3)*2) / 8) - | INTERP_16_MASK_2((INTERP_16_MASK_2(p1)*3 + INTERP_16_MASK_2(p2)*3 + INTERP_16_MASK_2(p3)*2) / 8)); -} - -FUNCINLINE static ATTRINLINE Uint16 interp_16_611(Uint16 p1, Uint16 p2, Uint16 p3) -{ - return (Uint16)(INTERP_16_MASK_1((INTERP_16_MASK_1(p1)*6 + INTERP_16_MASK_1(p2) + INTERP_16_MASK_1(p3)) / 8) - | INTERP_16_MASK_2((INTERP_16_MASK_2(p1)*6 + INTERP_16_MASK_2(p2) + INTERP_16_MASK_2(p3)) / 8)); -} - -/* -FUNCINLINE static ATTRINLINE Uint16 interp_16_71(Uint16 p1, Uint16 p2) -{ - return (Uint16)(INTERP_16_MASK_1((INTERP_16_MASK_1(p1)*7 + INTERP_16_MASK_1(p2)) / 8) - | INTERP_16_MASK_2((INTERP_16_MASK_2(p1)*7 + INTERP_16_MASK_2(p2)) / 8)); -} -*/ - -FUNCINLINE static ATTRINLINE Uint16 interp_16_211(Uint16 p1, Uint16 p2, Uint16 p3) -{ - return (Uint16)(INTERP_16_MASK_1((INTERP_16_MASK_1(p1)*2 + INTERP_16_MASK_1(p2) + INTERP_16_MASK_1(p3)) / 4) - | INTERP_16_MASK_2((INTERP_16_MASK_2(p1)*2 + INTERP_16_MASK_2(p2) + INTERP_16_MASK_2(p3)) / 4)); -} - -/* -FUNCINLINE static ATTRINLINE Uint16 interp_16_772(Uint16 p1, Uint16 p2, Uint16 p3) -{ - return (Uint16)(INTERP_16_MASK_1(((INTERP_16_MASK_1(p1) + INTERP_16_MASK_1(p2))*7 + INTERP_16_MASK_1(p3)*2) / 16) - | INTERP_16_MASK_2(((INTERP_16_MASK_2(p1) + INTERP_16_MASK_2(p2))*7 + INTERP_16_MASK_2(p3)*2) / 16)); -} - -FUNCINLINE static ATTRINLINE Uint16 interp_16_11(Uint16 p1, Uint16 p2) -{ - return (Uint16)(INTERP_16_MASK_1((INTERP_16_MASK_1(p1) + INTERP_16_MASK_1(p2)) / 2) - | INTERP_16_MASK_2((INTERP_16_MASK_2(p1) + INTERP_16_MASK_2(p2)) / 2)); -} -*/ - -FUNCINLINE static ATTRINLINE Uint16 interp_16_31(Uint16 p1, Uint16 p2) -{ - return (Uint16)(INTERP_16_MASK_1((INTERP_16_MASK_1(p1)*3 + INTERP_16_MASK_1(p2)) / 4) - | INTERP_16_MASK_2((INTERP_16_MASK_2(p1)*3 + INTERP_16_MASK_2(p2)) / 4)); -} - -FUNCINLINE static ATTRINLINE Uint16 interp_16_1411(Uint16 p1, Uint16 p2, Uint16 p3) -{ - return (Uint16)(INTERP_16_MASK_1((INTERP_16_MASK_1(p1)*14 + INTERP_16_MASK_1(p2) + INTERP_16_MASK_1(p3)) / 16) - | INTERP_16_MASK_2((INTERP_16_MASK_2(p1)*14 + INTERP_16_MASK_2(p2) + INTERP_16_MASK_2(p3)) / 16)); -} - -/* -FUNCINLINE static ATTRINLINE Uint16 interp_16_431(Uint16 p1, Uint16 p2, Uint16 p3) -{ - return (Uint16)(INTERP_16_MASK_1((INTERP_16_MASK_1(p1)*4 + INTERP_16_MASK_1(p2)*3 + INTERP_16_MASK_1(p3)) / 8) - | INTERP_16_MASK_2((INTERP_16_MASK_2(p1)*4 + INTERP_16_MASK_2(p2)*3 + INTERP_16_MASK_2(p3)) / 8)); -} - -FUNCINLINE static ATTRINLINE Uint16 interp_16_53(Uint16 p1, Uint16 p2) -{ - return (Uint16)(INTERP_16_MASK_1((INTERP_16_MASK_1(p1)*5 + INTERP_16_MASK_1(p2)*3) / 8) - | INTERP_16_MASK_2((INTERP_16_MASK_2(p1)*5 + INTERP_16_MASK_2(p2)*3) / 8)); -} - -FUNCINLINE static ATTRINLINE Uint16 interp_16_151(Uint16 p1, Uint16 p2) -{ - return (Uint16)(INTERP_16_MASK_1((INTERP_16_MASK_1(p1)*15 + INTERP_16_MASK_1(p2)) / 16) - | INTERP_16_MASK_2((INTERP_16_MASK_2(p1)*15 + INTERP_16_MASK_2(p2)) / 16)); -} - -FUNCINLINE static ATTRINLINE Uint16 interp_16_97(Uint16 p1, Uint16 p2) -{ - return (Uint16)(INTERP_16_MASK_1((INTERP_16_MASK_1(p1)*9 + INTERP_16_MASK_1(p2)*7) / 16) - | INTERP_16_MASK_2((INTERP_16_MASK_2(p1)*9 + INTERP_16_MASK_2(p2)*7) / 16)); -} -*/ - -#define INTERP_32_MASK_1(v) (v & 0xFF00FF) -#define INTERP_32_MASK_2(v) (v & 0x00FF00) - -FUNCINLINE static ATTRINLINE Uint32 interp_32_521(Uint32 p1, Uint32 p2, Uint32 p3) -{ - return INTERP_32_MASK_1((INTERP_32_MASK_1(p1)*5 + INTERP_32_MASK_1(p2)*2 + INTERP_32_MASK_1(p3)*1) / 8) - | INTERP_32_MASK_2((INTERP_32_MASK_2(p1)*5 + INTERP_32_MASK_2(p2)*2 + INTERP_32_MASK_2(p3)*1) / 8); -} - -FUNCINLINE static ATTRINLINE Uint32 interp_32_332(Uint32 p1, Uint32 p2, Uint32 p3) -{ - return INTERP_32_MASK_1((INTERP_32_MASK_1(p1)*3 + INTERP_32_MASK_1(p2)*3 + INTERP_32_MASK_1(p3)*2) / 8) - | INTERP_32_MASK_2((INTERP_32_MASK_2(p1)*3 + INTERP_32_MASK_2(p2)*3 + INTERP_32_MASK_2(p3)*2) / 8); -} - -FUNCINLINE static ATTRINLINE Uint32 interp_32_211(Uint32 p1, Uint32 p2, Uint32 p3) -{ - return INTERP_32_MASK_1((INTERP_32_MASK_1(p1)*2 + INTERP_32_MASK_1(p2) + INTERP_32_MASK_1(p3)) / 4) - | INTERP_32_MASK_2((INTERP_32_MASK_2(p1)*2 + INTERP_32_MASK_2(p2) + INTERP_32_MASK_2(p3)) / 4); -} - -FUNCINLINE static ATTRINLINE Uint32 interp_32_611(Uint32 p1, Uint32 p2, Uint32 p3) -{ - return INTERP_32_MASK_1((INTERP_32_MASK_1(p1)*6 + INTERP_32_MASK_1(p2) + INTERP_32_MASK_1(p3)) / 8) - | INTERP_32_MASK_2((INTERP_32_MASK_2(p1)*6 + INTERP_32_MASK_2(p2) + INTERP_32_MASK_2(p3)) / 8); -} - -/* -FUNCINLINE static ATTRINLINE Uint32 interp_32_71(Uint32 p1, Uint32 p2) -{ - return INTERP_32_MASK_1((INTERP_32_MASK_1(p1)*7 + INTERP_32_MASK_1(p2)) / 8) - | INTERP_32_MASK_2((INTERP_32_MASK_2(p1)*7 + INTERP_32_MASK_2(p2)) / 8); -} - -FUNCINLINE static ATTRINLINE Uint32 interp_32_772(Uint32 p1, Uint32 p2, Uint32 p3) -{ - return INTERP_32_MASK_1(((INTERP_32_MASK_1(p1) + INTERP_32_MASK_1(p2))*7 + INTERP_32_MASK_1(p3)*2) / 16) - | INTERP_32_MASK_2(((INTERP_32_MASK_2(p1) + INTERP_32_MASK_2(p2))*7 + INTERP_32_MASK_2(p3)*2) / 16); -} - -FUNCINLINE static ATTRINLINE Uint32 interp_32_11(Uint32 p1, Uint32 p2) -{ - return INTERP_32_MASK_1((INTERP_32_MASK_1(p1) + INTERP_32_MASK_1(p2)) / 2) - | INTERP_32_MASK_2((INTERP_32_MASK_2(p1) + INTERP_32_MASK_2(p2)) / 2); -} -*/ - -FUNCINLINE static ATTRINLINE Uint32 interp_32_31(Uint32 p1, Uint32 p2) -{ - return INTERP_32_MASK_1((INTERP_32_MASK_1(p1)*3 + INTERP_32_MASK_1(p2)) / 4) - | INTERP_32_MASK_2((INTERP_32_MASK_2(p1)*3 + INTERP_32_MASK_2(p2)) / 4); -} - -FUNCINLINE static ATTRINLINE Uint32 interp_32_1411(Uint32 p1, Uint32 p2, Uint32 p3) -{ - return INTERP_32_MASK_1((INTERP_32_MASK_1(p1)*14 + INTERP_32_MASK_1(p2) + INTERP_32_MASK_1(p3)) / 16) - | INTERP_32_MASK_2((INTERP_32_MASK_2(p1)*14 + INTERP_32_MASK_2(p2) + INTERP_32_MASK_2(p3)) / 16); -} - -/* -FUNCINLINE static ATTRINLINE Uint32 interp_32_431(Uint32 p1, Uint32 p2, Uint32 p3) -{ - return INTERP_32_MASK_1((INTERP_32_MASK_1(p1)*4 + INTERP_32_MASK_1(p2)*3 + INTERP_32_MASK_1(p3)) / 8) - | INTERP_32_MASK_2((INTERP_32_MASK_2(p1)*4 + INTERP_32_MASK_2(p2)*3 + INTERP_32_MASK_2(p3)) / 8); -} - -FUNCINLINE static ATTRINLINE Uint32 interp_32_53(Uint32 p1, Uint32 p2) -{ - return INTERP_32_MASK_1((INTERP_32_MASK_1(p1)*5 + INTERP_32_MASK_1(p2)*3) / 8) - | INTERP_32_MASK_2((INTERP_32_MASK_2(p1)*5 + INTERP_32_MASK_2(p2)*3) / 8); -} - -FUNCINLINE static ATTRINLINE Uint32 interp_32_151(Uint32 p1, Uint32 p2) -{ - return INTERP_32_MASK_1((INTERP_32_MASK_1(p1)*15 + INTERP_32_MASK_1(p2)) / 16) - | INTERP_32_MASK_2((INTERP_32_MASK_2(p1)*15 + INTERP_32_MASK_2(p2)) / 16); -} - -FUNCINLINE static ATTRINLINE Uint32 interp_32_97(Uint32 p1, Uint32 p2) -{ - return INTERP_32_MASK_1((INTERP_32_MASK_1(p1)*9 + INTERP_32_MASK_1(p2)*7) / 16) - | INTERP_32_MASK_2((INTERP_32_MASK_2(p1)*9 + INTERP_32_MASK_2(p2)*7) / 16); -} -*/ - -/***************************************************************************/ -/* diff */ - -#define INTERP_Y_LIMIT (0x30*4) -#define INTERP_U_LIMIT (0x07*4) -#define INTERP_V_LIMIT (0x06*8) - -static int interp_16_diff(Uint16 p1, Uint16 p2) -{ - int r, g, b; - int y, u, v; - - if (p1 == p2) - return 0; - - if (interp_bits_per_pixel == 16) { - b = (int)((p1 & 0x1F) - (p2 & 0x1F)) << 3; - g = (int)((p1 & 0x7E0) - (p2 & 0x7E0)) >> 3; - r = (int)((p1 & 0xF800) - (p2 & 0xF800)) >> 8; - } else { - b = (int)((p1 & 0x1F) - (p2 & 0x1F)) << 3; - g = (int)((p1 & 0x3E0) - (p2 & 0x3E0)) >> 2; - r = (int)((p1 & 0x7C00) - (p2 & 0x7C00)) >> 7; - } - - y = r + g + b; - u = r - b; - v = -r + 2*g - b; - - if (y < -INTERP_Y_LIMIT || y > INTERP_Y_LIMIT) - return 1; - - if (u < -INTERP_U_LIMIT || u > INTERP_U_LIMIT) - return 1; - - if (v < -INTERP_V_LIMIT || v > INTERP_V_LIMIT) - return 1; - - return 0; -} - -static int interp_32_diff(Uint32 p1, Uint32 p2) -{ - int r, g, b; - int y, u, v; - - if ((p1 & 0xF8F8F8) == (p2 & 0xF8F8F8)) - return 0; - - b = (int)((p1 & 0xFF) - (p2 & 0xFF)); - g = (int)((p1 & 0xFF00) - (p2 & 0xFF00)) >> 8; - r = (int)((p1 & 0xFF0000) - (p2 & 0xFF0000)) >> 16; - - y = r + g + b; - u = r - b; - v = -r + 2*g - b; - - if (y < -INTERP_Y_LIMIT || y > INTERP_Y_LIMIT) - return 1; - - if (u < -INTERP_U_LIMIT || u > INTERP_U_LIMIT) - return 1; - - if (v < -INTERP_V_LIMIT || v > INTERP_V_LIMIT) - return 1; - - return 0; -} - -/* -static void interp_set(Uint32 bits_per_pixel) -{ - interp_bits_per_pixel = bits_per_pixel; - - switch (bits_per_pixel) { - case 15 : - interp_mask[0] = 0x7C1F; - interp_mask[1] = 0x03E0; - break; - case 16 : - interp_mask[0] = 0xF81F; - interp_mask[1] = 0x07E0; - break; - case 32 : - interp_mask[0] = 0xFF00FF; - interp_mask[1] = 0x00FF00; - break; - } -} -*/ - -#endif diff --git a/src/sdl12/filter/lq2x.c b/src/sdl12/filter/lq2x.c deleted file mode 100644 index 8d06fa8cc..000000000 --- a/src/sdl12/filter/lq2x.c +++ /dev/null @@ -1,564 +0,0 @@ -#include "filters.h" -#include "interp.h" - -static void hq2x_16_def(Uint16* dst0, Uint16* dst1, const Uint16* src0, const Uint16* src1, const Uint16* src2, Uint32 count) -{ - Uint32 i; - - for(i=0;i0) { - c[0] = src0[-1]; - c[3] = src1[-1]; - c[6] = src2[-1]; - } else { - c[0] = c[1]; - c[3] = c[4]; - c[6] = c[7]; - } - - if (i0) { - c[0] = src0[-1]; - c[3] = src1[-1]; - c[6] = src2[-1]; - } else { - c[0] = c[1]; - c[3] = c[4]; - c[6] = c[7]; - } - - if (i0) { - c[0] = src0[-1]; - c[3] = src1[-1]; - c[6] = src2[-1]; - } else { - c[0] = c[1]; - c[3] = c[4]; - c[6] = c[7]; - } - - if (i0) { - c[0] = src0[-1]; - c[3] = src1[-1]; - c[6] = src2[-1]; - } else { - c[0] = c[1]; - c[3] = c[4]; - c[6] = c[7]; - } - - if (i> 1); - - Uint16 *src0 = (Uint16 *)srcPtr; - Uint16 *src1 = src0 + (srcPitch >> 1); - Uint16 *src2 = src1 + (srcPitch >> 1); - int count = height-2; - - hq2x_16_def(dst0, dst1, src0, src0, src1, width); - - while(count) { - dst0 += dstPitch; - dst1 += dstPitch; - hq2x_16_def(dst0, dst1, src0, src1, src2, width); - src0 = src1; - src1 = src2; - src2 += srcPitch >> 1; - --count; - } - dst0 += dstPitch; - dst1 += dstPitch; - hq2x_16_def(dst0, dst1, src0, src1, src1, width); -} - -void hq2x32(Uint8 *srcPtr, Uint32 srcPitch, Uint8 *dstPtr, - Uint32 dstPitch, int width, int height) -{ - Uint32 *dst0 = (Uint32 *)dstPtr; - Uint32 *dst1 = dst0 + (dstPitch >> 2); - - Uint32 *src0 = (Uint32 *)srcPtr; - Uint32 *src1 = src0 + (srcPitch >> 2); - Uint32 *src2 = src1 + (srcPitch >> 2); - int count = height-2; - - hq2x_32_def(dst0, dst1, src0, src0, src1, width); - - while(count) { - dst0 += dstPitch >> 1; - dst1 += dstPitch >> 1; - hq2x_32_def(dst0, dst1, src0, src1, src2, width); - src0 = src1; - src1 = src2; - src2 += srcPitch >> 2; - --count; - } - dst0 += dstPitch >> 1; - dst1 += dstPitch >> 1; - hq2x_32_def(dst0, dst1, src0, src1, src1, width); -} - -void lq2x16(Uint8 *srcPtr, Uint32 srcPitch, Uint8 *dstPtr, - Uint32 dstPitch, int width, int height) -{ - Uint16 *dst0 = (Uint16 *)dstPtr; - Uint16 *dst1 = dst0 + (dstPitch >> 1); - - Uint16 *src0 = (Uint16 *)srcPtr; - Uint16 *src1 = src0 + (srcPitch >> 1); - Uint16 *src2 = src1 + (srcPitch >> 1); - int count = height-2; - - lq2x_16_def(dst0, dst1, src0, src0, src1, width); - - while(count) { - dst0 += dstPitch; - dst1 += dstPitch; - lq2x_16_def(dst0, dst1, src0, src1, src2, width); - src0 = src1; - src1 = src2; - src2 += srcPitch >> 1; - --count; - } - dst0 += dstPitch; - dst1 += dstPitch; - lq2x_16_def(dst0, dst1, src0, src1, src1, width); -} - -void lq2x32(Uint8 *srcPtr, Uint32 srcPitch, Uint8 *dstPtr, - Uint32 dstPitch, int width, int height) -{ - Uint32 *dst0 = (Uint32 *)dstPtr; - Uint32 *dst1 = dst0 + (dstPitch >> 2); - - Uint32 *src0 = (Uint32 *)srcPtr; - Uint32 *src1 = src0 + (srcPitch >> 2); - Uint32 *src2 = src1 + (srcPitch >> 2); - int count = height-2; - - lq2x_32_def(dst0, dst1, src0, src0, src1, width); - - while(count) { - dst0 += dstPitch >> 1; - dst1 += dstPitch >> 1; - lq2x_32_def(dst0, dst1, src0, src1, src2, width); - src0 = src1; - src1 = src2; - src2 += srcPitch >> 2; - --count; - } - dst0 += dstPitch >> 1; - dst1 += dstPitch >> 1; - lq2x_32_def(dst0, dst1, src0, src1, src1, width); -} - -/* -static inline void hq2x_init(Uint32 bits_per_pixel) -{ - interp_set(bits_per_pixel); -} -*/ diff --git a/src/sdl12/filter/lq2x.h b/src/sdl12/filter/lq2x.h deleted file mode 100644 index 094c2b5ae..000000000 --- a/src/sdl12/filter/lq2x.h +++ /dev/null @@ -1,1284 +0,0 @@ -case 0 : -case 2 : -case 4 : -case 6 : -case 8 : -case 12 : -case 16 : -case 20 : -case 24 : -case 28 : -case 32 : -case 34 : -case 36 : -case 38 : -case 40 : -case 44 : -case 48 : -case 52 : -case 56 : -case 60 : -case 64 : -case 66 : -case 68 : -case 70 : -case 96 : -case 98 : -case 100 : -case 102 : -case 128 : -case 130 : -case 132 : -case 134 : -case 136 : -case 140 : -case 144 : -case 148 : -case 152 : -case 156 : -case 160 : -case 162 : -case 164 : -case 166 : -case 168 : -case 172 : -case 176 : -case 180 : -case 184 : -case 188 : -case 192 : -case 194 : -case 196 : -case 198 : -case 224 : -case 226 : -case 228 : -case 230 : -{ - P0 = IC(0); - P1 = IC(0); - P2 = IC(0); - P3 = IC(0); -} break; -case 1 : -case 5 : -case 9 : -case 13 : -case 17 : -case 21 : -case 25 : -case 29 : -case 33 : -case 37 : -case 41 : -case 45 : -case 49 : -case 53 : -case 57 : -case 61 : -case 65 : -case 69 : -case 97 : -case 101 : -case 129 : -case 133 : -case 137 : -case 141 : -case 145 : -case 149 : -case 153 : -case 157 : -case 161 : -case 165 : -case 169 : -case 173 : -case 177 : -case 181 : -case 185 : -case 189 : -case 193 : -case 197 : -case 225 : -case 229 : -{ - P0 = IC(1); - P1 = IC(1); - P2 = IC(1); - P3 = IC(1); -} break; -case 3 : -case 35 : -case 67 : -case 99 : -case 131 : -case 163 : -case 195 : -case 227 : -{ - P0 = IC(2); - P1 = IC(2); - P2 = IC(2); - P3 = IC(2); -} break; -case 7 : -case 39 : -case 71 : -case 103 : -case 135 : -case 167 : -case 199 : -case 231 : -{ - P0 = IC(3); - P1 = IC(3); - P2 = IC(3); - P3 = IC(3); -} break; -case 10 : -case 138 : -{ - P1 = IC(0); - P2 = IC(0); - P3 = IC(0); - if (MUL) { - P0 = IC(0); - } else { - P0 = I211(0, 1, 3); - } -} break; -case 11 : -case 27 : -case 75 : -case 139 : -case 155 : -case 203 : -{ - P1 = IC(2); - P2 = IC(2); - P3 = IC(2); - if (MUL) { - P0 = IC(2); - } else { - P0 = I211(2, 1, 3); - } -} break; -case 14 : -case 142 : -{ - P2 = IC(0); - P3 = IC(0); - if (MUL) { - P0 = IC(0); - P1 = IC(0); - } else { - P0 = I332(1, 3, 0); - P1 = I31(0, 1); - } -} break; -case 15 : -case 143 : -case 207 : -{ - P2 = IC(4); - P3 = IC(4); - if (MUL) { - P0 = IC(4); - P1 = IC(4); - } else { - P0 = I332(1, 3, 4); - P1 = I31(4, 1); - } -} break; -case 18 : -case 22 : -case 30 : -case 50 : -case 54 : -case 62 : -case 86 : -case 118 : -{ - P0 = IC(0); - P2 = IC(0); - P3 = IC(0); - if (MUR) { - P1 = IC(0); - } else { - P1 = I211(0, 1, 5); - } -} break; -case 19 : -case 51 : -{ - P2 = IC(2); - P3 = IC(2); - if (MUR) { - P0 = IC(2); - P1 = IC(2); - } else { - P0 = I31(2, 1); - P1 = I332(1, 5, 2); - } -} break; -case 23 : -case 55 : -case 119 : -{ - P2 = IC(3); - P3 = IC(3); - if (MUR) { - P0 = IC(3); - P1 = IC(3); - } else { - P0 = I31(3, 1); - P1 = I332(1, 5, 3); - } -} break; -case 26 : -{ - P2 = IC(0); - P3 = IC(0); - if (MUL) { - P0 = IC(0); - } else { - P0 = I211(0, 1, 3); - } - if (MUR) { - P1 = IC(0); - } else { - P1 = I211(0, 1, 5); - } -} break; -case 31 : -case 95 : -{ - P2 = IC(4); - P3 = IC(4); - if (MUL) { - P0 = IC(4); - } else { - P0 = I211(4, 1, 3); - } - if (MUR) { - P1 = IC(4); - } else { - P1 = I211(4, 1, 5); - } -} break; -case 42 : -case 170 : -{ - P1 = IC(0); - P3 = IC(0); - if (MUL) { - P0 = IC(0); - P2 = IC(0); - } else { - P0 = I332(1, 3, 0); - P2 = I31(0, 3); - } -} break; -case 43 : -case 171 : -case 187 : -{ - P1 = IC(2); - P3 = IC(2); - if (MUL) { - P0 = IC(2); - P2 = IC(2); - } else { - P0 = I332(1, 3, 2); - P2 = I31(2, 3); - } -} break; -case 46 : -case 174 : -{ - P1 = IC(0); - P2 = IC(0); - P3 = IC(0); - if (MUL) { - P0 = IC(0); - } else { - P0 = I611(0, 1, 3); - } -} break; -case 47 : -case 175 : -{ - P1 = IC(4); - P2 = IC(4); - P3 = IC(4); - if (MUL) { - P0 = IC(4); - } else { - P0 = I1411(4, 1, 3); - } -} break; -case 58 : -case 154 : -case 186 : -{ - P2 = IC(0); - P3 = IC(0); - if (MUL) { - P0 = IC(0); - } else { - P0 = I611(0, 1, 3); - } - if (MUR) { - P1 = IC(0); - } else { - P1 = I611(0, 1, 5); - } -} break; -case 59 : -{ - P2 = IC(2); - P3 = IC(2); - if (MUL) { - P0 = IC(2); - } else { - P0 = I211(2, 1, 3); - } - if (MUR) { - P1 = IC(2); - } else { - P1 = I611(2, 1, 5); - } -} break; -case 63 : -{ - P2 = IC(4); - P3 = IC(4); - if (MUL) { - P0 = IC(4); - } else { - P0 = I1411(4, 1, 3); - } - if (MUR) { - P1 = IC(4); - } else { - P1 = I211(4, 1, 5); - } -} break; -case 72 : -case 76 : -case 104 : -case 106 : -case 108 : -case 110 : -case 120 : -case 124 : -{ - P0 = IC(0); - P1 = IC(0); - P3 = IC(0); - if (MDL) { - P2 = IC(0); - } else { - P2 = I211(0, 3, 7); - } -} break; -case 73 : -case 77 : -case 105 : -case 109 : -case 125 : -{ - P1 = IC(1); - P3 = IC(1); - if (MDL) { - P0 = IC(1); - P2 = IC(1); - } else { - P0 = I31(1, 3); - P2 = I332(3, 7, 1); - } -} break; -case 74 : -{ - P1 = IC(0); - P3 = IC(0); - if (MDL) { - P2 = IC(0); - } else { - P2 = I211(0, 3, 7); - } - if (MUL) { - P0 = IC(0); - } else { - P0 = I211(0, 1, 3); - } -} break; -case 78 : -case 202 : -case 206 : -{ - P1 = IC(0); - P3 = IC(0); - if (MDL) { - P2 = IC(0); - } else { - P2 = I611(0, 3, 7); - } - if (MUL) { - P0 = IC(0); - } else { - P0 = I611(0, 1, 3); - } -} break; -case 79 : -{ - P1 = IC(4); - P3 = IC(4); - if (MDL) { - P2 = IC(4); - } else { - P2 = I611(4, 3, 7); - } - if (MUL) { - P0 = IC(4); - } else { - P0 = I211(4, 1, 3); - } -} break; -case 80 : -case 208 : -case 210 : -case 216 : -{ - P0 = IC(0); - P1 = IC(0); - P2 = IC(0); - if (MDR) { - P3 = IC(0); - } else { - P3 = I211(0, 5, 7); - } -} break; -case 81 : -case 209 : -case 217 : -{ - P0 = IC(1); - P1 = IC(1); - P2 = IC(1); - if (MDR) { - P3 = IC(1); - } else { - P3 = I211(1, 5, 7); - } -} break; -case 82 : -case 214 : -case 222 : -{ - P0 = IC(0); - P2 = IC(0); - if (MDR) { - P3 = IC(0); - } else { - P3 = I211(0, 5, 7); - } - if (MUR) { - P1 = IC(0); - } else { - P1 = I211(0, 1, 5); - } -} break; -case 83 : -case 115 : -{ - P0 = IC(2); - P2 = IC(2); - if (MDR) { - P3 = IC(2); - } else { - P3 = I611(2, 5, 7); - } - if (MUR) { - P1 = IC(2); - } else { - P1 = I611(2, 1, 5); - } -} break; -case 84 : -case 212 : -{ - P0 = IC(0); - P2 = IC(0); - if (MDR) { - P1 = IC(0); - P3 = IC(0); - } else { - P1 = I31(0, 5); - P3 = I332(5, 7, 0); - } -} break; -case 85 : -case 213 : -case 221 : -{ - P0 = IC(1); - P2 = IC(1); - if (MDR) { - P1 = IC(1); - P3 = IC(1); - } else { - P1 = I31(1, 5); - P3 = I332(5, 7, 1); - } -} break; -case 87 : -{ - P0 = IC(3); - P2 = IC(3); - if (MDR) { - P3 = IC(3); - } else { - P3 = I611(3, 5, 7); - } - if (MUR) { - P1 = IC(3); - } else { - P1 = I211(3, 1, 5); - } -} break; -case 88 : -case 248 : -case 250 : -{ - P0 = IC(0); - P1 = IC(0); - if (MDL) { - P2 = IC(0); - } else { - P2 = I211(0, 3, 7); - } - if (MDR) { - P3 = IC(0); - } else { - P3 = I211(0, 5, 7); - } -} break; -case 89 : -case 93 : -{ - P0 = IC(1); - P1 = IC(1); - if (MDL) { - P2 = IC(1); - } else { - P2 = I611(1, 3, 7); - } - if (MDR) { - P3 = IC(1); - } else { - P3 = I611(1, 5, 7); - } -} break; -case 90 : -{ - if (MDL) { - P2 = IC(0); - } else { - P2 = I611(0, 3, 7); - } - if (MDR) { - P3 = IC(0); - } else { - P3 = I611(0, 5, 7); - } - if (MUL) { - P0 = IC(0); - } else { - P0 = I611(0, 1, 3); - } - if (MUR) { - P1 = IC(0); - } else { - P1 = I611(0, 1, 5); - } -} break; -case 91 : -{ - if (MDL) { - P2 = IC(2); - } else { - P2 = I611(2, 3, 7); - } - if (MDR) { - P3 = IC(2); - } else { - P3 = I611(2, 5, 7); - } - if (MUL) { - P0 = IC(2); - } else { - P0 = I211(2, 1, 3); - } - if (MUR) { - P1 = IC(2); - } else { - P1 = I611(2, 1, 5); - } -} break; -case 92 : -{ - P0 = IC(0); - P1 = IC(0); - if (MDL) { - P2 = IC(0); - } else { - P2 = I611(0, 3, 7); - } - if (MDR) { - P3 = IC(0); - } else { - P3 = I611(0, 5, 7); - } -} break; -case 94 : -{ - if (MDL) { - P2 = IC(0); - } else { - P2 = I611(0, 3, 7); - } - if (MDR) { - P3 = IC(0); - } else { - P3 = I611(0, 5, 7); - } - if (MUL) { - P0 = IC(0); - } else { - P0 = I611(0, 1, 3); - } - if (MUR) { - P1 = IC(0); - } else { - P1 = I211(0, 1, 5); - } -} break; -case 107 : -case 123 : -{ - P1 = IC(2); - P3 = IC(2); - if (MDL) { - P2 = IC(2); - } else { - P2 = I211(2, 3, 7); - } - if (MUL) { - P0 = IC(2); - } else { - P0 = I211(2, 1, 3); - } -} break; -case 111 : -{ - P1 = IC(4); - P3 = IC(4); - if (MDL) { - P2 = IC(4); - } else { - P2 = I211(4, 3, 7); - } - if (MUL) { - P0 = IC(4); - } else { - P0 = I1411(4, 1, 3); - } -} break; -case 112 : -case 240 : -{ - P0 = IC(0); - P1 = IC(0); - if (MDR) { - P2 = IC(0); - P3 = IC(0); - } else { - P2 = I31(0, 7); - P3 = I332(5, 7, 0); - } -} break; -case 113 : -case 241 : -{ - P0 = IC(1); - P1 = IC(1); - if (MDR) { - P2 = IC(1); - P3 = IC(1); - } else { - P2 = I31(1, 7); - P3 = I332(5, 7, 1); - } -} break; -case 114 : -{ - P0 = IC(0); - P2 = IC(0); - if (MDR) { - P3 = IC(0); - } else { - P3 = I611(0, 5, 7); - } - if (MUR) { - P1 = IC(0); - } else { - P1 = I611(0, 1, 5); - } -} break; -case 116 : -{ - P0 = IC(0); - P1 = IC(0); - P2 = IC(0); - if (MDR) { - P3 = IC(0); - } else { - P3 = I611(0, 5, 7); - } -} break; -case 117 : -{ - P0 = IC(1); - P1 = IC(1); - P2 = IC(1); - if (MDR) { - P3 = IC(1); - } else { - P3 = I611(1, 5, 7); - } -} break; -case 121 : -{ - P0 = IC(1); - P1 = IC(1); - if (MDL) { - P2 = IC(1); - } else { - P2 = I211(1, 3, 7); - } - if (MDR) { - P3 = IC(1); - } else { - P3 = I611(1, 5, 7); - } -} break; -case 122 : -{ - if (MDL) { - P2 = IC(0); - } else { - P2 = I211(0, 3, 7); - } - if (MDR) { - P3 = IC(0); - } else { - P3 = I611(0, 5, 7); - } - if (MUL) { - P0 = IC(0); - } else { - P0 = I611(0, 1, 3); - } - if (MUR) { - P1 = IC(0); - } else { - P1 = I611(0, 1, 5); - } -} break; -case 126 : -{ - P0 = IC(0); - P3 = IC(0); - if (MDL) { - P2 = IC(0); - } else { - P2 = I211(0, 3, 7); - } - if (MUR) { - P1 = IC(0); - } else { - P1 = I211(0, 1, 5); - } -} break; -case 127 : -{ - P3 = IC(4); - if (MDL) { - P2 = IC(4); - } else { - P2 = I211(4, 3, 7); - } - if (MUL) { - P0 = IC(4); - } else { - P0 = I1411(4, 1, 3); - } - if (MUR) { - P1 = IC(4); - } else { - P1 = I211(4, 1, 5); - } -} break; -case 146 : -case 150 : -case 178 : -case 182 : -case 190 : -{ - P0 = IC(0); - P2 = IC(0); - if (MUR) { - P1 = IC(0); - P3 = IC(0); - } else { - P1 = I332(1, 5, 0); - P3 = I31(0, 5); - } -} break; -case 147 : -case 179 : -{ - P0 = IC(2); - P2 = IC(2); - P3 = IC(2); - if (MUR) { - P1 = IC(2); - } else { - P1 = I611(2, 1, 5); - } -} break; -case 151 : -case 183 : -{ - P0 = IC(3); - P2 = IC(3); - P3 = IC(3); - if (MUR) { - P1 = IC(3); - } else { - P1 = I1411(3, 1, 5); - } -} break; -case 158 : -{ - P2 = IC(0); - P3 = IC(0); - if (MUL) { - P0 = IC(0); - } else { - P0 = I611(0, 1, 3); - } - if (MUR) { - P1 = IC(0); - } else { - P1 = I211(0, 1, 5); - } -} break; -case 159 : -{ - P2 = IC(4); - P3 = IC(4); - if (MUL) { - P0 = IC(4); - } else { - P0 = I211(4, 1, 3); - } - if (MUR) { - P1 = IC(4); - } else { - P1 = I1411(4, 1, 5); - } -} break; -case 191 : -{ - P2 = IC(4); - P3 = IC(4); - if (MUL) { - P0 = IC(4); - } else { - P0 = I1411(4, 1, 3); - } - if (MUR) { - P1 = IC(4); - } else { - P1 = I1411(4, 1, 5); - } -} break; -case 200 : -case 204 : -case 232 : -case 236 : -case 238 : -{ - P0 = IC(0); - P1 = IC(0); - if (MDL) { - P2 = IC(0); - P3 = IC(0); - } else { - P2 = I332(3, 7, 0); - P3 = I31(0, 7); - } -} break; -case 201 : -case 205 : -{ - P0 = IC(1); - P1 = IC(1); - P3 = IC(1); - if (MDL) { - P2 = IC(1); - } else { - P2 = I611(1, 3, 7); - } -} break; -case 211 : -{ - P0 = IC(2); - P1 = IC(2); - P2 = IC(2); - if (MDR) { - P3 = IC(2); - } else { - P3 = I211(2, 5, 7); - } -} break; -case 215 : -{ - P0 = IC(3); - P2 = IC(3); - if (MDR) { - P3 = IC(3); - } else { - P3 = I211(3, 5, 7); - } - if (MUR) { - P1 = IC(3); - } else { - P1 = I1411(3, 1, 5); - } -} break; -case 218 : -{ - if (MDL) { - P2 = IC(0); - } else { - P2 = I611(0, 3, 7); - } - if (MDR) { - P3 = IC(0); - } else { - P3 = I211(0, 5, 7); - } - if (MUL) { - P0 = IC(0); - } else { - P0 = I611(0, 1, 3); - } - if (MUR) { - P1 = IC(0); - } else { - P1 = I611(0, 1, 5); - } -} break; -case 219 : -{ - P1 = IC(2); - P2 = IC(2); - if (MDR) { - P3 = IC(2); - } else { - P3 = I211(2, 5, 7); - } - if (MUL) { - P0 = IC(2); - } else { - P0 = I211(2, 1, 3); - } -} break; -case 220 : -{ - P0 = IC(0); - P1 = IC(0); - if (MDL) { - P2 = IC(0); - } else { - P2 = I611(0, 3, 7); - } - if (MDR) { - P3 = IC(0); - } else { - P3 = I211(0, 5, 7); - } -} break; -case 223 : -{ - P2 = IC(4); - if (MDR) { - P3 = IC(4); - } else { - P3 = I211(4, 5, 7); - } - if (MUL) { - P0 = IC(4); - } else { - P0 = I211(4, 1, 3); - } - if (MUR) { - P1 = IC(4); - } else { - P1 = I1411(4, 1, 5); - } -} break; -case 233 : -case 237 : -{ - P0 = IC(1); - P1 = IC(1); - P3 = IC(1); - if (MDL) { - P2 = IC(1); - } else { - P2 = I1411(1, 3, 7); - } -} break; -case 234 : -{ - P1 = IC(0); - P3 = IC(0); - if (MDL) { - P2 = IC(0); - } else { - P2 = I211(0, 3, 7); - } - if (MUL) { - P0 = IC(0); - } else { - P0 = I611(0, 1, 3); - } -} break; -case 235 : -{ - P1 = IC(2); - P3 = IC(2); - if (MDL) { - P2 = IC(2); - } else { - P2 = I1411(2, 3, 7); - } - if (MUL) { - P0 = IC(2); - } else { - P0 = I211(2, 1, 3); - } -} break; -case 239 : -{ - P1 = IC(4); - P3 = IC(4); - if (MDL) { - P2 = IC(4); - } else { - P2 = I1411(4, 3, 7); - } - if (MUL) { - P0 = IC(4); - } else { - P0 = I1411(4, 1, 3); - } -} break; -case 242 : -{ - P0 = IC(0); - P2 = IC(0); - if (MDR) { - P3 = IC(0); - } else { - P3 = I211(0, 5, 7); - } - if (MUR) { - P1 = IC(0); - } else { - P1 = I611(0, 1, 5); - } -} break; -case 243 : -{ - P0 = IC(2); - P1 = IC(2); - if (MDR) { - P2 = IC(2); - P3 = IC(2); - } else { - P2 = I31(2, 7); - P3 = I332(5, 7, 2); - } -} break; -case 244 : -{ - P0 = IC(0); - P1 = IC(0); - P2 = IC(0); - if (MDR) { - P3 = IC(0); - } else { - P3 = I1411(0, 5, 7); - } -} break; -case 245 : -{ - P0 = IC(1); - P1 = IC(1); - P2 = IC(1); - if (MDR) { - P3 = IC(1); - } else { - P3 = I1411(1, 5, 7); - } -} break; -case 246 : -{ - P0 = IC(0); - P2 = IC(0); - if (MDR) { - P3 = IC(0); - } else { - P3 = I1411(0, 5, 7); - } - if (MUR) { - P1 = IC(0); - } else { - P1 = I211(0, 1, 5); - } -} break; -case 247 : -{ - P0 = IC(3); - P2 = IC(3); - if (MDR) { - P3 = IC(3); - } else { - P3 = I1411(3, 5, 7); - } - if (MUR) { - P1 = IC(3); - } else { - P1 = I1411(3, 1, 5); - } -} break; -case 249 : -{ - P0 = IC(1); - P1 = IC(1); - if (MDL) { - P2 = IC(1); - } else { - P2 = I1411(1, 3, 7); - } - if (MDR) { - P3 = IC(1); - } else { - P3 = I211(1, 5, 7); - } -} break; -case 251 : -{ - P1 = IC(2); - if (MDL) { - P2 = IC(2); - } else { - P2 = I1411(2, 3, 7); - } - if (MDR) { - P3 = IC(2); - } else { - P3 = I211(2, 5, 7); - } - if (MUL) { - P0 = IC(2); - } else { - P0 = I211(2, 1, 3); - } -} break; -case 252 : -{ - P0 = IC(0); - P1 = IC(0); - if (MDL) { - P2 = IC(0); - } else { - P2 = I211(0, 3, 7); - } - if (MDR) { - P3 = IC(0); - } else { - P3 = I1411(0, 5, 7); - } -} break; -case 253 : -{ - P0 = IC(1); - P1 = IC(1); - if (MDL) { - P2 = IC(1); - } else { - P2 = I1411(1, 3, 7); - } - if (MDR) { - P3 = IC(1); - } else { - P3 = I1411(1, 5, 7); - } -} break; -case 254 : -{ - P0 = IC(0); - if (MDL) { - P2 = IC(0); - } else { - P2 = I211(0, 3, 7); - } - if (MDR) { - P3 = IC(0); - } else { - P3 = I1411(0, 5, 7); - } - if (MUR) { - P1 = IC(0); - } else { - P1 = I211(0, 1, 5); - } -} break; -case 255 : -{ - if (MDL) { - P2 = IC(4); - } else { - P2 = I1411(4, 3, 7); - } - if (MDR) { - P3 = IC(4); - } else { - P3 = I1411(4, 5, 7); - } - if (MUL) { - P0 = IC(4); - } else { - P0 = I1411(4, 1, 3); - } - if (MUR) { - P1 = IC(4); - } else { - P1 = I1411(4, 1, 5); - } -} break; diff --git a/src/sdl12/filter/main.c b/src/sdl12/filter/main.c deleted file mode 100644 index 98ab1541c..000000000 --- a/src/sdl12/filter/main.c +++ /dev/null @@ -1,15 +0,0 @@ -#include "filters.h" - -int main(int argc, char *argv[]) -{ - SDL_Surface *src = NULL; - SDL_Surface *dst = NULL; - src = SDL_LoadBMP("src.bmp"); //load - if(!src) return -1; //check - dst = filter_2x(src, NULL, hq2x32); //prcoess - SDL_FreeSurface(src); //free - if(!dst) return 0; //error - SDL_SaveBMP(dst, "dst.bmp"); //save - SDL_FreeSurface(dst); //free - return 1; //good -} diff --git a/src/sdl12/hwsym_sdl.c b/src/sdl12/hwsym_sdl.c deleted file mode 100644 index b7b5613e1..000000000 --- a/src/sdl12/hwsym_sdl.c +++ /dev/null @@ -1,181 +0,0 @@ -// Emacs style mode select -*- C++ -*- -//----------------------------------------------------------------------------- -// -// Copyright (C) 1998-2000 by DooM Legacy Team. -// -// 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 2 -// 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. - -/// \file -/// \brief Tool for dynamic referencing of hardware rendering functions -/// -/// Declaration and definition of the HW rendering -/// functions do have the same name. Originally, the -/// implementation was stored in a separate library. -/// For SDL, we need some function to return the addresses, -/// otherwise we have a conflict with the compiler. - -#include "hwsym_sdl.h" -#include "../doomdef.h" - -#ifdef _MSC_VER -#pragma warning(disable : 4214 4244) -#endif - -#ifdef HAVE_SDL - -#include "SDL.h" - -#ifdef _MSC_VER -#pragma warning(default : 4214 4244) -#endif - -#if SDL_VERSION_ATLEAST(1,2,6) && !defined (NOLOADSO) -#include "SDL_loadso.h" // 1.2.6+ -#elif !defined (NOLOADSO) -#define NOLOADSO -#endif - -#define _CREATE_DLL_ // necessary for Unix AND Windows - -#ifdef HWRENDER -#include "../hardware/hw_drv.h" -#include "ogl_sdl.h" -#ifdef STATIC_OPENGL -#include "../hardware/r_opengl/r_opengl.h" -#endif -#endif - -#ifdef HW3SOUND -#include "../hardware/hw3dsdrv.h" -#endif - -#define GETFUNC(func) \ - else if (0 == strcmp(#func, funcName)) \ - funcPointer = &func \ -// -// -/** \brief The *hwSym function - - Stupid function to return function addresses - - \param funcName the name of the function - \param handle an object to look in(NULL for self) - - \return void -*/ -// -void *hwSym(const char *funcName,void *handle) -{ - void *funcPointer = NULL; -#ifdef HWRENDER - if (0 == strcmp("SetPalette", funcName)) - funcPointer = &OglSdlSetPalette; - GETFUNC(Init); - GETFUNC(Draw2DLine); - GETFUNC(DrawPolygon); - GETFUNC(SetBlend); - GETFUNC(ClearBuffer); - GETFUNC(SetTexture); - GETFUNC(ReadRect); - GETFUNC(GClipRect); - GETFUNC(ClearMipMapCache); - GETFUNC(SetSpecialState); - GETFUNC(GetTextureUsed); - GETFUNC(DrawMD2); - GETFUNC(DrawMD2i); - GETFUNC(SetTransform); - GETFUNC(GetRenderVersion); -#ifdef SHUFFLE - GETFUNC(PostImgRedraw); -#endif //SHUFFLE - GETFUNC(StartScreenWipe); - GETFUNC(EndScreenWipe); - GETFUNC(DoScreenWipe); - GETFUNC(DrawIntermissionBG); - GETFUNC(MakeScreenTexture); - GETFUNC(MakeScreenFinalTexture); - GETFUNC(DrawScreenFinalTexture); -#else //HWRENDER - if (0 == strcmp("FinishUpdate", funcName)) - return funcPointer; //&FinishUpdate; -#endif //!HWRENDER -#ifdef STATIC3DS - GETFUNC(Startup); - GETFUNC(AddSfx); - GETFUNC(AddSource); - GETFUNC(StartSource); - GETFUNC(StopSource); - GETFUNC(GetHW3DSVersion); - GETFUNC(BeginFrameUpdate); - GETFUNC(EndFrameUpdate); - GETFUNC(IsPlaying); - GETFUNC(UpdateListener); - GETFUNC(UpdateSourceParms); - GETFUNC(SetGlobalSfxVolume); - GETFUNC(SetCone); - GETFUNC(Update3DSource); - GETFUNC(ReloadSource); - GETFUNC(KillSource); - GETFUNC(Shutdown); - GETFUNC(GetHW3DSTitle); -#endif -#ifdef NOLOADSO - else - funcPointer = handle; -#else - else if (handle) - funcPointer = SDL_LoadFunction(handle,funcName); -#endif - if (!funcPointer) - I_OutputMsg("hwSym for %s: %s\n", funcName, SDL_GetError()); - return funcPointer; -} - -/** \brief The *hwOpen function - - \param hwfile Open a handle to the SO - - \return Handle to SO - - -*/ - -void *hwOpen(const char *hwfile) -{ -#ifdef NOLOADSO - (void)hwfile; - return NULL; -#else - void *tempso = NULL; - tempso = SDL_LoadObject(hwfile); - if (!tempso) I_OutputMsg("hwOpen of %s: %s\n", hwfile, SDL_GetError()); - return tempso; -#endif -} - -/** \brief The hwClose function - - \param handle Close the handle of the SO - - \return void - - -*/ - -void hwClose(void *handle) -{ -#ifdef NOLOADSO - (void)handle; -#else - SDL_UnloadObject(handle); -#endif -} -#endif diff --git a/src/sdl12/hwsym_sdl.h b/src/sdl12/hwsym_sdl.h deleted file mode 100644 index 7297587bf..000000000 --- a/src/sdl12/hwsym_sdl.h +++ /dev/null @@ -1,23 +0,0 @@ -// Emacs style mode select -*- C++ -*- -//----------------------------------------------------------------------------- -// -// Copyright (C) 1998-2000 by DooM Legacy Team. -// -// 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 2 -// 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. -//----------------------------------------------------------------------------- -/// \file -/// \brief Tool for dynamic referencing of hardware rendering/3D sound functions - -void *hwSym(const char *funcName,void *handle); - -void *hwOpen(const char *hwfile); - -void hwClose(void *handle); diff --git a/src/sdl12/i_cdmus.c b/src/sdl12/i_cdmus.c deleted file mode 100644 index 27b664887..000000000 --- a/src/sdl12/i_cdmus.c +++ /dev/null @@ -1,572 +0,0 @@ -// Emacs style mode select -*- C++ -*- -//----------------------------------------------------------------------------- -// -// Copyright (C) 1998-2000 by DooM Legacy Team. -// -// 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 2 -// 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. -//----------------------------------------------------------------------------- -/// \file -/// \brief cd music interface -/// - -#ifdef HAVE_SDL - -#include -#ifndef NOSDLCD - -#ifdef _MSC_VER -#pragma warning(disable : 4214 4244) -#endif - -#include "SDL.h" - -#ifdef _MSC_VER -#pragma warning(default : 4214 4244) -#endif - -#endif - -#include "../doomtype.h" -#include "../i_sound.h" -#include "../command.h" -#include "../m_argv.h" -#include "../s_sound.h" - -#define MAX_CD_TRACKS 256 - -UINT8 cdaudio_started = 0; // for system startup/shutdown - -consvar_t cd_volume = {"cd_volume","31",CV_SAVE,soundvolume_cons_t, NULL, 0, NULL, NULL, 0, 0, NULL}; -consvar_t cdUpdate = {"cd_update","1",CV_SAVE, NULL, NULL, 0, NULL, NULL, 0, 0, NULL}; - -#ifndef NOSDLCD -static SDL_bool cdValid = SDL_FALSE; -static SDL_bool cdPlaying = SDL_FALSE; -static SDL_bool wasPlaying = SDL_FALSE; -static SDL_bool cdEnabled = SDL_FALSE; -static SDL_bool playLooping = SDL_FALSE; -static Uint8 playTrack = 0; -static Uint8 maxTrack = MAX_CD_TRACKS-1; -static Uint8 cdRemap[MAX_CD_TRACKS]; -static INT32 cdvolume = -1; -static SDL_CD *cdrom = NULL; -static CDstatus cdStatus = CD_ERROR; - -/************************************************************************** - * - * function: CDAudio_GetAudioDiskInfo - * - * description: - * set number of tracks if CD is available - * - **************************************************************************/ -static INT32 CDAudio_GetAudioDiskInfo(void) -{ - cdValid = SDL_FALSE; - maxTrack = 0; - - if (!cdrom) - return 0;//Alam: Lies! - - cdStatus = SDL_CDStatus(cdrom); - - if (!CD_INDRIVE(cdStatus)) - { - CONS_Printf("%s", M_GetText("No CD in drive\n")); - return -1; - } - - if (cdStatus == CD_ERROR) - { - CONS_Printf(M_GetText("CD Error: %s\n"), SDL_GetError()); - return -1; - } - - cdValid = SDL_TRUE; - maxTrack = (Uint8)cdrom->numtracks; - - return 0; -} - - -/************************************************************************** - * - * function: I_EjectCD - * - * description: - * - * - **************************************************************************/ -static void I_EjectCD(void) -{ - if (!cdrom || !cdEnabled) - return; // no cd init'd - - I_StopCD(); - - if (SDL_CDEject(cdrom)) - CONS_Printf("%s", M_GetText("CD eject failed\n")); -} - -/************************************************************************** - * - * function: Command_Cd_f - * - * description: - * handles all CD commands from the console - * - **************************************************************************/ -static void Command_Cd_f (void) -{ - const char *command; - size_t ret, n; - - if (!cdaudio_started) - return; - - if (COM_Argc() < 2) - { - CONS_Printf ("%s", M_GetText("cd [on] [off] [remap] [reset] [select]\n" - " [open] [info] [play ] [resume]\n" - " [stop] [pause] [loop ]\n")); - return; - } - - command = COM_Argv (1); - - if (!strncmp(command, "on", 2)) - { - cdEnabled = SDL_TRUE; - return; - } - - if (!strncmp(command, "off", 3)) - { - I_StopCD(); - cdEnabled = SDL_FALSE; - return; - } - - if (!strncmp(command, "select", 6)) - { - INT32 newcddrive; - newcddrive = atoi(COM_Argv(2)); - command = SDL_CDName(newcddrive); - I_StopCD(); - cdEnabled = SDL_FALSE; - SDL_CDClose(cdrom); - cdrom = SDL_CDOpen(newcddrive); - if (cdrom) - { - cdEnabled = SDL_TRUE; - CONS_Printf(M_GetText("Opened CD-ROM drive %s\n"), command ? command : COM_Argv(2)); - } - else CONS_Printf(M_GetText("Couldn't open CD-ROM drive %s: %s\n"), command ? command : COM_Argv(2), SDL_GetError()); - return; - } - - if (!strncmp(command, "remap", 5)) - { - ret = COM_Argc() - 2; - if (ret <= 0) - { - for (n = 1; n < MAX_CD_TRACKS; n++) - { - if (cdRemap[n] != n) - CONS_Printf(" %s -> %u\n", sizeu1(n), cdRemap[n]); - } - return; - } - for (n = 1; n <= ret; n++) - cdRemap[n] = (Uint8)atoi(COM_Argv (n+1)); - return; - } - - if (!strncmp(command, "reset", 5)) - { - if (!cdrom) return; - cdEnabled = SDL_TRUE; - I_StopCD(); - for (n = 0; n < MAX_CD_TRACKS; n++) - cdRemap[n] = (Uint8)n; - CDAudio_GetAudioDiskInfo(); - return; - } - - if (!cdValid) - { - if (CDAudio_GetAudioDiskInfo()==-1 && !cdValid) - { - CONS_Printf("%s", M_GetText("No CD in drive\n")); - return; - } - } - - if (!strncmp(command, "open", 4)) - { - I_EjectCD(); - cdValid = SDL_FALSE; - return; - } - - if (!strncmp(command, "info", 4)) - { - CONS_Printf(M_GetText("%u tracks\n"), maxTrack); - if (cdPlaying) - CONS_Printf(M_GetText("Currently %s track %u\n"), playLooping ? M_GetText("looping") : M_GetText("playing"), playTrack); - else if (wasPlaying) - CONS_Printf(M_GetText("Paused %s track %u\n"), playLooping ? M_GetText("looping") : M_GetText("playing"), playTrack); - CONS_Printf(M_GetText("Volume is %d\n"), cdvolume); - return; - } - - if (!strncmp(command, "play", 4)) - { - I_PlayCD((UINT8)atoi(COM_Argv (2)), SDL_FALSE); - return; - } - - if (!strncmp(command, "loop", 4)) - { - I_PlayCD((UINT8)atoi(COM_Argv (2)), true); - return; - } - - if (!strncmp(command, "stop", 4)) - { - I_StopCD(); - return; - } - if (!strncmp(command, "pause", 5)) - { - I_PauseCD(); - return; - } - - if (!strncmp(command, "resume", 6)) - { - I_ResumeCD(); - return; - } - - CONS_Printf(M_GetText("Invalid CD command \"CD %s\"\n"), COM_Argv(1)); -} -#endif - -/************************************************************************** - * - * function: StopCD - * - * description: - * - * - **************************************************************************/ -void I_StopCD(void) -{ -#ifndef NOSDLCD - if (!cdrom || !cdEnabled) - return; - - if (!(cdPlaying || wasPlaying)) - return; - - if (SDL_CDStop(cdrom)) - I_OutputMsg("cdromstop failed\n"); - - wasPlaying = SDL_FALSE; - cdPlaying = SDL_FALSE; -#endif -} - -/************************************************************************** - * - * function: PauseCD - * - * description: - * - * - **************************************************************************/ -void I_PauseCD (void) -{ -#ifndef NOSDLCD - if (!cdrom || !cdEnabled) - return; - - if (!cdPlaying) - return; - - if (SDL_CDPause(cdrom)) - I_OutputMsg("cdrompause failed\n"); - - wasPlaying = cdPlaying; - cdPlaying = SDL_FALSE; -#endif -} - -/************************************************************************** - * - * function: ResumeCD - * - * description: - * - * - **************************************************************************/ -// continue after a pause -void I_ResumeCD (void) -{ -#ifndef NOSDLCD - if (!cdrom || !cdEnabled) - return; - - if (!cdValid) - return; - - if (!wasPlaying) - return; - - if (cd_volume.value == 0) - return; - - if (SDL_CDResume(cdrom)) - I_OutputMsg("cdromresume failed\n"); - - cdPlaying = SDL_TRUE; - wasPlaying = SDL_FALSE; -#endif -} - - -/************************************************************************** - * - * function: ShutdownCD - * - * description: - * - * - **************************************************************************/ -void I_ShutdownCD (void) -{ -#ifndef NOSDLCD - if (!cdaudio_started) - return; - - I_StopCD(); - - CONS_Printf("I_ShutdownCD: "); - SDL_CDClose(cdrom); - cdrom = NULL; - cdaudio_started = false; - CONS_Printf("%s", M_GetText("shut down\n")); - SDL_QuitSubSystem(SDL_INIT_CDROM); - cdEnabled = SDL_FALSE; -#endif -} - -/************************************************************************** - * - * function: InitCD - * - * description: - * Initialize the first CD drive SDL detects and add console command 'cd' - * - **************************************************************************/ -void I_InitCD (void) -{ -#ifndef NOSDLCD - INT32 i; - - // Has been checked in d_main.c, but doesn't hurt here - if (M_CheckParm ("-nocd")) - return; - - CONS_Printf("%s", M_GetText("I_InitCD: Init CD audio\n")); - - // Initialize SDL first - if (SDL_InitSubSystem(SDL_INIT_CDROM) < 0) - { - CONS_Printf(M_GetText("Couldn't initialize SDL CDROM: %s\n"), SDL_GetError()); - return; - } - - // Open drive - cdrom = SDL_CDOpen(0); - - if (!cdrom) - { - const char *cdName = SDL_CDName(0); - if (!cdName) - CONS_Printf(M_GetText("Couldn't open CD-ROM drive %s: %s\n"), "\b", SDL_GetError()); - else - CONS_Printf(M_GetText("Couldn't open CD-ROM drive %s: %s\n"), cdName, SDL_GetError()); - //return; - } - - for (i = 0; i < MAX_CD_TRACKS; i++) - cdRemap[i] = (Uint8)i; - - cdaudio_started = true; - if (cdrom) cdEnabled = SDL_TRUE; - - if (CDAudio_GetAudioDiskInfo()==-1) - { - CONS_Printf("%s", M_GetText("No CD in drive\n")); - cdValid = SDL_FALSE; - } - - COM_AddCommand ("cd", Command_Cd_f); - - CONS_Printf("%s", M_GetText("CD audio Initialized\n")); -#endif -} - - - -// -/************************************************************************** - * - * function: UpdateCD - * - * description: - * sets CD volume (may have changed) and initiates play evey 2 seconds - * in case the song has elapsed - * - **************************************************************************/ -void I_UpdateCD (void) -{ -#ifndef NOSDLCD - static Uint32 lastchk = 0; - - if (!cdEnabled || !cdrom) - return; - - I_SetVolumeCD(cd_volume.value); - - if (cdPlaying && lastchk < SDL_GetTicks()) - { - lastchk = SDL_GetTicks() + 2000; //two seconds between chks - - if (CDAudio_GetAudioDiskInfo()==-1) - { - cdPlaying = SDL_FALSE; - return; - } - - if (cdStatus != CD_PLAYING && cdStatus != CD_PAUSED) - { - cdPlaying = SDL_FALSE; - if (playLooping) - I_PlayCD(playTrack, true); - } - } -#endif -} - - - -/************************************************************************** - * - * function: PlayCD - * - * description: - * play the requested track and set the looping flag - * pauses the CD if volume is 0 - * - **************************************************************************/ - -void I_PlayCD (UINT8 track, UINT8 looping) -{ -#ifdef NOSDLCD - (void)track; - (void)looping; -#else - if (!cdrom || !cdEnabled) - return; - - if (!cdValid) - { - CDAudio_GetAudioDiskInfo(); - if (!cdValid) - return; - } - - track = cdRemap[track]; - - if (track < 1 || track > maxTrack) - { - CONS_Printf(M_GetText("Bad track number %u.\n"), track); - return; - } - - // don't try to play a non-audio track - if (cdrom->track[track].type == SDL_DATA_TRACK) - { - CONS_Printf(M_GetText("Track %u is not audio\n"), track); - return; - } - - if (cdPlaying) - { - if (playTrack == track) - return; - I_StopCD(); - } - - if (SDL_CDPlayTracks(cdrom, track, 0, 1, 0)) - { - CONS_Printf(M_GetText("Error playing track %d: %s\n"), track, SDL_GetError()); - return; - } - - playLooping = looping; - playTrack = (Uint8)track; - cdPlaying = SDL_TRUE; - - if (cd_volume.value == 0) - I_PauseCD(); -#endif -} - - -/************************************************************************** - * - * function: SetVolumeCD - * - * description: - * SDL does not support setting the CD volume - * use pause instead and toggle between full and no music - * - **************************************************************************/ - -boolean I_SetVolumeCD (INT32 volume) -{ -#ifdef NOSDLCD - (void)volume; -#else - if (volume != cdvolume) - { - if (volume > 0 && volume < 16) - { - CV_SetValue(&cd_volume, 31); - cdvolume = 31; - I_ResumeCD(); - } - else if (volume > 15 && volume < 31) - { - CV_SetValue(&cd_volume, 0); - cdvolume = 0; - I_PauseCD(); - } - } -#endif - return false; -} - -#endif diff --git a/src/sdl12/i_main.c b/src/sdl12/i_main.c deleted file mode 100644 index 7d14ca9e5..000000000 --- a/src/sdl12/i_main.c +++ /dev/null @@ -1,166 +0,0 @@ -// Emacs style mode select -*- C++ -*- -//----------------------------------------------------------------------------- -// -// Copyright (C) 1993-1996 by id Software, Inc. -// Copyright (C) 1998-2000 by DooM Legacy Team. -// -// 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 2 -// 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. -//----------------------------------------------------------------------------- -/// \file -/// \brief Main program, simply calls D_SRB2Main and D_SRB2Loop, the high level loop. - -#include "../doomdef.h" -#include "../m_argv.h" -#include "../d_main.h" -#include "../i_system.h" - -#ifdef __GNUC__ -#include -#endif - -#ifdef HAVE_SDL - -#ifdef HAVE_TTF -#include "SDL.h" -#include "i_ttf.h" -#endif - -#ifdef SDLMAIN -#include "SDL_main.h" -#elif defined(FORCESDLMAIN) -extern int SDL_main(int argc, char *argv[]); -#endif - -#ifdef LOGMESSAGES -FILE *logstream = NULL; -#endif - -#ifndef DOXYGEN -#ifndef O_TEXT -#define O_TEXT 0 -#endif - -#ifndef O_SEQUENTIAL -#define O_SEQUENTIAL 0 -#endif -#endif - -#ifdef _WIN32 -#include "../win32/win_dbg.h" -typedef BOOL (WINAPI *p_IsDebuggerPresent)(VOID); -#endif - -#ifdef _WIN32 -static inline VOID MakeCodeWritable(VOID) -{ -#ifdef USEASM // Disable write-protection of code segment - DWORD OldRights; - const DWORD NewRights = PAGE_EXECUTE_READWRITE; - PBYTE pBaseOfImage = (PBYTE)GetModuleHandle(NULL); - PIMAGE_DOS_HEADER dosH =(PIMAGE_DOS_HEADER)pBaseOfImage; - PIMAGE_NT_HEADERS ntH = (PIMAGE_NT_HEADERS)(pBaseOfImage + dosH->e_lfanew); - PIMAGE_OPTIONAL_HEADER oH = (PIMAGE_OPTIONAL_HEADER) - ((PBYTE)ntH + sizeof (IMAGE_NT_SIGNATURE) + sizeof (IMAGE_FILE_HEADER)); - LPVOID pA = pBaseOfImage+oH->BaseOfCode; - SIZE_T pS = oH->SizeOfCode; -#if 1 // try to find the text section - PIMAGE_SECTION_HEADER ntS = IMAGE_FIRST_SECTION (ntH); - WORD s; - for (s = 0; s < ntH->FileHeader.NumberOfSections; s++) - { - if (memcmp (ntS[s].Name, ".text\0\0", 8) == 0) - { - pA = pBaseOfImage+ntS[s].VirtualAddress; - pS = ntS[s].Misc.VirtualSize; - break; - } - } -#endif - - if (!VirtualProtect(pA,pS,NewRights,&OldRights)) - I_Error("Could not make code writable\n"); -#endif -} -#endif - - -/** \brief The main function - - \param argc number of arg - \param *argv string table - - \return int -*/ -FUNCNORETURN -#ifdef FORCESDLMAIN -int SDL_main(int argc, char **argv) -#else -int main(int argc, char **argv) -#endif -{ - const char *logdir = NULL; - myargc = argc; - myargv = argv; /// \todo pull out path to exe from this string - -#ifdef HAVE_TTF -#ifdef _WIN32 - I_StartupTTF(FONTPOINTSIZE, SDL_INIT_VIDEO|SDL_INIT_AUDIO, SDL_SWSURFACE); -#else - I_StartupTTF(FONTPOINTSIZE, SDL_INIT_VIDEO, SDL_SWSURFACE); -#endif -#endif - - logdir = D_Home(); - -#ifdef LOGMESSAGES -#ifdef DEFAULTDIR - if (logdir) - logstream = fopen(va("%s/"DEFAULTDIR"/srb2log.txt",logdir), "a"); - else -#endif - logstream = fopen("./srb2log.txt", "a"); -#endif - - //I_OutputMsg("I_StartupSystem() ...\n"); - I_StartupSystem(); -#ifdef _WIN32 - { - p_IsDebuggerPresent pfnIsDebuggerPresent = (p_IsDebuggerPresent)GetProcAddress(GetModuleHandleA("kernel32.dll"), "IsDebuggerPresent"); - if ((!pfnIsDebuggerPresent || !pfnIsDebuggerPresent()) -#ifdef BUGTRAP - && !InitBugTrap() -#endif - ) - { - LoadLibraryA("exchndl.dll"); - } - } - prevExceptionFilter = SetUnhandledExceptionFilter(RecordExceptionInfo); - MakeCodeWritable(); -#endif - // startup SRB2 - CONS_Printf("%s", M_GetText("Setting up SRB2...\n")); - D_SRB2Main(); - CONS_Printf("%s", M_GetText("Entering main game loop...\n")); - // never return - D_SRB2Loop(); - -#ifdef BUGTRAP - // This is safe even if BT didn't start. - ShutdownBugTrap(); -#endif - - // return to OS -#ifndef __GNUC__ - return 0; -#endif -} -#endif diff --git a/src/sdl12/i_net.c b/src/sdl12/i_net.c deleted file mode 100644 index ee4a34c13..000000000 --- a/src/sdl12/i_net.c +++ /dev/null @@ -1,442 +0,0 @@ -// Emacs style mode select -*- C++ -*- -//----------------------------------------------------------------------------- -// -// Copyright (C) 1993-1996 by id Software, Inc. -// Portions Copyright (C) 1998-2000 by DooM Legacy Team. -// -// 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 2 -// 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. -//----------------------------------------------------------------------------- -/// \file -/// \brief SDL network interface - -#include "../doomdef.h" - -#include "../i_system.h" -#include "../d_event.h" -#include "../d_net.h" -#include "../m_argv.h" - -#include "../doomstat.h" - -#include "../i_net.h" - -#include "../z_zone.h" - -#include "../i_tcp.h" - -#ifdef HAVE_SDL - -#ifdef HAVE_SDLNET - -#include "SDL_net.h" - -#define MAXBANS 20 - -static IPaddress clientaddress[MAXNETNODES+1]; -static IPaddress banned[MAXBANS]; - -static UDPpacket mypacket; -static UDPsocket mysocket = NULL; -static SDLNet_SocketSet myset = NULL; - -static size_t numbans = 0; -static boolean NET_bannednode[MAXNETNODES+1]; /// \note do we really need the +1? -static boolean init_SDLNet_driver = false; - -static const char *NET_AddrToStr(IPaddress* sk) -{ - static char s[22]; // 255.255.255.255:65535 - strcpy(s, SDLNet_ResolveIP(sk)); - if (sk->port != 0) strcat(s, va(":%d", sk->port)); - return s; -} - -static const char *NET_GetNodeAddress(INT32 node) -{ - if (!nodeconnected[node]) - return NULL; - return NET_AddrToStr(&clientaddress[node]); -} - -static const char *NET_GetBanAddress(size_t ban) -{ - if (ban > numbans) - return NULL; - return NET_AddrToStr(&banned[ban]); -} - -static boolean NET_cmpaddr(IPaddress* a, IPaddress* b) -{ - return (a->host == b->host && (b->port == 0 || a->port == b->port)); -} - -static boolean NET_CanGet(void) -{ - return myset?(SDLNet_CheckSockets(myset,0) == 1):false; -} - -static void NET_Get(void) -{ - INT32 mystatus; - INT32 newnode; - mypacket.len = MAXPACKETLENGTH; - if (!NET_CanGet()) - { - doomcom->remotenode = -1; // no packet - return; - } - mystatus = SDLNet_UDP_Recv(mysocket,&mypacket); - if (mystatus != -1) - { - if (mypacket.channel != -1) - { - doomcom->remotenode = mypacket.channel+1; // good packet from a game player - doomcom->datalength = mypacket.len; - return; - } - newnode = SDLNet_UDP_Bind(mysocket,-1,&mypacket.address); - if (newnode != -1) - { - size_t i; - newnode++; - M_Memcpy(&clientaddress[newnode], &mypacket.address, sizeof (IPaddress)); - DEBFILE(va("New node detected: node:%d address:%s\n", newnode, - NET_GetNodeAddress(newnode))); - doomcom->remotenode = newnode; // good packet from a game player - doomcom->datalength = mypacket.len; - for (i = 0; i < numbans; i++) - { - if (NET_cmpaddr(&mypacket.address, &banned[i])) - { - DEBFILE("This dude has been banned\n"); - NET_bannednode[newnode] = true; - break; - } - } - if (i == numbans) - NET_bannednode[newnode] = false; - return; - } - else - I_OutputMsg("SDL_Net: %s",SDLNet_GetError()); - } - else if (mystatus == -1) - { - I_OutputMsg("SDL_Net: %s",SDLNet_GetError()); - } - - DEBFILE("New node detected: No more free slots\n"); - doomcom->remotenode = -1; // no packet -} - -#if 0 -static boolean NET_CanSend(void) -{ - return true; -} -#endif - -static void NET_Send(void) -{ - if (!doomcom->remotenode) - return; - mypacket.len = doomcom->datalength; - if (SDLNet_UDP_Send(mysocket,doomcom->remotenode-1,&mypacket) == 0) - { - I_OutputMsg("SDL_Net: %s",SDLNet_GetError()); - } -} - -static void NET_FreeNodenum(INT32 numnode) -{ - // can't disconnect from self :) - if (!numnode) - return; - - DEBFILE(va("Free node %d (%s)\n", numnode, NET_GetNodeAddress(numnode))); - - SDLNet_UDP_Unbind(mysocket,numnode-1); - - memset(&clientaddress[numnode], 0, sizeof (IPaddress)); -} - -static UDPsocket NET_Socket(void) -{ - UDPsocket temp = NULL; - Uint16 portnum = 0; - IPaddress tempip = {INADDR_BROADCAST,0}; - //Hurdler: I'd like to put a server and a client on the same computer - //Logan: Me too - //BP: in fact for client we can use any free port we want i have read - // in some doc that connect in udp can do it for us... - //Alam: where? - if (M_CheckParm("-clientport")) - { - if (!M_IsNextParm()) - I_Error("syntax: -clientport "); - portnum = atoi(M_GetNextParm()); - } - else - portnum = sock_port; - temp = SDLNet_UDP_Open(portnum); - if (!temp) - { - I_OutputMsg("SDL_Net: %s",SDLNet_GetError()); - return NULL; - } - if (SDLNet_UDP_Bind(temp,BROADCASTADDR-1,&tempip) == -1) - { - I_OutputMsg("SDL_Net: %s",SDLNet_GetError()); - SDLNet_UDP_Close(temp); - return NULL; - } - clientaddress[BROADCASTADDR].port = sock_port; - clientaddress[BROADCASTADDR].host = INADDR_BROADCAST; - - doomcom->extratics = 1; // internet is very high ping - - return temp; -} - -static void I_ShutdownSDLNetDriver(void) -{ - if (myset) SDLNet_FreeSocketSet(myset); - myset = NULL; - SDLNet_Quit(); - init_SDLNet_driver = false; -} - -static void I_InitSDLNetDriver(void) -{ - if (init_SDLNet_driver) - I_ShutdownSDLNetDriver(); - if (SDLNet_Init() == -1) - { - I_OutputMsg("SDL_Net: %s",SDLNet_GetError()); - return; // No good! - } - D_SetDoomcom(); - mypacket.data = doomcom->data; - init_SDLNet_driver = true; -} - -static void NET_CloseSocket(void) -{ - if (mysocket) - SDLNet_UDP_Close(mysocket); - mysocket = NULL; -} - -static SINT8 NET_NetMakeNodewPort(const char *hostname, const char *port) -{ - INT32 newnode; - UINT16 portnum = sock_port; - IPaddress hostnameIP; - - // retrieve portnum from address! - if (port && !port[0]) - portnum = atoi(port); - - if (SDLNet_ResolveHost(&hostnameIP,hostname,portnum) == -1) - { - I_OutputMsg("SDL_Net: %s",SDLNet_GetError()); - return -1; - } - newnode = SDLNet_UDP_Bind(mysocket,-1,&hostnameIP); - if (newnode == -1) - { - I_OutputMsg("SDL_Net: %s",SDLNet_GetError()); - return newnode; - } - newnode++; - M_Memcpy(&clientaddress[newnode],&hostnameIP,sizeof (IPaddress)); - return (SINT8)newnode; -} - - -static boolean NET_OpenSocket(void) -{ - memset(clientaddress, 0, sizeof (clientaddress)); - - //I_OutputMsg("SDL_Net Code starting up\n"); - - I_NetSend = NET_Send; - I_NetGet = NET_Get; - I_NetCloseSocket = NET_CloseSocket; - I_NetFreeNodenum = NET_FreeNodenum; - I_NetMakeNodewPort = NET_NetMakeNodewPort; - - //I_NetCanSend = NET_CanSend; - - // build the socket but close it first - NET_CloseSocket(); - mysocket = NET_Socket(); - - if (!mysocket) - return false; - - // for select - myset = SDLNet_AllocSocketSet(1); - if (!myset) - { - I_OutputMsg("SDL_Net: %s",SDLNet_GetError()); - return false; - } - if (SDLNet_UDP_AddSocket(myset,mysocket) == -1) - { - I_OutputMsg("SDL_Net: %s",SDLNet_GetError()); - return false; - } - return true; -} - -static boolean NET_Ban(INT32 node) -{ - if (numbans == MAXBANS) - return false; - - M_Memcpy(&banned[numbans], &clientaddress[node], sizeof (IPaddress)); - banned[numbans].port = 0; - numbans++; - return true; -} - -static boolean NET_SetBanAddress(const char *address, const char *mask) -{ - (void)mask; - if (bans == MAXBANS) - return false; - - if (SDLNet_ResolveHost(&banned[numbans], address, 0) == -1) - return false; - numbans++; - return true; -} - -static void NET_ClearBans(void) -{ - numbans = 0; -} -#endif - -// -// I_InitNetwork -// Only required for DOS, so this is more a dummy -// -boolean I_InitNetwork(void) -{ -#ifdef HAVE_SDLNET - char serverhostname[255]; - boolean ret = false; - SDL_version SDLcompiled; - const SDL_version *SDLlinked = SDLNet_Linked_Version(); - SDL_NET_VERSION(&SDLcompiled) - I_OutputMsg("Compiled for SDL_Net version: %d.%d.%d\n", - SDLcompiled.major, SDLcompiled.minor, SDLcompiled.patch); - I_OutputMsg("Linked with SDL_Net version: %d.%d.%d\n", - SDLlinked->major, SDLlinked->minor, SDLlinked->patch); - //if (!M_CheckParm ("-sdlnet")) - // return false; - // initilize the driver - I_InitSDLNetDriver(); - I_AddExitFunc(I_ShutdownSDLNetDriver); - if (!init_SDLNet_driver) - return false; - - if (M_CheckParm("-udpport")) - { - if (M_IsNextParm()) - sock_port = (UINT16)atoi(M_GetNextParm()); - else - sock_port = 0; - } - - // parse network game options, - if (M_CheckParm("-server") || dedicated) - { - server = true; - - // If a number of clients (i.e. nodes) is specified, the server will wait for the clients - // to connect before starting. - // If no number is specified here, the server starts with 1 client, and others can join - // in-game. - // Since Boris has implemented join in-game, there is no actual need for specifying a - // particular number here. - // FIXME: for dedicated server, numnodes needs to be set to 0 upon start -/* if (M_IsNextParm()) - doomcom->numnodes = (INT16)atoi(M_GetNextParm()); - else */if (dedicated) - doomcom->numnodes = 0; - else - doomcom->numnodes = 1; - - if (doomcom->numnodes < 0) - doomcom->numnodes = 0; - if (doomcom->numnodes > MAXNETNODES) - doomcom->numnodes = MAXNETNODES; - - // server - servernode = 0; - // FIXME: - // ??? and now ? - // server on a big modem ??? 4*isdn - net_bandwidth = 16000; - hardware_MAXPACKETLENGTH = INETPACKETLENGTH; - - ret = true; - } - else if (M_CheckParm("-connect")) - { - if (M_IsNextParm()) - strcpy(serverhostname, M_GetNextParm()); - else - serverhostname[0] = 0; // assuming server in the LAN, use broadcast to detect it - - // server address only in ip - if (serverhostname[0]) - { - COM_BufAddText("connect \""); - COM_BufAddText(serverhostname); - COM_BufAddText("\"\n"); - - // probably modem - hardware_MAXPACKETLENGTH = INETPACKETLENGTH; - } - else - { - // so we're on a LAN - COM_BufAddText("connect any\n"); - - net_bandwidth = 800000; - hardware_MAXPACKETLENGTH = MAXPACKETLENGTH; - } - } - - mypacket.maxlen = hardware_MAXPACKETLENGTH; - I_NetOpenSocket = NET_OpenSocket; - I_Ban = NET_Ban; - I_ClearBans = NET_ClearBans; - I_GetNodeAddress = NET_GetNodeAddress; - I_GetBenAddress = NET_GetBenAddress; - I_SetBanAddress = NET_SetBanAddress; - bannednode = NET_bannednode; - - return ret; -#else - if ( M_CheckParm ("-net") ) - { - I_Error("-net not supported, use -server and -connect\n" - "see docs for more\n"); - } - return false; -#endif -} -#endif diff --git a/src/sdl12/i_system.c b/src/sdl12/i_system.c deleted file mode 100644 index 9a8f0bb46..000000000 --- a/src/sdl12/i_system.c +++ /dev/null @@ -1,2897 +0,0 @@ -// Emacs style mode select -*- C++ -*- -//----------------------------------------------------------------------------- -// -// Copyright (C) 1993-1996 by id Software, Inc. -// Portions Copyright (C) 1998-2000 by DooM Legacy Team. -// -// 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 2 -// 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. -// -// Changes by Graue are in the public domain. -// -//----------------------------------------------------------------------------- -/// \file -/// \brief SRB2 system stuff for SDL - -#include - -#ifdef _WIN32 -#define RPC_NO_WINDOWS_H -#include -#include "../doomtype.h" -typedef BOOL (WINAPI *p_GetDiskFreeSpaceExA)(LPCSTR, PULARGE_INTEGER, PULARGE_INTEGER, PULARGE_INTEGER); -typedef BOOL (WINAPI *p_IsProcessorFeaturePresent) (DWORD); -typedef DWORD (WINAPI *p_timeGetTime) (void); -typedef UINT (WINAPI *p_timeEndPeriod) (UINT); -typedef HANDLE (WINAPI *p_OpenFileMappingA) (DWORD, BOOL, LPCSTR); -typedef LPVOID (WINAPI *p_MapViewOfFile) (HANDLE, DWORD, DWORD, DWORD, SIZE_T); -typedef HANDLE (WINAPI *p_GetCurrentProcess) (VOID); -typedef BOOL (WINAPI *p_GetProcessAffinityMask) (HANDLE, PDWORD_PTR, PDWORD_PTR); -typedef BOOL (WINAPI *p_SetProcessAffinityMask) (HANDLE, DWORD_PTR); -#endif -#include -#include -#include -#ifdef __GNUC__ -#include -#elif defined (_MSC_VER) -#include -#endif -#if defined (__unix__) || defined (UNIXCOMMON) -#include -#endif - -#include -#ifdef _WIN32 -#include -#endif - -#ifdef _MSC_VER -#pragma warning(disable : 4214 4244) -#endif - -#ifdef HAVE_SDL - -#include "SDL.h" - -#ifdef HAVE_TTF -#include "i_ttf.h" -#endif - -#ifdef _MSC_VER -#pragma warning(default : 4214 4244) -#endif - -#if SDL_VERSION_ATLEAST(1,2,7) -#include "SDL_cpuinfo.h" // 1.2.7 or greater -#define HAVE_SDLCPUINFO -#endif - -#if defined (__unix__) || defined(__APPLE__) || (defined (UNIXCOMMON) && !defined (__HAIKU__)) -#if defined (__linux__) -#include -#else -#include -#include -/*For meminfo*/ -#include -#ifdef FREEBSD -#include -#endif -#include -#include -#endif -#endif - -#if defined (__linux__) || (defined (UNIXCOMMON) && !defined (__HAIKU__)) -#ifndef NOTERMIOS -#include -#include // ioctl -#define HAVE_TERMIOS -#endif -#endif - -#ifndef NOMUMBLE -#ifdef __linux__ // need -lrt -#include -#ifdef MAP_FAILED -#define HAVE_SHM -#endif -#include -#endif - -#ifdef _WIN32 -#define HAVE_MUMBLE -#define WINMUMBLE -#elif defined (HAVE_SHM) -#define HAVE_MUMBLE -#endif -#endif // NOMUMBLE - -#ifndef O_BINARY -#define O_BINARY 0 -#endif - -// Locations for searching the srb2.srb -#if defined (__unix__) || defined(__APPLE__) || defined (UNIXCOMMON) -#define DEFAULTWADLOCATION1 "/usr/local/share/games/SRB2" -#define DEFAULTWADLOCATION2 "/usr/local/games/SRB2" -#define DEFAULTWADLOCATION3 "/usr/share/games/SRB2" -#define DEFAULTWADLOCATION4 "/usr/games/SRB2" -#define DEFAULTSEARCHPATH1 "/usr/local/games" -#define DEFAULTSEARCHPATH2 "/usr/games" -#define DEFAULTSEARCHPATH3 "/usr/local" -#elif defined (_WIN32) -#define DEFAULTWADLOCATION1 "c:\\games\\srb2" -#define DEFAULTWADLOCATION2 "\\games\\srb2" -#define DEFAULTSEARCHPATH1 "c:\\games" -#define DEFAULTSEARCHPATH2 "\\games" -#endif - -/** \brief WAD file to look for -*/ -#define WADKEYWORD1 "srb2.srb" -#define WADKEYWORD2 "srb2.wad" -/** \brief holds wad path -*/ -static char returnWadPath[256]; - -//Alam_GBC: SDL - -#include "../doomdef.h" -#include "../m_misc.h" -#include "../i_video.h" -#include "../i_sound.h" -#include "../i_system.h" -#include "../screen.h" //vid.WndParent -#include "../d_net.h" -#include "../g_game.h" -#include "../filesrch.h" -#include "endtxt.h" -#include "sdlmain.h" - -#include "../i_joy.h" - -#include "../m_argv.h" - -#ifdef MAC_ALERT -#include "macosx/mac_alert.h" -#endif - -#include "../d_main.h" - -#if !defined(NOMUMBLE) && defined(HAVE_MUMBLE) -// Mumble context string -#include "../d_clisrv.h" -#include "../byteptr.h" -#endif - -/** \brief The JoyReset function - - \param JoySet Joystick info to reset - - \return void -*/ -static void JoyReset(SDLJoyInfo_t *JoySet) -{ - if (JoySet->dev) - { - SDL_JoystickClose(JoySet->dev); - } - JoySet->dev = NULL; - JoySet->oldjoy = -1; - JoySet->axises = JoySet->buttons = JoySet->hats = JoySet->balls = 0; - //JoySet->scale -} - -/** \brief First joystick up and running -*/ -static INT32 joystick_started = 0; - -/** \brief SDL info about joystick 1 -*/ -SDLJoyInfo_t JoyInfo; - - -/** \brief Second joystick up and running -*/ -static INT32 joystick2_started = 0; - -/** \brief SDL inof about joystick 2 -*/ -SDLJoyInfo_t JoyInfo2; - -#ifdef HAVE_TERMIOS -static INT32 fdmouse2 = -1; -static INT32 mouse2_started = 0; -#endif - -SDL_bool consolevent = SDL_FALSE; -SDL_bool framebuffer = SDL_FALSE; - -UINT8 keyboard_started = false; - -#if 0 -static void signal_handler(INT32 num) -{ - //static char msg[] = "oh no! back to reality!\r\n"; - char * sigmsg; - char sigdef[32]; - - switch (num) - { - case SIGINT: - sigmsg = "interrupt"; - break; - case SIGILL: - sigmsg = "illegal instruction - invalid function image"; - break; - case SIGFPE: - sigmsg = "floating point exception"; - break; - case SIGSEGV: - sigmsg = "segment violation"; - break; - case SIGTERM: - sigmsg = "Software termination signal from kill"; - break; -#if !(defined (__unix_) || defined (UNIXCOMMON)) - case SIGBREAK: - sigmsg = "Ctrl-Break sequence"; - break; -#endif - case SIGABRT: - sigmsg = "abnormal termination triggered by abort call"; - break; - default: - sprintf(sigdef,"signal number %d", num); - sigmsg = sigdef; - } - - I_OutputMsg("signal_handler() error: %s\n", sigmsg); - signal(num, SIG_DFL); //default signal action - raise(num); - I_Quit(); -} -#endif - -#if defined (NDEBUG) -FUNCNORETURN static ATTRNORETURN void quit_handler(int num) -{ - signal(num, SIG_DFL); //default signal action - raise(num); - I_Quit(); -} -#endif - -#ifdef HAVE_TERMIOS -// TERMIOS console code from Quake3: thank you! -SDL_bool stdin_active = SDL_TRUE; - -typedef struct -{ - size_t cursor; - char buffer[256]; -} feild_t; - -feild_t tty_con; - -// when printing general stuff to stdout stderr (Sys_Printf) -// we need to disable the tty console stuff -// this increments so we can recursively disable -static INT32 ttycon_hide = 0; -// some key codes that the terminal may be using -// TTimo NOTE: I'm not sure how relevant this is -static INT32 tty_erase; -static INT32 tty_eof; - -static struct termios tty_tc; - -// ============================================================= -// tty console routines -// NOTE: if the user is editing a line when something gets printed to the early console then it won't look good -// so we provide tty_Clear and tty_Show to be called before and after a stdout or stderr output -// ============================================================= - -// flush stdin, I suspect some terminals are sending a LOT of garbage -// FIXME TTimo relevant? -#if 0 -static inline void tty_FlushIn(void) -{ - char key; - while (read(STDIN_FILENO, &key, 1)!=-1); -} -#endif - -// do a backspace -// TTimo NOTE: it seems on some terminals just sending '\b' is not enough -// so for now, in any case we send "\b \b" .. yeah well .. -// (there may be a way to find out if '\b' alone would work though) -static void tty_Back(void) -{ - char key; - ssize_t d; - key = '\b'; - d = write(STDOUT_FILENO, &key, 1); - key = ' '; - d = write(STDOUT_FILENO, &key, 1); - key = '\b'; - d = write(STDOUT_FILENO, &key, 1); - (void)d; -} - -static void tty_Clear(void) -{ - size_t i; - if (tty_con.cursor>0) - { - for (i=0; i0); - ttycon_hide--; - if (ttycon_hide == 0 && tty_con.cursor) - { - for (i=0; i 0) - { - tty_con.cursor--; - tty_con.buffer[tty_con.cursor] = '\0'; - tty_Back(); - } - ev.data1 = KEY_BACKSPACE; - } - else if (key < ' ') // check if this is a control char - { - if (key == '\n') - { - tty_Clear(); - tty_con.cursor = 0; - ev.data1 = KEY_ENTER; - } - else return; - } - else - { - // push regular character - ev.data1 = tty_con.buffer[tty_con.cursor] = key; - tty_con.cursor++; - // print the current line (this is differential) - d = write(STDOUT_FILENO, &key, 1); - } - if (ev.data1) D_PostEvent(&ev); - //tty_FlushIn(); - (void)d; -} - -#elif defined (_WIN32) -static BOOL I_ReadyConsole(HANDLE ci) -{ - DWORD gotinput; - if (ci == INVALID_HANDLE_VALUE) return FALSE; - if (WaitForSingleObject(ci,0) != WAIT_OBJECT_0) return FALSE; - if (GetFileType(ci) != FILE_TYPE_CHAR) return FALSE; - if (!GetConsoleMode(ci, &gotinput)) return FALSE; - return (GetNumberOfConsoleInputEvents(ci, &gotinput) && gotinput); -} - -static boolean entering_con_command = false; - -void I_GetConsoleEvents(void) -{ - event_t ev = {0,0,0,0}; - HANDLE ci = GetStdHandle(STD_INPUT_HANDLE); - HANDLE co = GetStdHandle(STD_OUTPUT_HANDLE); - CONSOLE_SCREEN_BUFFER_INFO CSBI; - INPUT_RECORD input; - DWORD t; - - while (I_ReadyConsole(ci) && ReadConsoleInput(ci, &input, 1, &t) && t) - { - memset(&ev,0x00,sizeof (ev)); - switch (input.EventType) - { - case KEY_EVENT: - if (input.Event.KeyEvent.bKeyDown) - { - ev.type = ev_console; - entering_con_command = true; - switch (input.Event.KeyEvent.wVirtualKeyCode) - { - case VK_ESCAPE: - case VK_TAB: - ev.data1 = KEY_NULL; - break; - case VK_SHIFT: - ev.data1 = KEY_LSHIFT; - break; - case VK_RETURN: - entering_con_command = false; - // Fall through. - default: - ev.data1 = MapVirtualKey(input.Event.KeyEvent.wVirtualKeyCode,2); // convert in to char - } - if (co != INVALID_HANDLE_VALUE && GetFileType(co) == FILE_TYPE_CHAR && GetConsoleMode(co, &t)) - { - if (ev.data1 && ev.data1 != KEY_LSHIFT && ev.data1 != KEY_RSHIFT) - { -#ifdef _UNICODE - WriteConsole(co, &input.Event.KeyEvent.uChar.UnicodeChar, 1, &t, NULL); -#else - WriteConsole(co, &input.Event.KeyEvent.uChar.AsciiChar, 1 , &t, NULL); -#endif - } - if (input.Event.KeyEvent.wVirtualKeyCode == VK_BACK - && GetConsoleScreenBufferInfo(co,&CSBI)) - { - WriteConsoleOutputCharacterA(co, " ",1, CSBI.dwCursorPosition, &t); - } - } - } - else - { - ev.type = ev_keyup; - switch (input.Event.KeyEvent.wVirtualKeyCode) - { - case VK_SHIFT: - ev.data1 = KEY_LSHIFT; - break; - default: - break; - } - } - if (ev.data1) D_PostEvent(&ev); - break; - case MOUSE_EVENT: - case WINDOW_BUFFER_SIZE_EVENT: - case MENU_EVENT: - case FOCUS_EVENT: - break; - } - } -} - -static void I_StartupConsole(void) -{ - HANDLE ci, co; - const INT32 ded = M_CheckParm("-dedicated"); -#ifdef SDLMAIN - BOOL gotConsole = FALSE; - if (M_CheckParm("-console") || ded) - gotConsole = AllocConsole(); -#else - BOOL gotConsole = TRUE; - if (M_CheckParm("-detachconsole")) - { - FreeConsole(); - gotConsole = AllocConsole(); - } -#ifdef _DEBUG - else if (M_CheckParm("-noconsole") && !ded) -#else - else if (!M_CheckParm("-console") && !ded) -#endif - { - FreeConsole(); - gotConsole = FALSE; - } -#endif - - if (gotConsole) - { - SetConsoleTitleA("SRB2 Console"); - consolevent = SDL_TRUE; - } - - //Let get the real console HANDLE, because Mingw's Bash is bad! - ci = CreateFile(TEXT("CONIN$") , GENERIC_READ, FILE_SHARE_READ, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL); - co = CreateFile(TEXT("CONOUT$"), GENERIC_WRITE|GENERIC_READ, FILE_SHARE_WRITE, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL); - if (ci != INVALID_HANDLE_VALUE) - { - const DWORD CM = ENABLE_LINE_INPUT|ENABLE_ECHO_INPUT|ENABLE_PROCESSED_INPUT; - SetStdHandle(STD_INPUT_HANDLE, ci); - if (GetFileType(ci) == FILE_TYPE_CHAR) - SetConsoleMode(ci, CM); //default mode but no ENABLE_MOUSE_INPUT - } - if (co != INVALID_HANDLE_VALUE) - { - SetStdHandle(STD_OUTPUT_HANDLE, co); - SetStdHandle(STD_ERROR_HANDLE, co); - } -} -static inline void I_ShutdownConsole(void){} -#else -void I_GetConsoleEvents(void){} -static inline void I_StartupConsole(void) -{ -#ifdef _DEBUG - consolevent = !M_CheckParm("-noconsole"); -#else - consolevent = M_CheckParm("-console"); -#endif - - framebuffer = M_CheckParm("-framebuffer"); - - if (framebuffer) - consolevent = SDL_FALSE; -} -static inline void I_ShutdownConsole(void){} -#endif - -// -// StartupKeyboard -// -void I_StartupKeyboard (void) -{ -#if defined (NDEBUG) -#ifdef SIGILL -// signal(SIGILL , signal_handler); -#endif -#ifdef SIGINT - signal(SIGINT , quit_handler); -#endif -#ifdef SIGSEGV -// signal(SIGSEGV , signal_handler); -#endif -#ifdef SIGBREAK - signal(SIGBREAK , quit_handler); -#endif -#ifdef SIGABRT -// signal(SIGABRT , signal_handler); -#endif -#ifdef SIGTERM - signal(SIGTERM , quit_handler); -#endif -#endif -} - -// -//I_OutputMsg -// -void I_OutputMsg(const char *fmt, ...) -{ - size_t len; - char txt[8192]; - va_list argptr; - - va_start(argptr,fmt); - vsprintf(txt, fmt, argptr); - va_end(argptr); - -#ifdef HAVE_TTF - if (TTF_WasInit()) I_TTFDrawText(currentfont, solid, DEFAULTFONTFGR, DEFAULTFONTFGG, DEFAULTFONTFGB, DEFAULTFONTFGA, - DEFAULTFONTBGR, DEFAULTFONTBGG, DEFAULTFONTBGB, DEFAULTFONTBGA, txt); -#endif - -#if defined (_WIN32) && defined (_MSC_VER) - OutputDebugStringA(txt); -#endif - - len = strlen(txt); - -#ifdef LOGMESSAGES - if (logstream) - { - size_t d = fwrite(txt, len, 1, logstream); - fflush(logstream); - (void)d; - } -#endif - -#ifdef _WIN32 -#ifdef DEBUGFILE - if (debugfile != stderr) -#endif - { - HANDLE co = GetStdHandle(STD_OUTPUT_HANDLE); - DWORD bytesWritten; - - if (co == INVALID_HANDLE_VALUE) - return; - - if (GetFileType(co) == FILE_TYPE_CHAR && GetConsoleMode(co, &bytesWritten)) - { - static COORD coordNextWrite = {0,0}; - LPVOID oldLines = NULL; - INT oldLength; - CONSOLE_SCREEN_BUFFER_INFO csbi; - - // Save the lines that we're going to obliterate. - GetConsoleScreenBufferInfo(co, &csbi); - oldLength = csbi.dwSize.X * (csbi.dwCursorPosition.Y - coordNextWrite.Y) + csbi.dwCursorPosition.X - coordNextWrite.X; - - if (oldLength > 0) - { - LPVOID blank = malloc(oldLength); - if (!blank) return; - memset(blank, ' ', oldLength); // Blank out. - oldLines = malloc(oldLength*sizeof(TCHAR)); - if (!oldLines) - { - free(blank); - return; - } - - ReadConsoleOutputCharacter(co, oldLines, oldLength, coordNextWrite, &bytesWritten); - - // Move to where we what to print - which is where we would've been, - // had console input not been in the way, - SetConsoleCursorPosition(co, coordNextWrite); - - WriteConsoleA(co, blank, oldLength, &bytesWritten, NULL); - free(blank); - - // And back to where we want to print again. - SetConsoleCursorPosition(co, coordNextWrite); - } - - // Actually write the string now! - WriteConsoleA(co, txt, (DWORD)len, &bytesWritten, NULL); - - // Next time, output where we left off. - GetConsoleScreenBufferInfo(co, &csbi); - coordNextWrite = csbi.dwCursorPosition; - - // Restore what was overwritten. - if (oldLines && entering_con_command) - WriteConsole(co, oldLines, oldLength, &bytesWritten, NULL); - if (oldLines) free(oldLines); - } - else // Redirected to a file. - WriteFile(co, txt, (DWORD)len, &bytesWritten, NULL); - } -#else -#ifdef HAVE_TERMIOS - if (consolevent) - { - tty_Hide(); - } -#endif - - if (!framebuffer) - fprintf(stderr, "%s", txt); -#ifdef HAVE_TERMIOS - if (consolevent) - { - tty_Show(); - } -#endif - - // 2004-03-03 AJR Since not all messages end in newline, some were getting displayed late. - if (!framebuffer) - fflush(stderr); - -#endif -} - -// -// I_GetKey -// -INT32 I_GetKey (void) -{ - // Warning: I_GetKey empties the event queue till next keypress - event_t *ev; - INT32 rc = 0; - - // return the first keypress from the event queue - for (; eventtail != eventhead; eventtail = (eventtail+1)&(MAXEVENTS-1)) - { - ev = &events[eventtail]; - if (ev->type == ev_keydown || ev->type == ev_console) - { - rc = ev->data1; - continue; - } - } - - return rc; -} - -// -// I_JoyScale -// -void I_JoyScale(void) -{ - Joystick.bGamepadStyle = cv_joyscale.value==0; - JoyInfo.scale = Joystick.bGamepadStyle?1:cv_joyscale.value; -} - -void I_JoyScale2(void) -{ - Joystick2.bGamepadStyle = cv_joyscale2.value==0; - JoyInfo2.scale = Joystick2.bGamepadStyle?1:cv_joyscale2.value; -} - -/** \brief Joystick 1 buttons states -*/ -static UINT64 lastjoybuttons = 0; - -/** \brief Joystick 1 hats state -*/ -static UINT64 lastjoyhats = 0; - -/** \brief Shuts down joystick 1 - - - \return void - - -*/ -static void I_ShutdownJoystick(void) -{ - INT32 i; - event_t event; - event.type=ev_keyup; - event.data2 = 0; - event.data3 = 0; - - lastjoybuttons = lastjoyhats = 0; - - // emulate the up of all joystick buttons - for (i=0;i= 0; i--) - { - joybuttons <<= 1; - if (SDL_JoystickGetButton(JoyInfo.dev,i)) - joybuttons |= 1; - } - - if (joybuttons != lastjoybuttons) - { - INT64 j = 1; // keep only bits that changed since last time - INT64 newbuttons = joybuttons ^ lastjoybuttons; - lastjoybuttons = joybuttons; - - for (i = 0; i < JOYBUTTONS; i++, j <<= 1) - { - if (newbuttons & j) // button changed state? - { - if (joybuttons & j) - event.type = ev_keydown; - else - event.type = ev_keyup; - event.data1 = KEY_JOY1 + i; - D_PostEvent(&event); - } - } - } -#endif - - for (i = JoyInfo.hats - 1; i >= 0; i--) - { - Uint8 hat = SDL_JoystickGetHat(JoyInfo.dev, i); - - if (hat & SDL_HAT_UP ) joyhats|=(UINT64)0x1<<(0 + 4*i); - if (hat & SDL_HAT_DOWN ) joyhats|=(UINT64)0x1<<(1 + 4*i); - if (hat & SDL_HAT_LEFT ) joyhats|=(UINT64)0x1<<(2 + 4*i); - if (hat & SDL_HAT_RIGHT) joyhats|=(UINT64)0x1<<(3 + 4*i); - } - - if (joyhats != lastjoyhats) - { - INT64 j = 1; // keep only bits that changed since last time - INT64 newhats = joyhats ^ lastjoyhats; - lastjoyhats = joyhats; - - for (i = 0; i < JOYHATS*4; i++, j <<= 1) - { - if (newhats & j) // hat changed state? - { - if (joyhats & j) - event.type = ev_keydown; - else - event.type = ev_keyup; - event.data1 = KEY_HAT1 + i; - D_PostEvent(&event); - } - } - } - -#if 0 - // send joystick axis positions - event.type = ev_joystick; - - for (i = JOYAXISSET - 1; i >= 0; i--) - { - event.data1 = i; - if (i*2 + 1 <= JoyInfo.axises) - axisx = SDL_JoystickGetAxis(JoyInfo.dev, i*2 + 0); - else axisx = 0; - if (i*2 + 2 <= JoyInfo.axises) - axisy = SDL_JoystickGetAxis(JoyInfo.dev, i*2 + 1); - else axisy = 0; - - // -32768 to 32767 - axisx = axisx/32; - axisy = axisy/32; - - if (Joystick.bGamepadStyle) - { - // gamepad control type, on or off, live or die - if (axisx < -(JOYAXISRANGE/2)) - event.data2 = -1; - else if (axisx > (JOYAXISRANGE/2)) - event.data2 = 1; - else event.data2 = 0; - if (axisy < -(JOYAXISRANGE/2)) - event.data3 = -1; - else if (axisy > (JOYAXISRANGE/2)) - event.data3 = 1; - else event.data3 = 0; - } - else - { - - axisx = JoyInfo.scale?((axisx/JoyInfo.scale)*JoyInfo.scale):axisx; - axisy = JoyInfo.scale?((axisy/JoyInfo.scale)*JoyInfo.scale):axisy; - -#ifdef SDL_JDEADZONE - if (-SDL_JDEADZONE <= axisx && axisx <= SDL_JDEADZONE) axisx = 0; - if (-SDL_JDEADZONE <= axisy && axisy <= SDL_JDEADZONE) axisy = 0; -#endif - - // analog control style , just send the raw data - event.data2 = axisx; // x axis - event.data3 = axisy; // y axis - } - D_PostEvent(&event); - } -#endif -} - -/** \brief Open joystick handle - - \param fname name of joystick - - \return axises - - -*/ -static int joy_open(const char *fname) -{ - int joyindex = atoi(fname); - int num_joy = 0; - int i; - - if (joystick_started == 0 && joystick2_started == 0) - { - if (SDL_InitSubSystem(SDL_INIT_JOYSTICK) == -1) - { - CONS_Printf(M_GetText("Couldn't initialize joystick: %s\n"), SDL_GetError()); - return -1; - } - else - { - num_joy = SDL_NumJoysticks(); - } - - if (num_joy < joyindex) - { - CONS_Printf(M_GetText("Cannot use joystick #%d/(%s), it doesn't exist\n"),joyindex,fname); - for (i = 0; i < num_joy; i++) - CONS_Printf("#%d/(%s)\n", i+1, SDL_JoystickName(i)); - I_ShutdownJoystick(); - return -1; - } - } - else - { - JoyReset(&JoyInfo); - //I_ShutdownJoystick(); - //joy_open(fname); - } - - num_joy = SDL_NumJoysticks(); - - if (joyindex <= 0 || num_joy == 0 || JoyInfo.oldjoy == joyindex) - { -// I_OutputMsg("Unable to use that joystick #(%s), non-number\n",fname); - if (num_joy != 0) - { - CONS_Printf(M_GetText("Found %d joysticks on this system\n"), num_joy); - for (i = 0; i < num_joy; i++) - CONS_Printf("#%d/(%s)\n", i+1, SDL_JoystickName(i)); - } - else - CONS_Printf("%s", M_GetText("Found no joysticks on this system\n")); - if (joyindex <= 0 || num_joy == 0) return 0; - } - - JoyInfo.dev = SDL_JoystickOpen(joyindex-1); - CONS_Printf(M_GetText("Joystick: %s\n"), SDL_JoystickName(joyindex-1)); - - if (JoyInfo.dev == NULL) - { - CONS_Printf(M_GetText("Couldn't open joystick: %s\n"), SDL_GetError()); - I_ShutdownJoystick(); - return -1; - } - else - { - JoyInfo.axises = SDL_JoystickNumAxes(JoyInfo.dev); - if (JoyInfo.axises > JOYAXISSET*2) - JoyInfo.axises = JOYAXISSET*2; -/* if (joyaxes<2) - { - I_OutputMsg("Not enought axes?\n"); - I_ShutdownJoystick(); - return 0; - }*/ - - JoyInfo.buttons = SDL_JoystickNumButtons(JoyInfo.dev); - if (JoyInfo.buttons > JOYBUTTONS) - JoyInfo.buttons = JOYBUTTONS; - - JoyInfo.hats = SDL_JoystickNumHats(JoyInfo.dev); - if (JoyInfo.hats > JOYHATS) - JoyInfo.hats = JOYHATS; - - JoyInfo.balls = SDL_JoystickNumBalls(JoyInfo.dev); - - //Joystick.bGamepadStyle = !stricmp(SDL_JoystickName(SDL_JoystickIndex(JoyInfo.dev)), "pad"); - - return JoyInfo.axises; - } -} - -//Joystick2 - -/** \brief Joystick 2 buttons states -*/ -static UINT64 lastjoy2buttons = 0; - -/** \brief Joystick 2 hats state -*/ -static UINT64 lastjoy2hats = 0; - -/** \brief Shuts down joystick 2 - - - \return void -*/ -static void I_ShutdownJoystick2(void) -{ - INT32 i; - event_t event; - event.type = ev_keyup; - event.data2 = 0; - event.data3 = 0; - - lastjoy2buttons = lastjoy2hats = 0; - - // emulate the up of all joystick buttons - for (i = 0; i < JOYBUTTONS; i++) - { - event.data1 = KEY_2JOY1 + i; - D_PostEvent(&event); - } - - // emulate the up of all joystick hats - for (i = 0; i < JOYHATS*4; i++) - { - event.data1 = KEY_2HAT1 + i; - D_PostEvent(&event); - } - - // reset joystick position - event.type = ev_joystick2; - for (i = 0; i < JOYAXISSET; i++) - { - event.data1 = i; - D_PostEvent(&event); - } - - JoyReset(&JoyInfo2); - if (!joystick_started && !joystick2_started && SDL_WasInit(SDL_INIT_JOYSTICK) == SDL_INIT_JOYSTICK) - { - SDL_QuitSubSystem(SDL_INIT_JOYSTICK); - if (cv_usejoystick2.value == 0) - { - DEBFILE("I_Joystick2: SDL's Joystick system has been shutdown\n"); - } - } -} - -void I_GetJoystick2Events(void) -{ - static event_t event = {0,0,0,0}; - INT32 i = 0; - UINT64 joyhats = 0; -#if 0 - INT64 joybuttons = 0; - INT32 axisx, axisy; -#endif - - if (!joystick2_started) - return; - - if (!JoyInfo2.dev) //I_ShutdownJoystick2(); - return; - - -#if 0 - //faB: look for as much buttons as g_input code supports, - // we don't use the others - for (i = JoyInfo2.buttons - 1; i >= 0; i--) - { - joybuttons <<= 1; - if (SDL_JoystickGetButton(JoyInfo2.dev,i)) - joybuttons |= 1; - } - - if (joybuttons != lastjoy2buttons) - { - INT64 j = 1; // keep only bits that changed since last time - INT64 newbuttons = joybuttons ^ lastjoy2buttons; - lastjoy2buttons = joybuttons; - - for (i = 0; i < JOYBUTTONS; i++, j <<= 1) - { - if (newbuttons & j) // button changed state? - { - if (joybuttons & j) - event.type = ev_keydown; - else - event.type = ev_keyup; - event.data1 = KEY_2JOY1 + i; - D_PostEvent(&event); - } - } - } -#endif - - for (i = JoyInfo2.hats - 1; i >= 0; i--) - { - Uint8 hat = SDL_JoystickGetHat(JoyInfo2.dev, i); - - if (hat & SDL_HAT_UP ) joyhats|=(UINT64)0x1<<(0 + 4*i); - if (hat & SDL_HAT_DOWN ) joyhats|=(UINT64)0x1<<(1 + 4*i); - if (hat & SDL_HAT_LEFT ) joyhats|=(UINT64)0x1<<(2 + 4*i); - if (hat & SDL_HAT_RIGHT) joyhats|=(UINT64)0x1<<(3 + 4*i); - } - - if (joyhats != lastjoy2hats) - { - INT64 j = 1; // keep only bits that changed since last time - INT64 newhats = joyhats ^ lastjoy2hats; - lastjoy2hats = joyhats; - - for (i = 0; i < JOYHATS*4; i++, j <<= 1) - { - if (newhats & j) // hat changed state? - { - if (joyhats & j) - event.type = ev_keydown; - else - event.type = ev_keyup; - event.data1 = KEY_2HAT1 + i; - D_PostEvent(&event); - } - } - } - -#if 0 - // send joystick axis positions - event.type = ev_joystick2; - - for (i = JOYAXISSET - 1; i >= 0; i--) - { - event.data1 = i; - if (i*2 + 1 <= JoyInfo2.axises) - axisx = SDL_JoystickGetAxis(JoyInfo2.dev, i*2 + 0); - else axisx = 0; - if (i*2 + 2 <= JoyInfo2.axises) - axisy = SDL_JoystickGetAxis(JoyInfo2.dev, i*2 + 1); - else axisy = 0; - - // -32768 to 32767 - axisx = axisx/32; - axisy = axisy/32; - - if (Joystick2.bGamepadStyle) - { - // gamepad control type, on or off, live or die - if (axisx < -(JOYAXISRANGE/2)) - event.data2 = -1; - else if (axisx > (JOYAXISRANGE/2)) - event.data2 = 1; - else - event.data2 = 0; - if (axisy < -(JOYAXISRANGE/2)) - event.data3 = -1; - else if (axisy > (JOYAXISRANGE/2)) - event.data3 = 1; - else - event.data3 = 0; - } - else - { - - axisx = JoyInfo2.scale?((axisx/JoyInfo2.scale)*JoyInfo2.scale):axisx; - axisy = JoyInfo2.scale?((axisy/JoyInfo2.scale)*JoyInfo2.scale):axisy; - -#ifdef SDL_JDEADZONE - if (-SDL_JDEADZONE <= axisx && axisx <= SDL_JDEADZONE) axisx = 0; - if (-SDL_JDEADZONE <= axisy && axisy <= SDL_JDEADZONE) axisy = 0; -#endif - - // analog control style , just send the raw data - event.data2 = axisx; // x axis - event.data3 = axisy; // y axis - } - D_PostEvent(&event); - } -#endif - -} - -/** \brief Open joystick handle - - \param fname name of joystick - - \return axises - - -*/ -static int joy_open2(const char *fname) -{ - int joyindex = atoi(fname); - int num_joy = 0; - int i; - - if (joystick_started == 0 && joystick2_started == 0) - { - if (SDL_InitSubSystem(SDL_INIT_JOYSTICK) == -1) - { - CONS_Printf(M_GetText("Couldn't initialize joystick: %s\n"), SDL_GetError()); - return -1; - } - else - num_joy = SDL_NumJoysticks(); - - if (num_joy < joyindex) - { - CONS_Printf(M_GetText("Cannot use joystick #%d/(%s), it doesn't exist\n"),joyindex,fname); - for (i = 0; i < num_joy; i++) - CONS_Printf("#%d/(%s)\n", i+1, SDL_JoystickName(i)); - I_ShutdownJoystick2(); - return -1; - } - } - else - { - JoyReset(&JoyInfo2); - //I_ShutdownJoystick(); - //joy_open(fname); - } - - num_joy = SDL_NumJoysticks(); - - if (joyindex <= 0 || num_joy == 0 || JoyInfo2.oldjoy == joyindex) - { -// I_OutputMsg("Unable to use that joystick #(%s), non-number\n",fname); - if (num_joy != 0) - { - CONS_Printf(M_GetText("Found %d joysticks on this system\n"), num_joy); - for (i = 0; i < num_joy; i++) - CONS_Printf("#%d/(%s)\n", i+1, SDL_JoystickName(i)); - } - else - CONS_Printf("%s", M_GetText("Found no joysticks on this system\n")); - if (joyindex <= 0 || num_joy == 0) return 0; - } - - JoyInfo2.dev = SDL_JoystickOpen(joyindex-1); - CONS_Printf(M_GetText("Joystick2: %s\n"), SDL_JoystickName(joyindex-1)); - - if (!JoyInfo2.dev) - { - CONS_Printf(M_GetText("Couldn't open joystick2: %s\n"), SDL_GetError()); - I_ShutdownJoystick2(); - return -1; - } - else - { - JoyInfo2.axises = SDL_JoystickNumAxes(JoyInfo2.dev); - if (JoyInfo2.axises > JOYAXISSET*2) - JoyInfo2.axises = JOYAXISSET*2; -/* if (joyaxes < 2) - { - I_OutputMsg("Not enought axes?\n"); - I_ShutdownJoystick2(); - return 0; - }*/ - - JoyInfo2.buttons = SDL_JoystickNumButtons(JoyInfo2.dev); - if (JoyInfo2.buttons > JOYBUTTONS) - JoyInfo2.buttons = JOYBUTTONS; - - JoyInfo2.hats = SDL_JoystickNumHats(JoyInfo2.dev); - if (JoyInfo2.hats > JOYHATS) - JoyInfo2.hats = JOYHATS; - - JoyInfo2.balls = SDL_JoystickNumBalls(JoyInfo2.dev); - - //Joystick.bGamepadStyle = !stricmp(SDL_JoystickName(SDL_JoystickIndex(JoyInfo2.dev)), "pad"); - - return JoyInfo2.axises; - } -} - -// -// I_InitJoystick -// -void I_InitJoystick(void) -{ - I_ShutdownJoystick(); - if (!strcmp(cv_usejoystick.string, "0") || M_CheckParm("-nojoy")) - return; - if (joy_open(cv_usejoystick.string) != -1) - JoyInfo.oldjoy = atoi(cv_usejoystick.string); - else - { - cv_usejoystick.value = 0; - return; - } - joystick_started = 1; -} - -void I_InitJoystick2(void) -{ - I_ShutdownJoystick2(); - if (!strcmp(cv_usejoystick2.string, "0") || M_CheckParm("-nojoy")) - return; - if (joy_open2(cv_usejoystick2.string) != -1) - JoyInfo2.oldjoy = atoi(cv_usejoystick2.string); - else - { - cv_usejoystick2.value = 0; - return; - } - joystick2_started = 1; -} - -static void I_ShutdownInput(void) -{ - if (SDL_WasInit(SDL_INIT_JOYSTICK) == SDL_INIT_JOYSTICK) - { - JoyReset(&JoyInfo); - JoyReset(&JoyInfo2); - SDL_QuitSubSystem(SDL_INIT_JOYSTICK); - } - -} - -INT32 I_NumJoys(void) -{ - INT32 numjoy = 0; - if (SDL_WasInit(SDL_INIT_JOYSTICK) == 0) - { - if (SDL_InitSubSystem(SDL_INIT_JOYSTICK) != -1) - numjoy = SDL_NumJoysticks(); - SDL_QuitSubSystem(SDL_INIT_JOYSTICK); - } - else - numjoy = SDL_NumJoysticks(); - return numjoy; -} - -const char *I_GetJoyName(INT32 joyindex) -{ - const char *joyname = "NA"; - joyindex--; //SDL's Joystick System starts at 0, not 1 - if (SDL_WasInit(SDL_INIT_JOYSTICK) == 0) - { - if (SDL_InitSubSystem(SDL_INIT_JOYSTICK) != -1) - joyname = SDL_JoystickName(joyindex); - SDL_QuitSubSystem(SDL_INIT_JOYSTICK); - } - else - joyname = SDL_JoystickName(joyindex); - return joyname; -} - -#ifndef NOMUMBLE -#ifdef HAVE_MUMBLE -// Best Mumble positional audio settings: -// Minimum distance 3.0 m -// Bloom 175% -// Maximum distance 80.0 m -// Minimum volume 50% -#define DEG2RAD (0.017453292519943295769236907684883l) // TAU/360 or PI/180 -#define MUMBLEUNIT (64.0f) // FRACUNITS in a Meter - -static struct { -#ifdef WINMUMBLE - UINT32 uiVersion; - DWORD uiTick; -#else - Uint32 uiVersion; - Uint32 uiTick; -#endif - float fAvatarPosition[3]; - float fAvatarFront[3]; - float fAvatarTop[3]; // defaults to Y-is-up (only used for leaning) - wchar_t name[256]; // game name - float fCameraPosition[3]; - float fCameraFront[3]; - float fCameraTop[3]; // defaults to Y-is-up (only used for leaning) - wchar_t identity[256]; // player id -#ifdef WINMUMBLE - UINT32 context_len; -#else - Uint32 context_len; -#endif - unsigned char context[256]; // server/team - wchar_t description[2048]; // game description -} *mumble = NULL; -#endif // HAVE_MUMBLE - -static void I_SetupMumble(void) -{ -#ifdef WINMUMBLE - HANDLE hMap = OpenFileMappingW(FILE_MAP_ALL_ACCESS, FALSE, L"MumbleLink"); - if (!hMap) - return; - - mumble = MapViewOfFile(hMap, FILE_MAP_ALL_ACCESS, 0, 0, sizeof(*mumble)); - if (!mumble) - CloseHandle(hMap); -#elif defined (HAVE_SHM) - int shmfd; - char memname[256]; - - snprintf(memname, 256, "/MumbleLink.%d", getuid()); - shmfd = shm_open(memname, O_RDWR, S_IRUSR | S_IWUSR); - - if(shmfd < 0) - return; - - mumble = mmap(NULL, sizeof(*mumble), PROT_READ | PROT_WRITE, MAP_SHARED, shmfd, 0); - if (mumble == MAP_FAILED) - mumble = NULL; -#endif -} - -void I_UpdateMumble(const mobj_t *mobj, const listener_t listener) -{ -#ifdef HAVE_MUMBLE - double angle; - fixed_t anglef; - - if (!mumble) - return; - - if(mumble->uiVersion != 2) { - wcsncpy(mumble->name, L"SRB2 "VERSIONSTRING, 256); - wcsncpy(mumble->description, L"Sonic Robo Blast 2 with integrated Mumble Link support.", 2048); - mumble->uiVersion = 2; - } - mumble->uiTick++; - - if (!netgame || gamestate != GS_LEVEL) { // Zero out, but never delink. - mumble->fAvatarPosition[0] = mumble->fAvatarPosition[1] = mumble->fAvatarPosition[2] = 0.0f; - mumble->fAvatarFront[0] = 1.0f; - mumble->fAvatarFront[1] = mumble->fAvatarFront[2] = 0.0f; - mumble->fCameraPosition[0] = mumble->fCameraPosition[1] = mumble->fCameraPosition[2] = 0.0f; - mumble->fCameraFront[0] = 1.0f; - mumble->fCameraFront[1] = mumble->fCameraFront[2] = 0.0f; - return; - } - - { - UINT8 *p = mumble->context; - WRITEMEM(p, server_context, 8); - WRITEINT16(p, gamemap); - mumble->context_len = p - mumble->context; - } - - if (mobj) { - mumble->fAvatarPosition[0] = FIXED_TO_FLOAT(mobj->x) / MUMBLEUNIT; - mumble->fAvatarPosition[1] = FIXED_TO_FLOAT(mobj->z) / MUMBLEUNIT; - mumble->fAvatarPosition[2] = FIXED_TO_FLOAT(mobj->y) / MUMBLEUNIT; - - anglef = AngleFixed(mobj->angle); - angle = FIXED_TO_FLOAT(anglef)*DEG2RAD; - mumble->fAvatarFront[0] = (float)cos(angle); - mumble->fAvatarFront[1] = 0.0f; - mumble->fAvatarFront[2] = (float)sin(angle); - } else { - mumble->fAvatarPosition[0] = mumble->fAvatarPosition[1] = mumble->fAvatarPosition[2] = 0.0f; - mumble->fAvatarFront[0] = 1.0f; - mumble->fAvatarFront[1] = mumble->fAvatarFront[2] = 0.0f; - } - - mumble->fCameraPosition[0] = FIXED_TO_FLOAT(listener.x) / MUMBLEUNIT; - mumble->fCameraPosition[1] = FIXED_TO_FLOAT(listener.z) / MUMBLEUNIT; - mumble->fCameraPosition[2] = FIXED_TO_FLOAT(listener.y) / MUMBLEUNIT; - - anglef = AngleFixed(listener.angle); - angle = FIXED_TO_FLOAT(anglef)*DEG2RAD; - mumble->fCameraFront[0] = (float)cos(angle); - mumble->fCameraFront[1] = 0.0f; - mumble->fCameraFront[2] = (float)sin(angle); -#else - (void)mobj; - (void)listener; -#endif // HAVE_MUMBLE -} -#undef WINMUMBLE -#endif // NOMUMBLE - -#ifdef HAVE_TERMIOS - -void I_GetMouseEvents(void) -{ - static UINT8 mdata[5]; - static INT32 i = 0,om2b = 0; - INT32 di, j, mlp, button; - event_t event; - const INT32 mswap[8] = {0, 4, 1, 5, 2, 6, 3, 7}; - - if (!mouse2_started) return; - for (mlp = 0; mlp < 20; mlp++) - { - for (; i < 5; i++) - { - di = read(fdmouse2, mdata+i, 1); - if (di == -1) return; - } - if ((mdata[0] & 0xf8) != 0x80) - { - for (j = 1; j < 5; j++) - if ((mdata[j] & 0xf8) == 0x80) - for (i = 0; i < 5-j; i++) // shift - mdata[i] = mdata[i+j]; - if (i < 5) continue; - } - else - { - button = mswap[~mdata[0] & 0x07]; - for (j = 0; j < MOUSEBUTTONS; j++) - { - if (om2b & (1<> 4); - } - else if (bytenum == 3) - { - dx = (char)((combytes[0] & 3) << 6); - dy = (char)((combytes[0] & 12) << 4); - dx = (char)(dx + combytes[1]); - dy = (char)(dy + combytes[2]); - handlermouse2x+= dx; - handlermouse2y+= dy; - } - else if (bytenum == 4) // fourth UINT8 (logitech mouses) - { - if (buffer[i] & 32) - handlermouse2buttons |= 4; - else - handlermouse2buttons &= ~4; - } - } -} - -void I_GetMouseEvents(void) -{ - static UINT8 lastbuttons2 = 0; //mouse movement - event_t event; - - if (mouse2filehandle == INVALID_HANDLE_VALUE) - return; - - I_PoolMouse2(); - // post key event for buttons - if (handlermouse2buttons != lastbuttons2) - { - INT32 i, j = 1, k; - k = (handlermouse2buttons ^ lastbuttons2); // only changed bit to 1 - lastbuttons2 = (UINT8)handlermouse2buttons; - - for (i = 0; i < MOUSEBUTTONS; i++, j <<= 1) - if (k & j) - { - if (handlermouse2buttons & j) - event.type = ev_keydown; - else - event.type = ev_keyup; - event.data1 = KEY_2MOUSE1+i; - D_PostEvent(&event); - } - } - - if (handlermouse2x != 0 || handlermouse2y != 0) - { - event.type = ev_mouse2; - event.data1 = 0; -// event.data1 = buttons; // not needed - event.data2 = handlermouse2x << 1; - event.data3 = -handlermouse2y << 1; - handlermouse2x = 0; - handlermouse2y = 0; - - D_PostEvent(&event); - } -} -#else -void I_GetMouseEvents(void){}; -#endif - -// -// I_StartupMouse2 -// -void I_StartupMouse2(void) -{ -#ifdef HAVE_TERMIOS - struct termios m2tio; - size_t i; - INT32 dtr = -1, rts = -1;; - I_ShutdownMouse2(); - if (cv_usemouse2.value == 0) return; - if ((fdmouse2 = open(cv_mouse2port.string, O_RDONLY|O_NONBLOCK|O_NOCTTY)) == -1) - { - CONS_Printf(M_GetText("Error opening %s!\n"), cv_mouse2port.string); - return; - } - tcflush(fdmouse2, TCIOFLUSH); - m2tio.c_iflag = IGNBRK; - m2tio.c_oflag = 0; - m2tio.c_cflag = CREAD|CLOCAL|HUPCL|CS8|CSTOPB|B1200; - m2tio.c_lflag = 0; - m2tio.c_cc[VTIME] = 0; - m2tio.c_cc[VMIN] = 1; - tcsetattr(fdmouse2, TCSANOW, &m2tio); - for (i = 0; i < strlen(cv_mouse2opt.string); i++) - { - if (toupper(cv_mouse2opt.string[i]) == 'D') - { - if (cv_mouse2opt.string[i+1] == '-') - dtr = 0; - else - dtr = 1; - } - if (toupper(cv_mouse2opt.string[i]) == 'R') - { - if (cv_mouse2opt.string[i+1] == '-') - rts = 0; - else - rts = 1; - } - if (dtr != -1 || rts != -1) - { - INT32 c; - if (!ioctl(fdmouse2, TIOCMGET, &c)) - { - if (!dtr) - c &= ~TIOCM_DTR; - else if (dtr > 0) - c |= TIOCM_DTR; - } - if (!rts) - c &= ~TIOCM_RTS; - else if (rts > 0) - c |= TIOCM_RTS; - ioctl(fdmouse2, TIOCMSET, &c); - } - } - mouse2_started = 1; - I_AddExitFunc(I_ShutdownMouse2); -#elif defined (_WIN32) - DCB dcb; - - if (mouse2filehandle != INVALID_HANDLE_VALUE) - I_ShutdownMouse2(); - - if (cv_usemouse2.value == 0) - return; - - if (mouse2filehandle == INVALID_HANDLE_VALUE) - { - // COM file handle - mouse2filehandle = CreateFileA(cv_mouse2port.string, GENERIC_READ | GENERIC_WRITE, - 0, // exclusive access - NULL, // no security attrs - OPEN_EXISTING, - FILE_ATTRIBUTE_NORMAL, - NULL); - if (mouse2filehandle == INVALID_HANDLE_VALUE) - { - INT32 e = GetLastError(); - if (e == 5) - CONS_Alert(CONS_ERROR, M_GetText("Can't open %s: Access denied\n"), cv_mouse2port.string); - else - CONS_Alert(CONS_ERROR, M_GetText("Can't open %s: error %d\n"), cv_mouse2port.string, e); - return; - } - } - - // getevent when somthing happens - //SetCommMask(mouse2filehandle, EV_RXCHAR); - - // buffers - SetupComm(mouse2filehandle, MOUSECOMBUFFERSIZE, MOUSECOMBUFFERSIZE); - - // purge buffers - PurgeComm(mouse2filehandle, PURGE_TXABORT | PURGE_RXABORT - | PURGE_TXCLEAR | PURGE_RXCLEAR); - - // setup port to 1200 7N1 - dcb.DCBlength = sizeof (DCB); - - GetCommState(mouse2filehandle, &dcb); - - dcb.BaudRate = CBR_1200; - dcb.ByteSize = 7; - dcb.Parity = NOPARITY; - dcb.StopBits = ONESTOPBIT; - - dcb.fDtrControl = DTR_CONTROL_ENABLE; - dcb.fRtsControl = RTS_CONTROL_ENABLE; - - dcb.fBinary = TRUE; - dcb.fParity = TRUE; - - SetCommState(mouse2filehandle, &dcb); - I_AddExitFunc(I_ShutdownMouse2); -#endif -} - -// -// I_Tactile -// -void I_Tactile(FFType pFFType, const JoyFF_t *FFEffect) -{ - // UNUSED. - (void)pFFType; - (void)FFEffect; -} - -void I_Tactile2(FFType pFFType, const JoyFF_t *FFEffect) -{ - // UNUSED. - (void)pFFType; - (void)FFEffect; -} - -/** \brief empty ticcmd for player 1 -*/ -static ticcmd_t emptycmd; - -ticcmd_t *I_BaseTiccmd(void) -{ - return &emptycmd; -} - -/** \brief empty ticcmd for player 2 -*/ -static ticcmd_t emptycmd2; - -ticcmd_t *I_BaseTiccmd2(void) -{ - return &emptycmd2; -} - -#ifdef _WIN32 -static HMODULE winmm = NULL; -static DWORD starttickcount = 0; // hack for win2k time bug -static p_timeGetTime pfntimeGetTime = NULL; - -// --------- -// I_GetTime -// Use the High Resolution Timer if available, -// else use the multimedia timer which has 1 millisecond precision on Windowz 95, -// but lower precision on Windows NT -// --------- - -tic_t I_GetTime(void) -{ - tic_t newtics = 0; - - if (!starttickcount) // high precision timer - { - LARGE_INTEGER currtime; // use only LowPart if high resolution counter is not available - static LARGE_INTEGER basetime = {{0, 0}}; - - // use this if High Resolution timer is found - static LARGE_INTEGER frequency; - - if (!basetime.LowPart) - { - if (!QueryPerformanceFrequency(&frequency)) - frequency.QuadPart = 0; - else - QueryPerformanceCounter(&basetime); - } - - if (frequency.LowPart && QueryPerformanceCounter(&currtime)) - { - newtics = (INT32)((currtime.QuadPart - basetime.QuadPart) * NEWTICRATE - / frequency.QuadPart); - } - else if (pfntimeGetTime) - { - currtime.LowPart = pfntimeGetTime(); - if (!basetime.LowPart) - basetime.LowPart = currtime.LowPart; - newtics = ((currtime.LowPart - basetime.LowPart)/(1000/NEWTICRATE)); - } - } - else - newtics = (GetTickCount() - starttickcount)/(1000/NEWTICRATE); - - return newtics; -} - -static void I_ShutdownTimer(void) -{ - pfntimeGetTime = NULL; - if (winmm) - { - p_timeEndPeriod pfntimeEndPeriod = (p_timeEndPeriod)GetProcAddress(winmm, "timeEndPeriod"); - if (pfntimeEndPeriod) - pfntimeEndPeriod(1); - FreeLibrary(winmm); - winmm = NULL; - } -} -#else -// -// I_GetTime -// returns time in 1/TICRATE second tics -// -tic_t I_GetTime (void) -{ - static Uint32 basetime = 0; - Uint32 ticks = SDL_GetTicks(); - - if (!basetime) - basetime = ticks; - - ticks -= basetime; - - ticks = (ticks*TICRATE); - ticks = (ticks/1000); - - return (tic_t)ticks; -} -#endif - -// -//I_StartupTimer -// -void I_StartupTimer(void) -{ -#ifdef _WIN32 - // for win2k time bug - if (M_CheckParm("-gettickcount")) - { - starttickcount = GetTickCount(); - CONS_Printf("%s", M_GetText("Using GetTickCount()\n")); - } - winmm = LoadLibraryA("winmm.dll"); - if (winmm) - { - p_timeEndPeriod pfntimeBeginPeriod = (p_timeEndPeriod)GetProcAddress(winmm, "timeBeginPeriod"); - if (pfntimeBeginPeriod) - pfntimeBeginPeriod(1); - pfntimeGetTime = (p_timeGetTime)GetProcAddress(winmm, "timeGetTime"); - } - I_AddExitFunc(I_ShutdownTimer); -#elif 0 - if (SDL_InitSubSystem(SDL_INIT_TIMER) < 0) - I_Error("SRB2: Needs SDL_Timer, Error: %s", SDL_GetError()); -#endif -} - - - -void I_Sleep(void) -{ - if (cv_sleep.value != -1) - SDL_Delay(cv_sleep.value); -} - -INT32 I_StartupSystem(void) -{ - SDL_version SDLcompiled; - const SDL_version *SDLlinked; - SDL_VERSION(&SDLcompiled) - SDLlinked = SDL_Linked_Version(); - I_StartupConsole(); - I_OutputMsg("Compiled for SDL version: %d.%d.%d\n", - SDLcompiled.major, SDLcompiled.minor, SDLcompiled.patch); - I_OutputMsg("Linked with SDL version: %d.%d.%d\n", - SDLlinked->major, SDLlinked->minor, SDLlinked->patch); - if (SDL_Init(SDL_INIT_NOPARACHUTE) < 0) - I_Error("SRB2: SDL System Error: %s", SDL_GetError()); //Alam: Oh no.... -#ifndef NOMUMBLE - I_SetupMumble(); -#endif - return 0; -} - - -// -// I_Quit -// -void I_Quit(void) -{ - static SDL_bool quiting = SDL_FALSE; - - /* prevent recursive I_Quit() */ - if (quiting) goto death; - SDLforceUngrabMouse(); - quiting = SDL_FALSE; - I_ShutdownConsole(); - M_SaveConfig(NULL); //save game config, cvars.. -#ifndef NONET - D_SaveBan(); // save the ban list -#endif - G_SaveGameData(); // Tails 12-08-2002 - //added:16-02-98: when recording a demo, should exit using 'q' key, - // but sometimes we forget and use 'F10'.. so save here too. - - if (demorecording) - G_CheckDemoStatus(); - if (metalrecording) - G_StopMetalRecording(); - - D_QuitNetGame(); - I_ShutdownMusic(); - I_ShutdownSound(); - I_ShutdownCD(); - // use this for 1.28 19990220 by Kin - I_ShutdownGraphics(); - I_ShutdownInput(); - I_ShutdownSystem(); - SDL_Quit(); - /* if option -noendtxt is set, don't print the text */ - if (!M_CheckParm("-noendtxt") && W_CheckNumForName("ENDOOM") != LUMPERROR) - { - printf("\r"); - ShowEndTxt(); - } -death: - W_Shutdown(); - exit(0); -} - -void I_WaitVBL(INT32 count) -{ - count = 1; - SDL_Delay(count); -} - -void I_BeginRead(void) -{ -} - -void I_EndRead(void) -{ -} - -// -// I_Error -// -/** \brief phuck recursive errors -*/ -static INT32 errorcount = 0; - -/** \brief recursive error detecting -*/ -static boolean shutdowning = false; - -void I_Error(const char *error, ...) -{ - va_list argptr; -#if defined (MAC_ALERT) || defined (_WIN32) - char buffer[8192]; -#endif - - // recursive error detecting - if (shutdowning) - { - errorcount++; - if (errorcount == 1) - SDLforceUngrabMouse(); - // try to shutdown each subsystem separately - if (errorcount == 2) - I_ShutdownMusic(); - if (errorcount == 3) - I_ShutdownSound(); - if (errorcount == 4) - I_ShutdownCD(); - if (errorcount == 5) - I_ShutdownGraphics(); - if (errorcount == 6) - I_ShutdownInput(); - if (errorcount == 7) - I_ShutdownSystem(); - if (errorcount == 8) - SDL_Quit(); - if (errorcount == 9) - { - M_SaveConfig(NULL); - G_SaveGameData(); - } - if (errorcount > 20) - { -#ifdef MAC_ALERT - va_start(argptr, error); - vsprintf(buffer, error, argptr); - va_end(argptr); - // 2004-03-03 AJR Since the Mac user is most likely double clicking to run the game, give them a panel. - MacShowAlert("Recursive Error", buffer, "Quit", NULL, NULL); -#elif defined (_WIN32) - va_start(argptr,error); - vsprintf(buffer, error, argptr); - va_end(argptr); - { - HANDLE co = GetStdHandle(STD_OUTPUT_HANDLE); - DWORD bytesWritten; - if (co != INVALID_HANDLE_VALUE) - { - if (GetFileType(co) == FILE_TYPE_CHAR && GetConsoleMode(co, &bytesWritten)) - WriteConsoleA(co, buffer, (DWORD)strlen(buffer), NULL, NULL); - else - WriteFile(co, buffer, (DWORD)strlen(buffer), &bytesWritten, NULL); - } - } - OutputDebugStringA(buffer); - MessageBoxA(vid.WndParent, buffer, "SRB2 Recursive Error", MB_OK|MB_ICONERROR); -#else - // Don't print garbage - va_start(argptr, error); - if (!framebuffer) - vfprintf (stderr, error, argptr); - va_end(argptr); -#endif - W_Shutdown(); - exit(-1); // recursive errors detected - } - } - shutdowning = true; - I_ShutdownConsole(); -#ifndef MAC_ALERT - // Message first. - va_start(argptr,error); - if (!framebuffer) - { - fprintf(stderr, "Error: "); - vfprintf(stderr,error,argptr); - fprintf(stderr, "\n"); - } - va_end(argptr); - - if (!framebuffer) - fflush(stderr); -#endif - M_SaveConfig(NULL); // save game config, cvars.. -#ifndef NONET - D_SaveBan(); // save the ban list -#endif - G_SaveGameData(); // Tails 12-08-2002 - - // Shutdown. Here might be other errors. - if (demorecording) - G_CheckDemoStatus(); - if (metalrecording) - G_StopMetalRecording(); - - D_QuitNetGame(); - I_ShutdownMusic(); - I_ShutdownSound(); - I_ShutdownCD(); - // use this for 1.28 19990220 by Kin - I_ShutdownGraphics(); - I_ShutdownInput(); - I_ShutdownSystem(); - SDL_Quit(); -#ifdef MAC_ALERT - va_start(argptr, error); - vsprintf(buffer, error, argptr); - va_end(argptr); - // 2004-03-03 AJR Since the Mac user is most likely double clicking to run the game, give them a panel. - MacShowAlert("Critical Error", buffer, "Quit", NULL, NULL); -#endif - W_Shutdown(); -#if defined (PARANOIA) && defined (__CYGWIN__) - *(INT32 *)2 = 4; //Alam: Debug! -#endif - exit(-1); -} - -/** \brief quit function table -*/ -static quitfuncptr quit_funcs[MAX_QUIT_FUNCS]; /* initialized to all bits 0 */ - -// -// Adds a function to the list that need to be called by I_SystemShutdown(). -// -void I_AddExitFunc(void (*func)()) -{ - INT32 c; - - for (c = 0; c < MAX_QUIT_FUNCS; c++) - { - if (!quit_funcs[c]) - { - quit_funcs[c] = func; - break; - } - } -} - - -// -// Removes a function from the list that need to be called by -// I_SystemShutdown(). -// -void I_RemoveExitFunc(void (*func)()) -{ - INT32 c; - - for (c = 0; c < MAX_QUIT_FUNCS; c++) - { - if (quit_funcs[c] == func) - { - while (c < MAX_QUIT_FUNCS-1) - { - quit_funcs[c] = quit_funcs[c+1]; - c++; - } - quit_funcs[MAX_QUIT_FUNCS-1] = NULL; - break; - } - } -} - -// -// Closes down everything. This includes restoring the initial -// palette and video mode, and removing whatever mouse, keyboard, and -// timer routines have been installed. -// -// NOTE: Shutdown user funcs are effectively called in reverse order. -// -void I_ShutdownSystem(void) -{ - INT32 c; - - for (c = MAX_QUIT_FUNCS-1; c >= 0; c--) - if (quit_funcs[c]) - (*quit_funcs[c])(); -#ifdef LOGMESSAGES - if (logstream) - { - fclose(logstream); - logstream = NULL; - } -#endif - -} - -void I_GetDiskFreeSpace(INT64 *freespace) -{ -#if defined (__unix__) || defined(__APPLE__) || defined (UNIXCOMMON) -#if defined (SOLARIS) || defined (__HAIKU__) - *freespace = INT32_MAX; - return; -#else // Both Linux and BSD have this, apparently. - struct statfs stfs; - if (statfs(".", &stfs) == -1) - { - *freespace = INT32_MAX; - return; - } - *freespace = stfs.f_bavail * stfs.f_bsize; -#endif -#elif defined (_WIN32) - static p_GetDiskFreeSpaceExA pfnGetDiskFreeSpaceEx = NULL; - static boolean testwin95 = false; - ULARGE_INTEGER usedbytes, lfreespace; - - if (!testwin95) - { - pfnGetDiskFreeSpaceEx = (p_GetDiskFreeSpaceExA)GetProcAddress(GetModuleHandleA("kernel32.dll"), "GetDiskFreeSpaceExA"); - testwin95 = true; - } - if (pfnGetDiskFreeSpaceEx) - { - if (pfnGetDiskFreeSpaceEx(NULL, &lfreespace, &usedbytes, NULL)) - *freespace = lfreespace.QuadPart; - else - *freespace = INT32_MAX; - } - else - { - DWORD SectorsPerCluster, BytesPerSector, NumberOfFreeClusters, TotalNumberOfClusters; - GetDiskFreeSpace(NULL, &SectorsPerCluster, &BytesPerSector, - &NumberOfFreeClusters, &TotalNumberOfClusters); - *freespace = BytesPerSector*SectorsPerCluster*NumberOfFreeClusters; - } -#else // Dummy for platform independent; 1GB should be enough - *freespace = 1024*1024*1024; -#endif -} - -char *I_GetUserName(void) -{ - static char username[MAXPLAYERNAME]; - char *p; -#ifdef _WIN32 - DWORD i = MAXPLAYERNAME; - - if (!GetUserNameA(username, &i)) -#endif - { - p = I_GetEnv("USER"); - if (!p) - { - p = I_GetEnv("user"); - if (!p) - { - p = I_GetEnv("USERNAME"); - if (!p) - { - p = I_GetEnv("username"); - if (!p) - { - return NULL; - } - } - } - } - strncpy(username, p, MAXPLAYERNAME); - } - - - if (strcmp(username, "") != 0) - return username; - return NULL; // dummy for platform independent version -} - -INT32 I_mkdir(const char *dirname, INT32 unixright) -{ -//[segabor] -#if defined (__unix__) || defined(__APPLE__) || defined (UNIXCOMMON) || defined (__CYGWIN__) - return mkdir(dirname, unixright); -#elif defined (_WIN32) - UNREFERENCED_PARAMETER(unixright); /// \todo should implement ntright under nt... - return CreateDirectoryA(dirname, NULL); -#else - (void)dirname; - (void)unixright; - return false; -#endif -} - -char *I_GetEnv(const char *name) -{ -#ifdef NEED_SDL_GETENV - return SDL_getenv(name); -#else - return getenv(name); -#endif -} - -INT32 I_PutEnv(char *variable) -{ -#ifdef NEED_SDL_GETENV - return SDL_putenv(variable); -#else - return putenv(variable); -#endif -} - -INT32 I_ClipboardCopy(const char *data, size_t size) -{ - (void)data; - (void)size; - return -1; -} - -char *I_ClipboardPaste(void) -{ - return NULL; -} - -/** \brief The isWadPathOk function - - \param path string path to check - - \return if true, wad file found - - -*/ -static boolean isWadPathOk(const char *path) -{ - char *wad3path = malloc(256); - - if (!wad3path) - return false; - - sprintf(wad3path, pandf, path, WADKEYWORD1); - - if (FIL_ReadFileOK(wad3path)) - { - free(wad3path); - return true; - } - - sprintf(wad3path, pandf, path, WADKEYWORD2); - - if (FIL_ReadFileOK(wad3path)) - { - free(wad3path); - return true; - } - - free(wad3path); - return false; -} - -static void pathonly(char *s) -{ - size_t j; - - for (j = strlen(s); j != (size_t)-1; j--) - if ((s[j] == '\\') || (s[j] == ':') || (s[j] == '/')) - { - if (s[j] == ':') s[j+1] = 0; - else s[j] = 0; - return; - } -} - -/** \brief search for srb2.srb in the given path - - \param searchDir starting path - - \return WAD path if not NULL - - -*/ -static const char *searchWad(const char *searchDir) -{ - static char tempsw[256] = ""; - filestatus_t fstemp; - - strcpy(tempsw, WADKEYWORD1); - fstemp = filesearch(tempsw,searchDir,NULL,true,20); - if (fstemp == FS_FOUND) - { - pathonly(tempsw); - return tempsw; - } - - strcpy(tempsw, WADKEYWORD2); - fstemp = filesearch(tempsw, searchDir, NULL, true, 20); - if (fstemp == FS_FOUND) - { - pathonly(tempsw); - return tempsw; - } - return NULL; -} - -/** \brief go through all possible paths and look for srb2.srb - - \return path to srb2.srb if any -*/ -static const char *locateWad(void) -{ - const char *envstr; - const char *WadPath; - - I_OutputMsg("SRB2WADDIR"); - // does SRB2WADDIR exist? - if (((envstr = I_GetEnv("SRB2WADDIR")) != NULL) && isWadPathOk(envstr)) - return envstr; - -#ifndef NOCWD - I_OutputMsg(",."); - // examine current dir - strcpy(returnWadPath, "."); - if (isWadPathOk(returnWadPath)) - return NULL; -#endif - - // examine default dirs -#ifdef DEFAULTWADLOCATION1 - I_OutputMsg(","DEFAULTWADLOCATION1); - strcpy(returnWadPath, DEFAULTWADLOCATION1); - if (isWadPathOk(returnWadPath)) - return returnWadPath; -#endif -#ifdef DEFAULTWADLOCATION2 - I_OutputMsg(","DEFAULTWADLOCATION2); - strcpy(returnWadPath, DEFAULTWADLOCATION2); - if (isWadPathOk(returnWadPath)) - return returnWadPath; -#endif -#ifdef DEFAULTWADLOCATION3 - I_OutputMsg(","DEFAULTWADLOCATION3); - strcpy(returnWadPath, DEFAULTWADLOCATION3); - if (isWadPathOk(returnWadPath)) - return returnWadPath; -#endif -#ifdef DEFAULTWADLOCATION4 - I_OutputMsg(","DEFAULTWADLOCATION4); - strcpy(returnWadPath, DEFAULTWADLOCATION4); - if (isWadPathOk(returnWadPath)) - return returnWadPath; -#endif -#ifdef DEFAULTWADLOCATION5 - I_OutputMsg(","DEFAULTWADLOCATION5); - strcpy(returnWadPath, DEFAULTWADLOCATION5); - if (isWadPathOk(returnWadPath)) - return returnWadPath; -#endif -#ifdef DEFAULTWADLOCATION6 - I_OutputMsg(","DEFAULTWADLOCATION6); - strcpy(returnWadPath, DEFAULTWADLOCATION6); - if (isWadPathOk(returnWadPath)) - return returnWadPath; -#endif -#ifdef DEFAULTWADLOCATION7 - I_OutputMsg(","DEFAULTWADLOCATION7); - strcpy(returnWadPath, DEFAULTWADLOCATION7); - if (isWadPathOk(returnWadPath)) - return returnWadPath; -#endif -#ifndef NOHOME - // find in $HOME - I_OutputMsg(",HOME"); - if ((envstr = I_GetEnv("HOME")) != NULL) - { - WadPath = searchWad(envstr); - if (WadPath) - return WadPath; - } -#endif -#ifdef DEFAULTSEARCHPATH1 - // find in /usr/local - I_OutputMsg(", in:"DEFAULTSEARCHPATH1); - WadPath = searchWad(DEFAULTSEARCHPATH1); - if (WadPath) - return WadPath; -#endif -#ifdef DEFAULTSEARCHPATH2 - // find in /usr/games - I_OutputMsg(", in:"DEFAULTSEARCHPATH2); - WadPath = searchWad(DEFAULTSEARCHPATH2); - if (WadPath) - return WadPath; -#endif -#ifdef DEFAULTSEARCHPATH3 - // find in ??? - I_OutputMsg(", in:"DEFAULTSEARCHPATH3); - WadPath = searchWad(DEFAULTSEARCHPATH3); - if (WadPath) - return WadPath; -#endif - // if nothing was found - return NULL; -} - -const char *I_LocateWad(void) -{ - const char *waddir; - - I_OutputMsg("Looking for WADs in: "); - waddir = locateWad(); - I_OutputMsg("\n"); - - if (waddir) - { - // change to the directory where we found srb2.srb -#ifdef _WIN32 - SetCurrentDirectoryA(waddir); -#else - if (chdir(waddir) == -1) - I_OutputMsg("Couldn't change working directory\n"); -#endif - } - return waddir; -} - -#ifdef LINUX -#define MEMINFO_FILE "/proc/meminfo" -#define MEMTOTAL "MemTotal:" -#define MEMFREE "MemFree:" -#endif - -// quick fix for compil -UINT32 I_GetFreeMem(UINT32 *total) -{ -#if defined (FREEBSD) - struct vmmeter sum; - kvm_t *kd; - struct nlist namelist[] = - { -#define X_SUM 0 - {"_cnt"}, - {NULL} - }; - if ((kd = kvm_open(NULL, NULL, NULL, O_RDONLY, "kvm_open")) == NULL) - { - *total = 0L; - return 0; - } - if (kvm_nlist(kd, namelist) != 0) - { - kvm_close (kd); - *total = 0L; - return 0; - } - if (kvm_read(kd, namelist[X_SUM].n_value, &sum, - sizeof (sum)) != sizeof (sum)) - { - kvm_close(kd); - *total = 0L; - return 0; - } - kvm_close(kd); - - if (total) - *total = sum.v_page_count * sum.v_page_size; - return sum.v_free_count * sum.v_page_size; -#elif defined (SOLARIS) - /* Just guess */ - if (total) - *total = 32 << 20; - return 32 << 20; -#elif defined (LINUX) - /* Linux */ - char buf[1024]; - char *memTag; - UINT32 freeKBytes; - UINT32 totalKBytes; - INT32 n; - INT32 meminfo_fd = -1; - - meminfo_fd = open(MEMINFO_FILE, O_RDONLY); - n = read(meminfo_fd, buf, 1023); - close(meminfo_fd); - - if (n < 0) - { - // Error - *total = 0L; - return 0; - } - - buf[n] = '\0'; - if (NULL == (memTag = strstr(buf, MEMTOTAL))) - { - // Error - *total = 0L; - return 0; - } - - memTag += sizeof (MEMTOTAL); - totalKBytes = atoi(memTag); - - if (NULL == (memTag = strstr(buf, MEMFREE))) - { - // Error - *total = 0L; - return 0; - } - - memTag += sizeof (MEMFREE); - freeKBytes = atoi(memTag); - - if (total) - *total = totalKBytes << 10; - return freeKBytes << 10; -#elif defined (_WIN32) - MEMORYSTATUS info; - - info.dwLength = sizeof (MEMORYSTATUS); - GlobalMemoryStatus( &info ); - if (total) - *total = (UINT32)info.dwTotalPhys; - return (UINT32)info.dwAvailPhys; -#else - // Guess 48 MB. - if (total) - *total = 48<<20; - return 48<<20; -#endif /* LINUX */ -} - -const CPUInfoFlags *I_CPUInfo(void) -{ -#ifdef _WIN32 - static CPUInfoFlags WIN_CPUInfo; - SYSTEM_INFO SI; - p_IsProcessorFeaturePresent pfnCPUID = (p_IsProcessorFeaturePresent)GetProcAddress(GetModuleHandleA("kernel32.dll"), "IsProcessorFeaturePresent"); - - ZeroMemory(&WIN_CPUInfo,sizeof (WIN_CPUInfo)); - if (pfnCPUID) - { - WIN_CPUInfo.FPPE = pfnCPUID( 0); //PF_FLOATING_POINT_PRECISION_ERRATA - WIN_CPUInfo.FPE = pfnCPUID( 1); //PF_FLOATING_POINT_EMULATED - WIN_CPUInfo.cmpxchg = pfnCPUID( 2); //PF_COMPARE_EXCHANGE_DOUBLE - WIN_CPUInfo.MMX = pfnCPUID( 3); //PF_MMX_INSTRUCTIONS_AVAILABLE - WIN_CPUInfo.PPCMM64 = pfnCPUID( 4); //PF_PPC_MOVEMEM_64BIT_OK - WIN_CPUInfo.ALPHAbyte = pfnCPUID( 5); //PF_ALPHA_BYTE_INSTRUCTIONS - WIN_CPUInfo.SSE = pfnCPUID( 6); //PF_XMMI_INSTRUCTIONS_AVAILABLE - WIN_CPUInfo.AMD3DNow = pfnCPUID( 7); //PF_3DNOW_INSTRUCTIONS_AVAILABLE - WIN_CPUInfo.RDTSC = pfnCPUID( 8); //PF_RDTSC_INSTRUCTION_AVAILABLE - WIN_CPUInfo.PAE = pfnCPUID( 9); //PF_PAE_ENABLED - WIN_CPUInfo.SSE2 = pfnCPUID(10); //PF_XMMI64_INSTRUCTIONS_AVAILABLE - //WIN_CPUInfo.blank = pfnCPUID(11); //PF_SSE_DAZ_MODE_AVAILABLE - WIN_CPUInfo.DEP = pfnCPUID(12); //PF_NX_ENABLED - WIN_CPUInfo.SSE3 = pfnCPUID(13); //PF_SSE3_INSTRUCTIONS_AVAILABLE - WIN_CPUInfo.cmpxchg16b = pfnCPUID(14); //PF_COMPARE_EXCHANGE128 - WIN_CPUInfo.cmp8xchg16 = pfnCPUID(15); //PF_COMPARE64_EXCHANGE128 - WIN_CPUInfo.PFC = pfnCPUID(16); //PF_CHANNELS_ENABLED - } -#ifdef HAVE_SDLCPUINFO - else - { - WIN_CPUInfo.RDTSC = SDL_HasRDTSC(); - WIN_CPUInfo.MMX = SDL_HasMMX(); - WIN_CPUInfo.AMD3DNow = SDL_Has3DNow(); - WIN_CPUInfo.SSE = SDL_HasSSE(); - WIN_CPUInfo.SSE2 = SDL_HasSSE2(); - WIN_CPUInfo.AltiVec = SDL_HasAltiVec(); - } - WIN_CPUInfo.MMXExt = SDL_HasMMXExt(); - WIN_CPUInfo.AMD3DNowExt = SDL_Has3DNowExt(); -#endif - GetSystemInfo(&SI); - WIN_CPUInfo.CPUs = SI.dwNumberOfProcessors; - WIN_CPUInfo.IA64 = (SI.dwProcessorType == 2200); // PROCESSOR_INTEL_IA64 - WIN_CPUInfo.AMD64 = (SI.dwProcessorType == 8664); // PROCESSOR_AMD_X8664 - return &WIN_CPUInfo; -#elif defined (HAVE_SDLCPUINFO) - static CPUInfoFlags SDL_CPUInfo; - memset(&SDL_CPUInfo,0,sizeof (CPUInfoFlags)); - SDL_CPUInfo.RDTSC = SDL_HasRDTSC(); - SDL_CPUInfo.MMX = SDL_HasMMX(); - SDL_CPUInfo.MMXExt = SDL_HasMMXExt(); - SDL_CPUInfo.AMD3DNow = SDL_Has3DNow(); - SDL_CPUInfo.AMD3DNowExt = SDL_Has3DNowExt(); - SDL_CPUInfo.SSE = SDL_HasSSE(); - SDL_CPUInfo.SSE2 = SDL_HasSSE2(); - SDL_CPUInfo.AltiVec = SDL_HasAltiVec(); - return &SDL_CPUInfo; -#else - return NULL; /// \todo CPUID asm -#endif -} - -#ifdef _WIN32 -static void CPUAffinity_OnChange(void); -static consvar_t cv_cpuaffinity = {"cpuaffinity", "-1", CV_SAVE | CV_CALL, NULL, CPUAffinity_OnChange, 0, NULL, NULL, 0, 0, NULL}; - -static p_GetCurrentProcess pfnGetCurrentProcess = NULL; -static p_GetProcessAffinityMask pfnGetProcessAffinityMask = NULL; -static p_SetProcessAffinityMask pfnSetProcessAffinityMask = NULL; - -static inline VOID GetAffinityFuncs(VOID) -{ - HMODULE h = GetModuleHandleA("kernel32.dll"); - pfnGetCurrentProcess = (p_GetCurrentProcess)GetProcAddress(h, "GetCurrentProcess"); - pfnGetProcessAffinityMask = (p_GetProcessAffinityMask)GetProcAddress(h, "GetProcessAffinityMask"); - pfnSetProcessAffinityMask = (p_SetProcessAffinityMask)GetProcAddress(h, "SetProcessAffinityMask"); -} - -static void CPUAffinity_OnChange(void) -{ - DWORD_PTR dwProcMask, dwSysMask; - HANDLE selfpid; - - if (!pfnGetCurrentProcess || !pfnGetProcessAffinityMask || !pfnSetProcessAffinityMask) - return; - else - selfpid = pfnGetCurrentProcess(); - - pfnGetProcessAffinityMask(selfpid, &dwProcMask, &dwSysMask); - - /* If resulting mask is zero, don't change anything and fall back to - * actual mask. - */ - if(dwSysMask & cv_cpuaffinity.value) - { - pfnSetProcessAffinityMask(selfpid, dwSysMask & cv_cpuaffinity.value); - CV_StealthSetValue(&cv_cpuaffinity, (INT32)(dwSysMask & cv_cpuaffinity.value)); - } - else - CV_StealthSetValue(&cv_cpuaffinity, (INT32)dwProcMask); -} -#endif - -void I_RegisterSysCommands(void) -{ -#ifdef _WIN32 - GetAffinityFuncs(); - CV_RegisterVar(&cv_cpuaffinity); -#endif -} -#endif diff --git a/src/sdl12/i_ttf.c b/src/sdl12/i_ttf.c deleted file mode 100644 index 21f375a5f..000000000 --- a/src/sdl12/i_ttf.c +++ /dev/null @@ -1,330 +0,0 @@ -// Emacs style mode select -*- C++ -*- -//----------------------------------------------------------------------------- -// -// Copyright (C) 2011 by Callum Dickinson. -// -// 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 2 -// 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. -//----------------------------------------------------------------------------- -/// \file -/// \brief SDL_ttf interface code. Necessary for platforms with no framebuffer console systems. - -#if defined(SDL) && defined(HAVE_TTF) -#include "SDL.h" -#include "SDL_ttf.h" -#include "../doomdef.h" -#include "../doomstat.h" -#include "../d_netfil.h" -#include "../filesrch.h" -#include "i_ttf.h" - -// Search directories to find aforementioned TTF file. -#if defined (__unix__) || defined(__APPLE__) || defined (UNIXCOMMON) -#define FONTSEARCHPATH1 "/usr/share/fonts" -#define FONTSEARCHPATH2 "/usr/local/share/fonts" -#define FONTSEARCHPATH3 "/usr/games/SRB2" -#define FONTSEARCHPATH4 "/usr/local/games/SRB2" -#define FONTSEARCHPATH5 "/usr/local/share/games/SRB2" -#else -#define FONTSEARCHPATH1 "." -#endif - -#define FONTHANDLE -1 - -// Renduring surfaces. -SDL_Surface *TTFSurface = NULL; -SDL_Surface *TTFRendSurface = NULL; -// Text box. -SDL_Rect TTFRect; -// Temporary storage for the new TTFRect, used to check for -// line wrapping. -SDL_Rect TTFRectCheck; -// Text rendering resolution. -videoResolution res; -// Text storage buffer, the contents get printed to the SDL surface. -char textbuffer[8192]; - -// look for default ttf file in given directory -static char *searchFont(const char *fontsearchDir) -{ - static char tempsw[256] = ""; - filestatus_t fstemp; - - strcpy(tempsw, FONTFILE); - fstemp = filesearch(tempsw, fontsearchDir, NULL, true, 20); - if (fstemp == FS_FOUND) - { - return tempsw; - } - return NULL; -} - -// Load TTF font from file. -INT32 I_TTFLoadFont(const char *file, UINT32 ptsize) -{ - TTF_Font *tmpfont = NULL; - float fontsize; - - // If a font is currently loaded, unload it. - if (currentfont) - { - TTF_CloseFont(currentfont); - } - - // Scale the specified font point size for the current resolution. - fontsize = (ptsize * 0.005f) * (res.width - res.height); - - tmpfont = TTF_OpenFont(file, fontsize); - - if (!tmpfont) - return FONTHANDLE; - - // set pointer for current font - currentfont = tmpfont; - - // set current font point size - currentfontpoint = ptsize; - - // get font properties, and set them - currentfontstyle = TTF_GetFontStyle(currentfont); - TTF_SetFontStyle(currentfont, currentfontstyle); - - // these functions only exist in SDL_ttf 2.0.10 onwards -#if SDL_TTF_VERSION_ATLEAST(2,0,10) - currentfontkerning = TTF_GetFontKerning(currentfont); - TTF_SetFontKerning(currentfont, currentfontkerning); - - currentfonthinting = TTF_GetFontHinting(currentfont); - TTF_SetFontHinting(currentfont, currentfonthinting); - - currentfontoutline = TTF_GetFontOutline(currentfont); - TTF_SetFontOutline(currentfont, currentfontoutline); -#endif - - return 0; -} - -static void I_TTFRendSurface(const char *textmsg, TTF_Font *font, TextQuality quality, SDL_Color fontfgcolor, SDL_Color fontbgcolor) -{ - // Print text in the buffer. - // SDL_ttf has three modes to draw text. - // Solid rendering is quick, but dirty. Use it if you need speed more than quality. - switch (quality) - { - case solid: - TTFRendSurface = TTF_RenderText_Solid(font, textmsg, fontfgcolor); - break; - // Shaded rendering adds a background to the rendered text. Because of this, I_TTFDrawText - // takes an extra color more than the other styles to be a background color. - // Shaded is supposedly as fast as solid rendering and about as good quality as blended. - case shaded: - TTFRendSurface = TTF_RenderText_Shaded(font, textmsg, fontfgcolor, fontbgcolor); - break; - // Blended rendering is the opposite of solid. Good quality, but slow. - case blended: - TTFRendSurface = TTF_RenderText_Blended(font, textmsg, fontfgcolor); - break; - } - - // Get SDL to update the main surface. - SDL_BlitSurface(TTFRendSurface, NULL, TTFSurface, &TTFRect); - SDL_Flip(TTFSurface); -} - -// Draw text to screen. It will accept four colour vales (red, green, blue and alpha) -// with foreground for draw modes Solid and Blended, and an extra four values for background -// colour with draw type Shaded. -void I_TTFDrawText(TTF_Font *font, TextQuality quality, INT32 fgR, INT32 fgG, INT32 fgB, INT32 fgA, INT32 bgR, INT32 bgG, INT32 bgB, INT32 bgA, const char *textmsg) -{ - // Temporary small buffer to store character to process. - // NULL pointer to prevc to kill warning - char c, prevc = 0x0; - // hack to allow TTF_SizeText to work properly. - char linebuffer[2]; - // Don't need h, but TTF_SizeText needs a height parameter - INT32 w, h; - - // Globally declare foreground and background text colours, - // text drawing mode and the font to draw. - SDL_Color fontfgcolor = {fgR, fgG, fgB, fgA}; - SDL_Color fontbgcolor = {bgR, bgG, bgB, bgA}; - - // Keep on processing until the null terminator in the text buffer is reached. - while (*textmsg != '\0') - { - // Copy pointer for current character into the temporary buffer. - c = *textmsg; - // If c is a newline, move to the next available line. - if (c == '\n') - { - TTFRectCheck.x = 0; - TTFRectCheck.y += (currentfontpoint + 1); - } - // Otherwise... - else - { - // If the previous character was a newline, actually move to the next line. - if (prevc == '\n') - { - if (textbuffer != NULL) - { - // Render cached text to the SDL surface. - I_TTFRendSurface(textbuffer, font, quality, fontfgcolor, fontbgcolor); - // Empty text buffer. - memset(textbuffer, '\0', 1); - } - TTFRect.x = TTFRectCheck.x; - TTFRect.y = TTFRectCheck.y; - } - // Copy the character to the text buffer. - sprintf(textbuffer, "%s%c", textbuffer, c); - // Hack to allow TTF_SizeText to work properly. - sprintf(linebuffer, "%c", c); - // If we have reached the end of the screen, move to the next available line. - TTF_SizeText(currentfont, linebuffer, &w, &h); - TTFRectCheck.x += w; - if (TTFRectCheck.x >= res.width) - { - // Render cached text to the SDL surface. - I_TTFRendSurface(textbuffer, font, quality, fontfgcolor, fontbgcolor); - // Empty text buffer. - memset(textbuffer, '\0', 1); - // Move to the next line. - TTFRectCheck.x = 0; - TTFRectCheck.y += (currentfontpoint + 1); - // Set stored co-ordinates for next line. - TTFRect.x = TTFRectCheck.x; - TTFRect.y = TTFRectCheck.y; - } - } - // Add 1 to the pointer reference for the character to process. - textmsg++; - // Copy contents of the now-old buffer to somewhere else, so it can be referenced in next loop. - prevc = c; - } - - // If the buffer was previously emptied by a line wrapping operation and - // no text came after that, don't print anything. Otherwise, print everything - // still in the buffer. - if (textbuffer != NULL) - { - // Render cached text to the SDL surface. - I_TTFRendSurface(textbuffer, font, quality, fontfgcolor, fontbgcolor); - // Empty text buffer. - memset(textbuffer, '\0', 1); - // Set stored co-ordinates for next line. - TTFRect.x = TTFRectCheck.x; - TTFRect.y = TTFRectCheck.y; - } -} - -// Initialise SDL_ttf. -void I_StartupTTF(UINT32 fontpointsize, Uint32 initflags, Uint32 vidmodeflags) -{ - char *fontpath = NULL; - INT32 fontstatus = -1; - res.width = 320; - res.height = 200; - bitsperpixel = 8; - - // what's the point of trying to display an error? - // SDL_ttf is not started, can't display anything to screen (presumably)... - if (SDL_InitSubSystem(initflags) < 0) - I_Error("Couldn't initialize SDL: %s\n", SDL_GetError()); - - TTFSurface = SDL_SetVideoMode(res.width, res.height, bitsperpixel, vidmodeflags); - if (!TTFSurface) - I_Error("Couldn't set SDL Video resolution: %s\n", SDL_GetError()); - - if (TTF_Init() < 0) - I_Error("Couldn't start SDL_ttf: %s\n", TTF_GetError()); - - // look for default font in many directories -#ifdef FONTSEARCHPATH1 - fontpath = searchFont(FONTSEARCHPATH1); - if (fontpath) fontstatus = I_TTFLoadFont(fontpath, fontpointsize); -#endif -#ifdef FONTSEARCHPATH2 - if (fontstatus < 0) - { - fontpath = searchFont(FONTSEARCHPATH2); - if (fontpath) fontstatus = I_TTFLoadFont(fontpath, fontpointsize); - } -#endif -#ifdef FONTSEARCHPATH3 - if (fontstatus < 0) - { - fontpath = searchFont(FONTSEARCHPATH3); - if (fontpath) fontstatus = I_TTFLoadFont(fontpath, fontpointsize); - } -#endif -#ifdef FONTSEARCHPATH4 - if (fontstatus < 0) - { - fontpath = searchFont(FONTSEARCHPATH4); - if (fontpath) fontstatus = I_TTFLoadFont(fontpath, fontpointsize); - } -#endif -#ifdef FONTSEARCHPATH5 - if (fontstatus < 0) - { - fontpath = searchFont(FONTSEARCHPATH5); - if (fontpath) fontstatus = I_TTFLoadFont(fontpath, fontpointsize); - } -#endif -#ifdef FONTSEARCHPATH6 - if (fontstatus < 0) - { - fontpath = searchFont(FONTSEARCHPATH6); - if (fontpath) fontstatus = I_TTFLoadFont(fontpath, fontpointsize); - } -#endif -#ifdef FONTSEARCHPATH7 - if (fontstatus < 0) - { - fontpath = searchFont(FONTSEARCHPATH7); - if (fontpath) fontstatus = I_TTFLoadFont(fontpath, fontpointsize); - } -#endif - // argh! no font file found! disable SDL_ttf code - if (fontstatus < 0) - { - I_ShutdownTTF(); - CONS_Printf("Unable to find default font files! Not loading SDL_ttf\n"); - } - else - { - // Get SDL_ttf compiled and linked version - SDL_version TTFcompiled; - const SDL_version *TTFlinked; - - SDL_TTF_VERSION(&TTFcompiled); - TTFlinked = TTF_Linked_Version(); - - // Display it on screen - CONS_Printf("Compiled for SDL_ttf version: %d.%d.%d\n", - TTFcompiled.major, TTFcompiled.minor, TTFcompiled.patch); - CONS_Printf("Linked with SDL_ttf version: %d.%d.%d\n", - TTFlinked->major, TTFlinked->minor, TTFlinked->patch); - } -} - -void I_ShutdownTTF(void) -{ - // close current font - TTF_CloseFont(currentfont); - // shutdown SDL_ttf - TTF_Quit(); - - // Free TTF rendering surfaces. - SDL_FreeSurface(TTFSurface); - SDL_FreeSurface(TTFRendSurface); -} -#endif diff --git a/src/sdl12/i_ttf.h b/src/sdl12/i_ttf.h deleted file mode 100644 index d755defcb..000000000 --- a/src/sdl12/i_ttf.h +++ /dev/null @@ -1,86 +0,0 @@ -// Emacs style mode select -*- C++ -*- -//----------------------------------------------------------------------------- -// -// Copyright (C) 2011 by Callum Dickinson. -// -// 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 2 -// 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. -//----------------------------------------------------------------------------- -/// \file -/// \brief SDL_ttf interface code. Necessary for platforms with SDL inits that need to run immediately. - -#ifndef __I_TTF__ -#define __I_TTF__ - -#include "../doomdef.h" -#include "SDL_ttf.h" - -// Default name for standard TTF file. -#define FONTFILE "srb2.ttf" -#define FONTPOINTSIZE 12 - -// Default font foreground colours -#define DEFAULTFONTFGR 255 -#define DEFAULTFONTFGG 255 -#define DEFAULTFONTFGB 255 -#define DEFAULTFONTFGA 255 - -// Default font background colours -#define DEFAULTFONTBGR 0 -#define DEFAULTFONTBGG 0 -#define DEFAULTFONTBGB 0 -#define DEFAULTFONTBGA 255 - -#ifndef SDL_TTF_COMPILEDVERSION -#define SDL_TTF_COMPILEDVERSION \ - SDL_VERSIONNUM(TTF_MAJOR_VERSION, TTF_MINOR_VERSION, TTF_PATCHLEVEL) -#endif - -#ifndef SDL_TTF_VERSION_ATLEAST -#define SDL_TTF_VERSION_ATLEAST(X, Y, Z) \ - (SDL_TTF_COMPILEDVERSION >= SDL_VERSIONNUM(X, Y, Z)) -#endif - -TTF_Font* currentfont; -int currentfontpoint; -int currentfontstyle; -#if SDL_TTF_VERSION_ATLEAST(2,0,10) -int currentfontkerning; -int currentfonthinting; -int currentfontoutline; -#endif - -typedef struct -{ - UINT16 width; - UINT16 height; -} VideoResolution; -UINT8 bitsperpixel; - -typedef enum -{ - solid, - shaded, - blended -} TextQuality; - -// Load TTF font from file. -INT32 I_TTFLoadFont(const char *file, UINT32 ptsize); - -// Draw TTF text to screen. It will accept four colour vales (red, green, blue and alpha) -// with foreground for draw modes Solid and Blended, and an extra four values for background -// colour with draw type Shaded. -void I_TTFDrawText(TTF_Font *font, TextQuality quality, INT32 fgR, INT32 fgG, INT32 fgB, INT32 fgA, INT32 bgR, INT32 bgG, INT32 bgB, INT32 bgA, const char *textmsg); - -// Initialise SDL_ttf. -void I_StartupTTF(UINT32 fontpointsize, Uint32 initflags, Uint32 vidmodeflags); - -void I_ShutdownTTF(void); -#endif diff --git a/src/sdl12/i_video.c b/src/sdl12/i_video.c deleted file mode 100644 index 4431b063e..000000000 --- a/src/sdl12/i_video.c +++ /dev/null @@ -1,1803 +0,0 @@ -// Emacs style mode select -*- C++ -*- -//----------------------------------------------------------------------------- -// -// Copyright (C) 1993-1996 by id Software, Inc. -// Portions Copyright (C) 1998-2000 by DooM Legacy Team. -// -// 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 2 -// 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. -//----------------------------------------------------------------------------- -/// \file -/// \brief SRB2 graphics stuff for SDL - -#include -#include - -#ifdef _MSC_VER -#pragma warning(disable : 4214 4244) -#endif - -#ifdef HAVE_SDL - -#include "SDL.h" - -#ifdef _MSC_VER -#pragma warning(default : 4214 4244) -#endif - -#if SDL_VERSION_ATLEAST(1,3,0) -#define SDLK_EQUALS SDLK_KP_EQUALSAS400 -#define SDLK_LMETA SDLK_LGUI -#define SDLK_RMETA SDLK_RGUI -#else -#define HAVE_SDLMETAKEYS -#endif - -#ifdef HAVE_TTF -#include "i_ttf.h" -#endif - -#ifdef HAVE_IMAGE -#include "SDL_image.h" -#else -#define LOAD_XPM //I want XPM! -#include "IMG_xpm.c" //Alam: I don't want to add SDL_Image.dll/so -#define HAVE_IMAGE //I have SDL_Image, sortof -#endif - -#ifdef HAVE_IMAGE -#include "SDL_icon.xpm" -#endif - -#include "../doomdef.h" - -#ifdef _WIN32 -#include "SDL_syswm.h" -#endif - -#include "../doomstat.h" -#include "../i_system.h" -#include "../v_video.h" -#include "../m_argv.h" -#include "../m_menu.h" -#include "../d_main.h" -#include "../s_sound.h" -#include "../i_sound.h" // midi pause/unpause -#include "../i_joy.h" -#include "../st_stuff.h" -#include "../g_game.h" -#include "../i_video.h" -#include "../console.h" -#include "../command.h" -#include "sdlmain.h" -#ifdef HWRENDER -#include "../hardware/hw_main.h" -#include "../hardware/hw_drv.h" -// For dynamic referencing of HW rendering functions -#include "hwsym_sdl.h" -#include "ogl_sdl.h" -#endif - -#ifdef HAVE_FILTER -#define FILTERS -#include "filter/filters.h" -#endif - -// maximum number of windowed modes (see windowedModes[][]) -#define MAXWINMODES (27) - -/** \brief -*/ -static INT32 numVidModes = -1; - -/** \brief -*/ -static char vidModeName[33][32]; // allow 33 different modes - -rendermode_t rendermode=render_soft; - -boolean highcolor = false; - -// synchronize page flipping with screen refresh -consvar_t cv_vidwait = {"vid_wait", "On", CV_SAVE, CV_OnOff, NULL, 0, NULL, NULL, 0, 0, NULL}; -static consvar_t cv_stretch = {"stretch", "Off", CV_SAVE|CV_NOSHOWHELP, CV_OnOff, NULL, 0, NULL, NULL, 0, 0, NULL}; - -UINT8 graphics_started = 0; // Is used in console.c and screen.c - -// To disable fullscreen at startup; is set in VID_PrepareModeList -boolean allow_fullscreen = false; -static SDL_bool disable_fullscreen = SDL_FALSE; -#define USE_FULLSCREEN (disable_fullscreen||!allow_fullscreen)?0:cv_fullscreen.value -static SDL_bool disable_mouse = SDL_FALSE; -#define USE_MOUSEINPUT (!disable_mouse && cv_usemouse.value && SDL_GetAppState() & SDL_APPACTIVE) -#define MOUSE_MENU false //(!disable_mouse && cv_usemouse.value && menuactive && !USE_FULLSCREEN) -#define MOUSEBUTTONS_MAX MOUSEBUTTONS - -// first entry in the modelist which is not bigger than MAXVIDWIDTHxMAXVIDHEIGHT -static INT32 firstEntry = 0; - -// SDL vars -#ifndef HWRENDER //[segabor] !!! I had problem compiling this source with gcc 3.3 -static SDL_Surface *vidSurface = NULL; -#endif -static SDL_Surface *bufSurface = NULL; -static SDL_Surface *icoSurface = NULL; -static SDL_Color localPalette[256]; -static SDL_Rect **modeList = NULL; -static Uint8 BitsPerPixel = 16; -static Uint16 realwidth = BASEVIDWIDTH; -static Uint16 realheight = BASEVIDHEIGHT; -static const Uint32 surfaceFlagsW = SDL_HWPALETTE/*|SDL_RESIZABLE*/; -static const Uint32 surfaceFlagsF = SDL_HWPALETTE|SDL_FULLSCREEN; -static SDL_bool mousegrabok = SDL_TRUE; -#define HalfWarpMouse(x,y) SDL_WarpMouse((Uint16)(x/2),(Uint16)(y/2)) -static SDL_bool videoblitok = SDL_FALSE; -static SDL_bool exposevideo = SDL_FALSE; - -// windowed video modes from which to choose from. -static INT32 windowedModes[MAXWINMODES][2] = -{ - {1920,1200}, // 1.60,6.00 - {1680,1050}, // 1.60,5.25 - {1600,1200}, // 1.33,5.00 - {1600,1000}, // 1.60,5.00 - {1536,1152}, // 1.33,4.80 - {1536, 960}, // 1.60,4.80 - {1440, 900}, // 1.60,4.50 - {1400,1050}, // 1.33,4.375 - {1400, 875}, // 1.60,4.375 - {1360, 850}, // 1.60,4.25 - {1280, 960}, // 1.33,4.00 - {1280, 800}, // 1.60,4.00 - {1152, 864}, // 1.33,3.60 - {1120, 700}, // 1.60,3.50 - {1024, 768}, // 1.33,3.20 - { 960, 720}, // 1.33,3.00 - { 960, 600}, // 1.60,3.00 - { 800, 600}, // 1.33,2.50 - { 800, 500}, // 1.60,2.50 - { 640, 480}, // 1.33,2.00 - { 640, 400}, // 1.60,2.00 - { 576, 432}, // 1.33,1.80 - { 512, 384}, // 1.33,1.60 - { 416, 312}, // 1.33,1.30 - { 400, 300}, // 1.33,1.25 - { 320, 240}, // 1.33,1.00 - { 320, 200}, // 1.60,1.00 -}; - -static void SDLSetMode(INT32 width, INT32 height, INT32 bpp, Uint32 flags) -{ - const char *SDLVD = I_GetEnv("SDL_VIDEODRIVER"); -#ifdef FILTERS - bpp = Setupf2x(width, height, bpp); -#endif - if (SDLVD && strncasecmp(SDLVD,"glSDL",6) == 0) //for glSDL videodriver - vidSurface = SDL_SetVideoMode(width, height,0,SDL_DOUBLEBUF); - else if (cv_vidwait.value && videoblitok && SDL_VideoModeOK(width, height, bpp, flags|SDL_HWSURFACE|SDL_DOUBLEBUF) >= bpp) - vidSurface = SDL_SetVideoMode(width, height, bpp, flags|SDL_HWSURFACE|SDL_DOUBLEBUF); - else if (videoblitok && SDL_VideoModeOK(width, height, bpp, flags|SDL_HWSURFACE) >= bpp) - vidSurface = SDL_SetVideoMode(width, height, bpp, flags|SDL_HWSURFACE); - else if (SDL_VideoModeOK(width, height, bpp, flags|SDL_SWSURFACE) >= bpp) - vidSurface = SDL_SetVideoMode(width, height, bpp, flags|SDL_SWSURFACE); - else return; - realwidth = (Uint16)width; - realheight = (Uint16)height; -#ifdef FILTERS - if (vidSurface && preSurface && f2xSurface) - { - vid.width = width/2; - vid.height = height/2; - } -#endif -} - -// -// Translates the SDL key into SRB2 key -// - -static INT32 SDLatekey(SDLKey sym) -{ - INT32 rc = sym + 0x80; - - switch (sym) - { - case SDLK_LEFT: - rc = KEY_LEFTARROW; - break; - case SDLK_RIGHT: - rc = KEY_RIGHTARROW; - break; - case SDLK_DOWN: - rc = KEY_DOWNARROW; - break; - case SDLK_UP: - rc = KEY_UPARROW; - break; - - case SDLK_ESCAPE: - rc = KEY_ESCAPE; - break; - case SDLK_SPACE: - rc = KEY_SPACE; - break; - case SDLK_RETURN: - case SDLK_KP_ENTER: - rc = KEY_ENTER; - break; - case SDLK_TAB: - rc = KEY_TAB; - break; - case SDLK_F1: - rc = KEY_F1; - break; - case SDLK_F2: - rc = KEY_F2; - break; - case SDLK_F3: - rc = KEY_F3; - break; - case SDLK_F4: - rc = KEY_F4; - break; - case SDLK_F5: - rc = KEY_F5; - break; - case SDLK_F6: - rc = KEY_F6; - break; - case SDLK_F7: - rc = KEY_F7; - break; - case SDLK_F8: - rc = KEY_F8; - break; - case SDLK_F9: - rc = KEY_F9; - break; - case SDLK_F10: - rc = KEY_F10; - break; - case SDLK_F11: - rc = KEY_F11; - break; - case SDLK_F12: - rc = KEY_F12; - break; - - case SDLK_BACKSPACE: - rc = KEY_BACKSPACE; - break; - case SDLK_DELETE: - rc = KEY_DEL; - break; - - case SDLK_KP_EQUALS: //Alam & Logan: WTF? Mac KB haves one! XD - case SDLK_PAUSE: - rc = KEY_PAUSE; - break; - - case SDLK_EQUALS: - case SDLK_PLUS: - rc = KEY_EQUALS; - break; - - case SDLK_MINUS: - rc = KEY_MINUS; - break; - - case SDLK_LSHIFT: - rc = KEY_LSHIFT; - break; - - case SDLK_RSHIFT: - rc = KEY_RSHIFT; - break; - - case SDLK_CAPSLOCK: - rc = KEY_CAPSLOCK; - break; - - case SDLK_LCTRL: - rc = KEY_LCTRL; - break; - case SDLK_RCTRL: - rc = KEY_RCTRL; - break; - - case SDLK_LALT: - rc = KEY_LALT; - break; - case SDLK_RALT: - rc = KEY_RALT; - break; - - case SDLK_NUMLOCK: - rc = KEY_NUMLOCK; - break; - case SDLK_SCROLLOCK: - rc = KEY_SCROLLLOCK; - break; - - case SDLK_PAGEUP: - rc = KEY_PGUP; - break; - case SDLK_PAGEDOWN: - rc = KEY_PGDN; - break; - case SDLK_END: - rc = KEY_END; - break; - case SDLK_HOME: - rc = KEY_HOME; - break; - case SDLK_INSERT: - rc = KEY_INS; - break; - - case SDLK_KP0: - rc = KEY_KEYPAD0; - break; - case SDLK_KP1: - rc = KEY_KEYPAD1; - break; - case SDLK_KP2: - rc = KEY_KEYPAD2; - break; - case SDLK_KP3: - rc = KEY_KEYPAD3; - break; - case SDLK_KP4: - rc = KEY_KEYPAD4; - break; - case SDLK_KP5: - rc = KEY_KEYPAD5; - break; - case SDLK_KP6: - rc = KEY_KEYPAD6; - break; - case SDLK_KP7: - rc = KEY_KEYPAD7; - break; - case SDLK_KP8: - rc = KEY_KEYPAD8; - break; - case SDLK_KP9: - rc = KEY_KEYPAD9; - break; - - case SDLK_KP_PERIOD: - rc = KEY_KPADDEL; - break; - case SDLK_KP_DIVIDE: - rc = KEY_KPADSLASH; - break; - case SDLK_KP_MULTIPLY: - rc = '*'; - break; - case SDLK_KP_MINUS: - rc = KEY_MINUSPAD; - break; - case SDLK_KP_PLUS: - rc = KEY_PLUSPAD; - break; - - case SDLK_LSUPER: -#ifdef HAVE_SDLMETAKEYS - case SDLK_LMETA: -#endif - rc = KEY_LEFTWIN; - break; - case SDLK_RSUPER: -#ifdef HAVE_SDLMETAKEYS - case SDLK_RMETA: -#endif - rc = KEY_RIGHTWIN; - break; - - case SDLK_MENU: - rc = KEY_MENU; - break; - - default: - if (sym >= SDLK_SPACE && sym <= SDLK_DELETE) - rc = sym - SDLK_SPACE + ' '; - else if (sym >= 'A' && sym <= 'Z') - rc = sym - 'A' + 'a'; - else if (sym) - { - I_OutputMsg("Unknown Keycode %i, Name: %s\n",sym, SDL_GetKeyName( sym )); - } - else if (!sym) rc = 0; - break; - } - - return rc; -} - -static void SDLdoUngrabMouse(void) -{ - if (SDL_GRAB_ON == SDL_WM_GrabInput(SDL_GRAB_QUERY)) - { - SDL_WM_GrabInput(SDL_GRAB_OFF); - } -} - -void SDLforceUngrabMouse(void) -{ - if (SDL_WasInit(SDL_INIT_VIDEO)==SDL_INIT_VIDEO) - SDL_WM_GrabInput(SDL_GRAB_OFF); -} - -static void VID_Command_NumModes_f (void) -{ - CONS_Printf(M_GetText("%d video mode(s) available(s)\n"), VID_NumModes()); -} - -static void SurfaceInfo(const SDL_Surface *infoSurface, const char *SurfaceText) -{ - INT32 vfBPP; - const SDL_Surface *VidSur = SDL_GetVideoSurface(); - - if (!infoSurface) - return; - - if (!SurfaceText) - SurfaceText = M_GetText("Unknown Surface"); - - vfBPP = infoSurface->format?infoSurface->format->BitsPerPixel:0; - - CONS_Printf("\x82" "%s\n", SurfaceText); - CONS_Printf(M_GetText(" %ix%i at %i bit color\n"), infoSurface->w, infoSurface->h, vfBPP); - - if (infoSurface->flags&SDL_HWSURFACE) - CONS_Printf("%s", M_GetText(" Stored in video memory\n")); - else if (infoSurface->flags&SDL_OPENGL) - CONS_Printf("%s", M_GetText(" Stored in an OpenGL context\n")); - else if (infoSurface->flags&SDL_PREALLOC) - CONS_Printf("%s", M_GetText(" Uses preallocated memory\n")); - else - CONS_Printf("%s", M_GetText(" Stored in system memory\n")); - - if (infoSurface->flags&SDL_ASYNCBLIT) - CONS_Printf("%s", M_GetText(" Uses asynchronous blits if possible\n")); - else - CONS_Printf("%s", M_GetText(" Uses synchronous blits if possible\n")); - - if (infoSurface->flags&SDL_ANYFORMAT) - CONS_Printf("%s", M_GetText(" Allows any pixel-format\n")); - - if (infoSurface->flags&SDL_HWPALETTE) - CONS_Printf("%s", M_GetText(" Has exclusive palette access\n")); - else if (VidSur == infoSurface) - CONS_Printf("%s", M_GetText(" Has nonexclusive palette access\n")); - - if (infoSurface->flags&SDL_DOUBLEBUF) - CONS_Printf("%s", M_GetText(" Double buffered\n")); - else if (VidSur == infoSurface) - CONS_Printf("%s", M_GetText(" No hardware flipping\n")); - - if (infoSurface->flags&SDL_FULLSCREEN) - CONS_Printf("%s", M_GetText(" Full screen\n")); - else if (infoSurface->flags&SDL_RESIZABLE) - CONS_Printf("%s", M_GetText(" Resizable window\n")); - else if (VidSur == infoSurface) - CONS_Printf("%s", M_GetText(" Nonresizable window\n")); - - if (infoSurface->flags&SDL_HWACCEL) - CONS_Printf("%s", M_GetText(" Uses hardware acceleration blit\n")); - if (infoSurface->flags&SDL_SRCCOLORKEY) - CONS_Printf("%s", M_GetText(" Use colorkey blitting\n")); - if (infoSurface->flags&SDL_RLEACCEL) - CONS_Printf("%s", M_GetText(" Colorkey RLE acceleration blit\n")); - if (infoSurface->flags&SDL_SRCALPHA) - CONS_Printf("%s", M_GetText(" Use alpha blending acceleration blit\n")); - -} - -static void VID_Command_Info_f (void) -{ - const SDL_VideoInfo *videoInfo; - videoInfo = SDL_GetVideoInfo(); //Alam: Double-Check - if (videoInfo) - { - CONS_Printf("%s", M_GetText("Video Interface Capabilities:\n")); - if (videoInfo->hw_available) - CONS_Printf("%s", M_GetText(" Hardware surfaces\n")); - if (videoInfo->wm_available) - CONS_Printf("%s", M_GetText(" Window manager\n")); - //UnusedBits1 :6 - //UnusedBits2 :1 - if (videoInfo->blit_hw) - CONS_Printf("%s", M_GetText(" Accelerated blits HW-2-HW\n")); - if (videoInfo->blit_hw_CC) - CONS_Printf("%s", M_GetText(" Accelerated blits HW-2-HW with Colorkey\n")); - if (videoInfo->wm_available) - CONS_Printf("%s", M_GetText(" Accelerated blits HW-2-HW with Alpha\n")); - if (videoInfo->blit_sw) - { - CONS_Printf("%s", M_GetText(" Accelerated blits SW-2-HW\n")); - if (!M_CheckParm("-noblit")) videoblitok = SDL_TRUE; - } - if (videoInfo->blit_sw_CC) - CONS_Printf("%s", M_GetText(" Accelerated blits SW-2-HW with Colorkey\n")); - if (videoInfo->blit_sw_A) - CONS_Printf("%s", M_GetText(" Accelerated blits SW-2-HW with Alpha\n")); - if (videoInfo->blit_fill) - CONS_Printf("%s", M_GetText(" Accelerated Color filling\n")); - //UnusedBits3 :16 - if (videoInfo->video_mem) - CONS_Printf(M_GetText(" There is %i KB of video memory\n"), videoInfo->video_mem); - else - CONS_Printf("%s", M_GetText(" There no video memory for SDL\n")); - //*vfmt - } - SurfaceInfo(bufSurface, M_GetText("Current Engine Mode")); -#ifdef FILTERS - SurfaceInfo(preSurface, M_GetText("Prebuffer Mode")); - SurfaceInfo(f2xSurface, M_GetText("Postbuffer Mode")); -#endif - SurfaceInfo(vidSurface, M_GetText("Current Video Mode")); -} - -static void VID_Command_ModeList_f(void) -{ - INT32 i; -#ifdef HWRENDER - if (rendermode == render_opengl) - modeList = SDL_ListModes(NULL, SDL_OPENGL|SDL_FULLSCREEN); - else -#endif - modeList = SDL_ListModes(NULL, surfaceFlagsF|SDL_HWSURFACE); //Alam: At least hardware surface - - if (modeList == (SDL_Rect **)0 && cv_fullscreen.value) - { - CONS_Printf("%s", M_GetText("No video modes present\n")); - cv_fullscreen.value = 0; - } - else if (modeList != (SDL_Rect **)0) - { - numVidModes = 0; - if (modeList == (SDL_Rect **)-1) - numVidModes = -1; // should not happen with fullscreen modes - else while (modeList[numVidModes]) - numVidModes++; - } - CONS_Printf(M_GetText("Found %d FullScreen Video Modes:\n"), numVidModes); - for (i=0 ; i= numVidModes) - break; - - CONS_Printf(M_GetText("%dx%d and "), - modeList[modeNum]->w, - modeList[modeNum]->h); - } - CONS_Printf("%s", M_GetText("None\n")); -} - -static void VID_Command_Mode_f (void) -{ - INT32 modenum; - - if (COM_Argc()!= 2) - { - CONS_Printf(M_GetText("vid_mode : set video mode, current video mode %i\n"), vid.modenum); - return; - } - - modenum = atoi(COM_Argv(1)); - - if (modenum >= VID_NumModes()) - CONS_Printf(M_GetText("Video mode not present\n")); - else - setmodeneeded = modenum+1; // request vid mode change -} - -#ifdef RPC_NO_WINDOWS_H -static VOID MainWndproc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam) -{ - UNREFERENCED_PARAMETER(hWnd); - UNREFERENCED_PARAMETER(message); - UNREFERENCED_PARAMETER(wParam); - switch (message) - { - case WM_SETTEXT: - COM_BufAddText((LPCSTR)lParam); - break; - } -} -#endif - -#if 0 //#ifdef _WIN32 - // Disable Composition in Vista DWM (Desktop Window Manager) ---------------- -static HMODULE DMdll = NULL; -typedef HRESULT (CALLBACK *P_DwmIsCompositionEnabled) (BOOL *pfEnabled); -static P_DwmIsCompositionEnabled pfnDwmIsCompositionEnabled = NULL; -typedef HRESULT (CALLBACK *P_DwmEnableComposition) (BOOL fEnable); -static P_DwmEnableComposition pfnDwmEnableComposition = NULL; -static BOOL AeroWasEnabled = FALSE; - -static inline VOID UnloadDM(VOID) -{ - pfnDwmEnableComposition = NULL; - pfnDwmIsCompositionEnabled = NULL; - if (DMdll) FreeLibrary(DMdll); - DMdll = NULL; -} - -static inline BOOL LoadDM(VOID) -{ - if (DMdll) - return TRUE; - - DMdll = LoadLibraryA("dwmapi.dll"); - if (DMdll) - I_OutputMsg("dmwapi.dll loaded, Vista's Desktop Window Manager API\n"); - else - return FALSE; - - pfnDwmIsCompositionEnabled = (P_DwmIsCompositionEnabled)GetProcAddress(DMdll, "DwmIsCompositionEnabled"); - if (pfnDwmIsCompositionEnabled) - I_OutputMsg("Composition Aero API found, DwmIsCompositionEnabled\n"); - - pfnDwmEnableComposition = (P_DwmEnableComposition)GetProcAddress(DMdll, "DwmEnableComposition"); - if (pfnDwmEnableComposition) - I_OutputMsg("Composition Aero API found, DwmEnableComposition\n"); - - return TRUE; -} - -static inline VOID DisableAero(VOID) -{ - BOOL pfnDwmEnableCompositiond = FALSE; - AeroWasEnabled = FALSE; - - if (!LoadDM()) - return; - - if (pfnDwmIsCompositionEnabled && SUCCEEDED(pfnDwmIsCompositionEnabled(&pfnDwmEnableCompositiond))) - I_OutputMsg("Got the result of DwmIsCompositionEnabled, %i\n", pfnDwmEnableCompositiond); - else - return; - - if ((AeroWasEnabled = pfnDwmEnableCompositiond)) - I_OutputMsg("Disable the Aero rendering\n"); - else - return; - - if (pfnDwmEnableComposition && SUCCEEDED(pfnDwmEnableComposition(FALSE))) - I_OutputMsg("Aero rendering disabled\n"); - else - I_OutputMsg("We failed to disable the Aero rendering\n"); -} - -static inline VOID ResetAero(VOID) -{ - if (pfnDwmEnableComposition && AeroWasEnabled) - { - if (SUCCEEDED(pfnDwmEnableComposition(AeroWasEnabled))) - I_OutputMsg("Aero rendering setting restored\n"); - else - I_OutputMsg("We failed to restore Aero rendering\n"); - } - UnloadDM(); -} -#endif - -static inline void SDLJoyRemap(event_t *event) -{ - (void)event; -} - -static INT32 SDLJoyAxis(const Sint16 axis, evtype_t which) -{ - // -32768 to 32767 - INT32 raxis = axis/32; - if (which == ev_joystick) - { - if (Joystick.bGamepadStyle) - { - // gamepad control type, on or off, live or die - if (raxis < -(JOYAXISRANGE/2)) - raxis = -1; - else if (raxis > (JOYAXISRANGE/2)) - raxis = 1; - else - raxis = 0; - } - else - { - raxis = JoyInfo.scale!=1?((raxis/JoyInfo.scale)*JoyInfo.scale):raxis; - -#ifdef SDL_JDEADZONE - if (-SDL_JDEADZONE <= raxis && raxis <= SDL_JDEADZONE) - raxis = 0; -#endif - } - } - else if (which == ev_joystick2) - { - if (Joystick2.bGamepadStyle) - { - // gamepad control type, on or off, live or die - if (raxis < -(JOYAXISRANGE/2)) - raxis = -1; - else if (raxis > (JOYAXISRANGE/2)) - raxis = 1; - else raxis = 0; - } - else - { - raxis = JoyInfo2.scale!=1?((raxis/JoyInfo2.scale)*JoyInfo2.scale):raxis; - -#ifdef SDL_JDEADZONE - if (-SDL_JDEADZONE <= raxis && raxis <= SDL_JDEADZONE) - raxis = 0; -#endif - } - } - return raxis; -} - -void I_GetEvent(void) -{ - SDL_Event inputEvent; - static SDL_bool sdlquit = SDL_FALSE; //Alam: once, just once - event_t event; - - if (!graphics_started) - return; - - memset(&inputEvent, 0x00, sizeof(inputEvent)); - while (SDL_PollEvent(&inputEvent)) - { - memset(&event,0x00,sizeof (event_t)); - switch (inputEvent.type) - { - case SDL_ACTIVEEVENT: - if (inputEvent.active.state & (SDL_APPACTIVE|SDL_APPINPUTFOCUS)) - { - // pause music when alt-tab - if (inputEvent.active.gain /*&& !paused */) - { - static SDL_bool firsttimeonmouse = SDL_TRUE; - if (!firsttimeonmouse) - { - if (cv_usemouse.value) I_StartupMouse(); - } - else firsttimeonmouse = SDL_FALSE; - //if (!netgame && !con_destlines) paused = false; - if (gamestate == GS_LEVEL) - if (!paused) I_ResumeSong(0); //resume it - } - else /*if (!paused)*/ - { - if (!disable_mouse) - SDLforceUngrabMouse(); - if (!netgame && gamestate == GS_LEVEL) paused = true; - memset(gamekeydown, 0, NUMKEYS); - //S_PauseSound(); - if (gamestate == GS_LEVEL) - I_PauseSong(0); //pause it - } - } - if (MOUSE_MENU) - { - SDLdoUngrabMouse(); - break; - } - if ((SDL_APPMOUSEFOCUS&inputEvent.active.state) && USE_MOUSEINPUT && inputEvent.active.gain) - HalfWarpMouse(realwidth, realheight); - break; - case SDL_KEYDOWN: - case SDL_KEYUP: - /// \todo inputEvent.key.which? - if (inputEvent.type == SDL_KEYUP) - event.type = ev_keyup; - else if (inputEvent.type == SDL_KEYDOWN) - event.type = ev_keydown; - else break; - event.data1 = SDLatekey(inputEvent.key.keysym.sym); - if (event.data1) D_PostEvent(&event); - break; - case SDL_MOUSEMOTION: - /// \todo inputEvent.motion.which - if (MOUSE_MENU) - { - SDLdoUngrabMouse(); - break; - } - if (USE_MOUSEINPUT) - { - // If the event is from warping the pointer back to middle - // of the screen then ignore it. - if ((inputEvent.motion.x == realwidth/2) && - (inputEvent.motion.y == realheight/2)) - { - break; - } - else - { - event.data2 = +inputEvent.motion.xrel; - event.data3 = -inputEvent.motion.yrel; - } - event.type = ev_mouse; - D_PostEvent(&event); - // Warp the pointer back to the middle of the window - // or we cannot move any further if it's at a border. - if ((inputEvent.motion.x < (realwidth/2 )-(realwidth/4 )) || - (inputEvent.motion.y < (realheight/2)-(realheight/4)) || - (inputEvent.motion.x > (realwidth/2 )+(realwidth/4 )) || - (inputEvent.motion.y > (realheight/2)+(realheight/4) ) ) - { - //if (SDL_GRAB_ON == SDL_WM_GrabInput(SDL_GRAB_QUERY) || !mousegrabok) - HalfWarpMouse(realwidth, realheight); - } - } - break; - case SDL_MOUSEBUTTONDOWN: - case SDL_MOUSEBUTTONUP: - /// \todo inputEvent.button.which - if (USE_MOUSEINPUT) - { - if (inputEvent.type == SDL_MOUSEBUTTONUP) - event.type = ev_keyup; - else if (inputEvent.type == SDL_MOUSEBUTTONDOWN) - event.type = ev_keydown; - else break; - if (inputEvent.button.button==SDL_BUTTON_WHEELUP || inputEvent.button.button==SDL_BUTTON_WHEELDOWN) - { - if (inputEvent.type == SDL_MOUSEBUTTONUP) - event.data1 = 0; //Alam: dumb! this could be a real button with some mice - else - event.data1 = KEY_MOUSEWHEELUP + inputEvent.button.button - SDL_BUTTON_WHEELUP; - } - else if (inputEvent.button.button == SDL_BUTTON_MIDDLE) - event.data1 = KEY_MOUSE1+2; - else if (inputEvent.button.button == SDL_BUTTON_RIGHT) - event.data1 = KEY_MOUSE1+1; - else if (inputEvent.button.button <= MOUSEBUTTONS) - event.data1 = KEY_MOUSE1 + inputEvent.button.button - SDL_BUTTON_LEFT; - if (event.data1) D_PostEvent(&event); - } - break; - case SDL_JOYAXISMOTION: - inputEvent.jaxis.which++; - inputEvent.jaxis.axis++; - event.data1 = event.data2 = event.data3 = INT32_MAX; - if (cv_usejoystick.value == inputEvent.jaxis.which) - { - event.type = ev_joystick; - } - else if (cv_usejoystick.value == inputEvent.jaxis.which) - { - event.type = ev_joystick2; - } - else break; - //axis - if (inputEvent.jaxis.axis > JOYAXISSET*2) - break; - //vaule - if (inputEvent.jaxis.axis%2) - { - event.data1 = inputEvent.jaxis.axis / 2; - event.data2 = SDLJoyAxis(inputEvent.jaxis.value, event.type); - } - else - { - inputEvent.jaxis.axis--; - event.data1 = inputEvent.jaxis.axis / 2; - event.data3 = SDLJoyAxis(inputEvent.jaxis.value, event.type); - } - D_PostEvent(&event); - break; - case SDL_JOYBALLMOTION: - case SDL_JOYHATMOTION: - break; //NONE - case SDL_JOYBUTTONDOWN: - case SDL_JOYBUTTONUP: - inputEvent.jbutton.which++; - if (cv_usejoystick.value == inputEvent.jbutton.which) - event.data1 = KEY_JOY1; - else if (cv_usejoystick.value == inputEvent.jbutton.which) - event.data1 = KEY_2JOY1; - else break; - if (inputEvent.type == SDL_JOYBUTTONUP) - event.type = ev_keyup; - else if (inputEvent.type == SDL_JOYBUTTONDOWN) - event.type = ev_keydown; - else break; - if (inputEvent.jbutton.button < JOYBUTTONS) - event.data1 += inputEvent.jbutton.button; - else - break; - SDLJoyRemap(&event); - if (event.type != ev_console) D_PostEvent(&event); - break; - case SDL_QUIT: - if (!sdlquit) - { - sdlquit = SDL_TRUE; - M_QuitResponse('y'); - } - break; -#ifdef RPC_NO_WINDOWS_H - case SDL_SYSWMEVENT: - MainWndproc(inputEvent.syswm.msg->hwnd, - inputEvent.syswm.msg->msg, - inputEvent.syswm.msg->wParam, - inputEvent.syswm.msg->lParam); - break; -#endif - case SDL_VIDEORESIZE: - if (gamestate == GS_LEVEL || gamestate == GS_TITLESCREEN || gamestate == GS_EVALUATION) - setmodeneeded = VID_GetModeForSize(inputEvent.resize.w,inputEvent.resize.h)+1; - if (render_soft == rendermode) - { -#ifdef FILTERS - INT32 filtervalue = cv_filter.value; - if (blitfilter) CV_SetValue(&cv_filter,1); -#endif - SDLSetMode(realwidth, realheight, vid.bpp*8, surfaceFlagsW); - if (vidSurface) SDL_SetColors(vidSurface, localPalette, 0, 256); -#ifdef FILTERS - CV_SetValue(&cv_filter,filtervalue); -#endif - } - else - SDLSetMode(realwidth, realheight, vid.bpp*8, surfaceFlagsW); - if (!vidSurface) - I_Error("Could not reset vidmode: %s\n",SDL_GetError()); - break; - case SDL_VIDEOEXPOSE: - exposevideo = SDL_TRUE; - break; - default: - break; - } - } - //reset wheel like in win32, I don't understand it but works - gamekeydown[KEY_MOUSEWHEELDOWN] = gamekeydown[KEY_MOUSEWHEELUP] = 0; -} - -void I_StartupMouse(void) -{ - static SDL_bool firsttimeonmouse = SDL_TRUE; - - if (disable_mouse) - return; - - if (!firsttimeonmouse) - HalfWarpMouse(realwidth, realheight); // warp to center - else - firsttimeonmouse = SDL_FALSE; - if (cv_usemouse.value) - return; - else - SDLdoUngrabMouse(); -} - -// -// I_OsPolling -// -void I_OsPolling(void) -{ - if (consolevent) - I_GetConsoleEvents(); - if (SDL_WasInit(SDL_INIT_JOYSTICK) == SDL_INIT_JOYSTICK) - { - SDL_JoystickUpdate(); - I_GetJoystickEvents(); - I_GetJoystick2Events(); - } - - I_GetMouseEvents(); - - I_GetEvent(); -} - -// -// I_UpdateNoBlit -// -void I_UpdateNoBlit(void) -{ - if (!vidSurface) - return; -#ifdef HWRENDER - if (rendermode != render_soft) - OglSdlFinishUpdate(cv_vidwait.value); - else -#endif - if (vidSurface->flags&SDL_DOUBLEBUF) - SDL_Flip(vidSurface); - else if (exposevideo) - SDL_UpdateRect(vidSurface, 0, 0, 0, 0); - exposevideo = SDL_FALSE; -} - -// I_SkipFrame -// -// Returns true if it thinks we can afford to skip this frame -// from PrBoom's src/SDL/i_video.c -static inline boolean I_SkipFrame(void) -{ - static boolean skip = false; - - if (render_soft != rendermode) - return false; - - skip = !skip; - - switch (gamestate) - { - case GS_LEVEL: - if (!paused) - return false; - //case GS_TIMEATTACK: -- sorry optimisation but now we have a cool level platter and that being laggardly looks terrible - case GS_WAITINGPLAYERS: - return skip; // Skip odd frames - default: - return false; - } -} - -static inline SDL_bool SDLmatchVideoformat(void) -{ - const SDL_PixelFormat *vidformat = vidSurface->format; - const INT32 vfBPP = vidformat?vidformat->BitsPerPixel:0; - return (((vfBPP == 8 && vid.bpp == 1 && - !vidformat->Rmask && !vidformat->Gmask && !vidformat->Bmask) || - (vfBPP == 15 && vid.bpp == 2 && vidformat->Rmask == 0x7C00 && - vidformat->Gmask == 0x03E0 && vidformat->Bmask == 0x001F )) && - !vidformat->Amask && (vidSurface->flags & SDL_RLEACCEL) == 0); -} - -// -// I_FinishUpdate -// -void I_FinishUpdate(void) -{ - if (!vidSurface) - return; //Alam: No software or OpenGl surface - - if (I_SkipFrame()) - return; - - // draw captions if enabled - if (cv_closedcaptioning.value) - SCR_ClosedCaptions(); - - if (cv_ticrate.value) - SCR_DisplayTicRate(); - - if (render_soft == rendermode && screens[0]) - { - SDL_Rect *dstrect = NULL; - SDL_Rect rect = {0, 0, 0, 0}; - SDL_PixelFormat *vidformat = vidSurface->format; - int lockedsf = 0, blited = 0; - - rect.w = (Sint16)vid.width; - rect.h = (Sint16)vid.height; - - if (vidSurface->h > vid.height) - rect.y = (Sint16)((vidSurface->h-vid.height)/2); - - dstrect = ▭ - - - if (!bufSurface && !vid.direct) //Double-Check - { - if (vid.bpp == 1) bufSurface = SDL_CreateRGBSurfaceFrom(screens[0],vid.width,vid.height,8, - (int)vid.rowbytes,0x00000000,0x00000000,0x00000000,0x00000000); // 256 mode - else if (vid.bpp == 2) bufSurface = SDL_CreateRGBSurfaceFrom(screens[0],vid.width,vid.height,15, - (int)vid.rowbytes,0x00007C00,0x000003E0,0x0000001F,0x00000000); // 555 mode - if (bufSurface) SDL_SetColors(bufSurface, localPalette, 0, 256); - else I_OutputMsg("No system memory for SDL buffer surface\n"); - } - -#ifdef FILTERS - FilterBlit(bufSurface); - if (f2xSurface) //Alam: filter! - { - //I_OutputMsg("2x Filter Code\n"); - blited = SDL_BlitSurface(f2xSurface,NULL,vidSurface,NULL); - } - else -#endif -#if 0 - if (SDLmatchVideoformat() && !vid.direct)//Alam: DOS Way - { - if (SDL_MUSTLOCK(vidSurface)) lockedsf = SDL_LockSurface(vidSurface); - if (lockedsf == 0) - { - if (vidSurface->pixels > vid.height) - { - UINT8 *ptr = vidSurface->pixels; - size_t half_excess = vidSurface->pitch*(vidSurface->height-vid.height)/2; - memset(ptr, 0x1F, half_excess); - ptr += half_excess; - VID_BlitLinearScreen(screens[0], ptr, vid.width*vid.bpp, vid.height, - vid.rowbytes, vidSurface->pitch); - ptr += vid.height*vidSurface->pitch; - memset(ptr, 0x1F, half_excess); - } - else - VID_BlitLinearScreen(screens[0], vidSurface->pixels, vid.width*vid.bpp, - vid.height, vid.rowbytes, vidSurface->pitch ); - if (SDL_MUSTLOCK(vidSurface)) SDL_UnlockSurface(vidSurface); - } - } - else -#endif - if (bufSurface) //Alam: New Way to send video data - { - blited = SDL_BlitSurface(bufSurface,NULL,vidSurface,dstrect); - } - else if (vid.bpp == 1 && !vid.direct) - { - Uint8 *bP,*vP; //Src, Dst - Uint16 bW, vW; // Pitch Remainder - Sint32 pH, pW; //Height, Width - bP = (Uint8 *)screens[0]; - bW = (Uint16)(vid.rowbytes - vid.width); - //I_OutputMsg("Old Copy Code\n"); - if (SDL_MUSTLOCK(vidSurface)) lockedsf = SDL_LockSurface(vidSurface); - vP = (Uint8 *)vidSurface->pixels; - vW = (Uint16)(vidSurface->pitch - vidSurface->w*vidformat->BytesPerPixel); - if (vidSurface->h > vid.height) - vP += vidSurface->pitch*(vidSurface->h-vid.height)/2; - if (lockedsf == 0 && vidSurface->pixels) - { - if (vidformat->BytesPerPixel == 2) - { - for (pH=0;pH < vidSurface->h;pH++) - { - for (pW=0;pW < vidSurface->w;pW++) - { - *((Uint16 *)(void *)vP) = (Uint16)SDL_MapRGB(vidformat, - localPalette[*bP].r,localPalette[*bP].g,localPalette[*bP].b); - bP++; - vP += 2; - } - bP += bW; - vP += vW; - } - } - else if (vidformat->BytesPerPixel == 3) - { - for (pH=0;pH < vidSurface->h;pH++) - { - for (pW=0;pW < vidSurface->w;pW++) - { - *((Uint32 *)(void *)vP) = SDL_MapRGB(vidformat, - localPalette[*bP].r,localPalette[*bP].g,localPalette[*bP].b); - bP++; - vP += 3; - } - bP += bW; - vP += vW; - } - } - else if (vidformat->BytesPerPixel == 4) - { - for (pH=0;pH < vidSurface->h;pH++) - { - for (pW=0;pW < vidSurface->w;pW++) - { - *((Uint32 *)(void *)vP) = SDL_MapRGB(vidformat, - localPalette[*bP].r,localPalette[*bP].g,localPalette[*bP].b); - bP++; - vP += 4; - } - bP += bW; - vP += vW; - } - } - else - { - ;//NOP - } - } - if (SDL_MUSTLOCK(vidSurface)) SDL_UnlockSurface(vidSurface); - } - else /// \todo 15t15,15tN, others? - { - ;//NOP - } - -#ifdef HAVE_GP2XSDL - //if (blited == 0) - SDL_GP2X_WaitForBlitter(); -#endif - - if (lockedsf == 0 && blited == 0 && vidSurface->flags&SDL_DOUBLEBUF) - SDL_Flip(vidSurface); - else if (blited != -2 && lockedsf == 0) //Alam: -2 for Win32 Direct, yea, i know - SDL_UpdateRect(vidSurface, rect.x, rect.y, 0, 0); //Alam: almost always - else - I_OutputMsg("%s\n",SDL_GetError()); - } -#ifdef HWRENDER - else - { - OglSdlFinishUpdate(cv_vidwait.value); - } -#endif - exposevideo = SDL_FALSE; -} - -// -// I_UpdateNoVsync -// -void I_UpdateNoVsync(void) -{ - INT32 real_vidwait = cv_vidwait.value; - cv_vidwait.value = 0; - I_FinishUpdate(); - cv_vidwait.value = real_vidwait; -} - -// -// I_ReadScreen -// -void I_ReadScreen(UINT8 *scr) -{ - if (rendermode != render_soft) - I_Error ("I_ReadScreen: called while in non-software mode"); - else - VID_BlitLinearScreen(screens[0], scr, - vid.width*vid.bpp, vid.height, - vid.rowbytes, vid.rowbytes); -} - -// -// I_SetPalette -// -void I_SetPalette(RGBA_t *palette) -{ - size_t i; - for (i=0; i<256; i++) - { - localPalette[i].r = palette[i].s.red; - localPalette[i].g = palette[i].s.green; - localPalette[i].b = palette[i].s.blue; - } - if (vidSurface) SDL_SetColors(vidSurface, localPalette, 0, 256); - if (bufSurface) SDL_SetColors(bufSurface, localPalette, 0, 256); -} - -// return number of fullscreen + X11 modes -INT32 VID_NumModes(void) -{ - if (USE_FULLSCREEN && numVidModes != -1) - return numVidModes - firstEntry; - else - return MAXWINMODES; -} - -const char *VID_GetModeName(INT32 modeNum) -{ - if (USE_FULLSCREEN && numVidModes != -1) // fullscreen modes - { - modeNum += firstEntry; - if (modeNum >= numVidModes) - return NULL; - - sprintf(&vidModeName[modeNum][0], "%dx%d", - modeList[modeNum]->w, - modeList[modeNum]->h); - } - else // windowed modes - { - if (modeNum > MAXWINMODES) - return NULL; - - sprintf(&vidModeName[modeNum][0], "%dx%d", - windowedModes[modeNum][0], - windowedModes[modeNum][1]); - } - return &vidModeName[modeNum][0]; -} - -INT32 VID_GetModeForSize(INT32 w, INT32 h) -{ - INT32 matchMode = -1, i; - VID_PrepareModeList(); - if (USE_FULLSCREEN && numVidModes != -1) - { - for (i=firstEntry; iw == w && - modeList[i]->h == h) - { - matchMode = i; - break; - } - } - if (-1 == matchMode) // use smaller mode - { - w -= w%BASEVIDWIDTH; - h -= h%BASEVIDHEIGHT; - for (i=firstEntry; iw == w && - modeList[i]->h == h) - { - matchMode = i; - break; - } - } - if (-1 == matchMode) // use smallest mode - matchMode = numVidModes-1; - } - matchMode -= firstEntry; - } - else - { - for (i=0; iw <= MAXVIDWIDTH && - modeList[i]->h <= MAXVIDHEIGHT) - { - firstEntry = i; - break; - } - } - } - } - allow_fullscreen = true; -} - -static inline void SDLESSet(void) -{ -#ifdef HAVE_DCSDL - INT32 j; - SDL_DC_SetVideoDriver(SDL_DC_DIRECT_VIDEO); //SDL_DC_DMA_VIDEO - for (j=0;j<4;j++) - { - SDL_DC_MapKey(j,SDL_DC_START,SDLK_ESCAPE); - SDL_DC_MapKey(j,SDL_DC_A,SDLK_UNKNOWN); - SDL_DC_MapKey(j,SDL_DC_B,SDLK_UNKNOWN); - SDL_DC_MapKey(j,SDL_DC_X,SDLK_UNKNOWN); - SDL_DC_MapKey(j,SDL_DC_Y,SDLK_UNKNOWN); - SDL_DC_MapKey(j,SDL_DC_L,SDLK_UNKNOWN); - SDL_DC_MapKey(j,SDL_DC_R,SDLK_UNKNOWN); - //SDL_DC_MapKey(j,SDL_DC_LEFT,SDLK_UNKNOWN); - //SDL_DC_MapKey(j,SDL_DC_RIGHT,SDLK_UNKNOWN); - //SDL_DC_MapKey(j,SDL_DC_UP,SDLK_UNKNOWN); - //SDL_DC_MapKey(j,SDL_DC_DOWN,SDLK_UNKNOWN); - } - //SDL_DC_MapKey(0,SDL_DC_L,SDLK_LEFTBRACKET); - //SDL_DC_MapKey(0,SDL_DC_R,SDLK_RIGHTBRACKET); - //SDL_DC_MapKey(0,SDL_DC_START,SDLK_UNKNOWN); - //SDL_DC_MapKey(1,SDL_DC_L,SDLK_z); - //SDL_DC_MapKey(1,SDL_DC_R,SDLK_x); -#endif -#ifdef HAVE_GP2XSDL - SDL_GP2X_MiniDisplay(0,0); - //SDL_GP2X_DenyGfxMemory(NULL, 0); - SDL_GP2X_AllowGfxMemory(NULL, 0); -#endif -} - -static void SDLWMSet(void) -{ -#ifdef RPC_NO_WINDOWS_H - SDL_SysWMinfo SDLWM; - memset(&SDLWM,0,sizeof (SDL_SysWMinfo)); - SDL_VERSION(&SDLWM.version) - if (SDL_GetWMInfo(&SDLWM)) - vid.WndParent = SDLWM.window; - else - vid.WndParent = INVALID_HANDLE_VALUE; - if (vid.WndParent != INVALID_HANDLE_VALUE) - { - SetFocus(vid.WndParent); - ShowWindow(vid.WndParent, SW_SHOW); - } - SDL_EventState(SDL_SYSWMEVENT, SDL_ENABLE); -#endif - SDL_EventState(SDL_VIDEORESIZE, SDL_IGNORE); -} - -static void* SDLGetDirect(void) -{ -#if 0 //#ifndef __MACH__ // Do not directly access the MacOSX's OpenGL memory - if (!SDL_MUSTLOCK(vidSurface) && SDLmatchVideoformat()) - { - vid.rowbytes = vidSurface->pitch; - return vidSurface->pixels; - } -#endif // you can not use the video memory in pixels member in fullscreen mode - return NULL; -} - -INT32 VID_SetMode(INT32 modeNum) -{ - SDLdoUngrabMouse(); - vid.recalc = true; - BitsPerPixel = (Uint8)cv_scr_depth.value; - //vid.bpp = BitsPerPixel==8?1:2; - // Window title - SDL_WM_SetCaption("SRB2 "VERSIONSTRING, "SRB2"); - - if (render_soft == rendermode) - { - //Alam: SDL_Video system free vidSurface for me - if (vid.buffer) free(vid.buffer); - vid.buffer = NULL; - if (bufSurface) SDL_FreeSurface(bufSurface); - bufSurface = NULL; - } - - if (USE_FULLSCREEN) - { - if (numVidModes != -1) - { - modeNum += firstEntry; - vid.width = modeList[modeNum]->w; - vid.height = modeList[modeNum]->h; - } - else - { - vid.width = windowedModes[modeNum][0]; - vid.height = windowedModes[modeNum][1]; - } - if (render_soft == rendermode) - { - SDLSetMode(vid.width, vid.height, BitsPerPixel, surfaceFlagsF); - - if (!vidSurface) - { - cv_fullscreen.value = 0; - modeNum = VID_GetModeForSize(vid.width,vid.height); - vid.width = windowedModes[modeNum][0]; - vid.height = windowedModes[modeNum][1]; - SDLSetMode(vid.width, vid.height, BitsPerPixel, surfaceFlagsW); - if (!vidSurface) - I_Error("Could not set vidmode: %s\n",SDL_GetError()); - } - } -#ifdef HWRENDER - else // (render_soft != rendermode) - { - if (!OglSdlSurface(vid.width, vid.height, true)) - { - cv_fullscreen.value = 0; - modeNum = VID_GetModeForSize(vid.width,vid.height); - vid.width = windowedModes[modeNum][0]; - vid.height = windowedModes[modeNum][1]; - if (!OglSdlSurface(vid.width, vid.height,false)) - I_Error("Could not set vidmode: %s\n",SDL_GetError()); - } - - realwidth = (Uint16)vid.width; - realheight = (Uint16)vid.height; - } -#endif - } - else //(cv_fullscreen.value) - { - vid.width = windowedModes[modeNum][0]; - vid.height = windowedModes[modeNum][1]; - - if (render_soft == rendermode) - { - SDLSetMode(vid.width, vid.height, BitsPerPixel, surfaceFlagsW); - if (!vidSurface) - I_Error("Could not set vidmode: %s\n",SDL_GetError()); - } -#ifdef HWRENDER - else //(render_soft != rendermode) - { - if (!OglSdlSurface(vid.width, vid.height, false)) - I_Error("Could not set vidmode: %s\n",SDL_GetError()); - realwidth = (Uint16)vid.width; - realheight = (Uint16)vid.height; - } -#endif - } - - vid.modenum = VID_GetModeForSize(vidSurface->w,vidSurface->h); - - if (render_soft == rendermode) - { - vid.rowbytes = vid.width*vid.bpp; - vid.direct = SDLGetDirect(); - vid.buffer = malloc(vid.rowbytes*vid.height*NUMSCREENS); - if (vid.buffer) memset(vid.buffer,0x00,vid.rowbytes*vid.height*NUMSCREENS); - else I_Error ("Not enough memory for video buffer\n"); - } - -#if 0 // broken - if (!cv_stretch.value && (float)vid.width/vid.height != ((float)BASEVIDWIDTH/BASEVIDHEIGHT)) - vid.height = (INT32)(vid.width * ((float)BASEVIDHEIGHT/BASEVIDWIDTH));// Adjust the height to match -#endif - I_StartupMouse(); - - SDLWMSet(); - - return true; -} - -void I_StartupGraphics(void) -{ - static char SDLNOMOUSE[] = "SDL_NOMOUSE=1"; - static char SDLVIDEOMID[] = "SDL_VIDEO_CENTERED=center"; - - if (dedicated) - { - rendermode = render_none; - return; - } - if (graphics_started) - return; - - COM_AddCommand ("vid_nummodes", VID_Command_NumModes_f); - COM_AddCommand ("vid_info", VID_Command_Info_f); - COM_AddCommand ("vid_modelist", VID_Command_ModeList_f); - COM_AddCommand ("vid_mode", VID_Command_Mode_f); - CV_RegisterVar (&cv_vidwait); - CV_RegisterVar (&cv_stretch); -#ifdef FILTERS - CV_RegisterVar (&cv_filter); -#endif - disable_mouse = M_CheckParm("-nomouse"); - if (disable_mouse) - I_PutEnv(SDLNOMOUSE); - if (!I_GetEnv("SDL_VIDEO_CENTERED")) - I_PutEnv(SDLVIDEOMID); - disable_fullscreen = M_CheckParm("-win"); - - keyboard_started = true; - -#if !defined(HAVE_TTF) -#ifdef _WIN32 // Initialize Audio as well, otherwise Win32's DirectX can not use audio - if (SDL_InitSubSystem(SDL_INIT_AUDIO|SDL_INIT_VIDEO) < 0) -#else //SDL_OpenAudio will do SDL_InitSubSystem(SDL_INIT_AUDIO) - if (SDL_InitSubSystem(SDL_INIT_VIDEO) < 0) -#endif - { -#ifdef _WIN32 - if (SDL_WasInit(SDL_INIT_AUDIO)==0) - CONS_Printf(M_GetText("Couldn't initialize SDL's Audio System with Video System: %s\n"), SDL_GetError()); - if (SDL_WasInit(SDL_INIT_VIDEO)==0) -#endif - { - CONS_Printf(M_GetText("Couldn't initialize SDL's Video System: %s\n"), SDL_GetError()); - return; - } - } -#endif - { - char vd[100]; //stack space for video name - CONS_Printf(M_GetText("Starting up with video driver : %s\n"), SDL_VideoDriverName(vd,100)); - if (strncasecmp(vd, "gcvideo", 8) == 0 || strncasecmp(vd, "fbcon", 6) == 0 || strncasecmp(vd, "wii", 4) == 0 || strncasecmp(vd, "psl1ght", 8) == 0) - framebuffer = SDL_TRUE; - } - if (M_CheckParm("-software")) - rendermode = render_soft; - SDL_EnableKeyRepeat(SDL_DEFAULT_REPEAT_DELAY>>1,SDL_DEFAULT_REPEAT_INTERVAL<<2); - SDLESSet(); - VID_Command_ModeList_f(); - vid.buffer = NULL; // For software mode - vid.width = BASEVIDWIDTH; // Default size for startup - vid.height = BASEVIDHEIGHT; // BitsPerPixel is the SDL interface's - vid.recalc = true; // Set up the console stufff - vid.direct = NULL; // Maybe direct access? - vid.bpp = 1; // This is the game engine's Bpp - vid.WndParent = NULL; //For the window? - -#ifdef HAVE_TTF - I_ShutdownTTF(); -#endif - - // Window title - SDL_WM_SetCaption("SRB2: Starting up", "SRB2"); - - // Window icon -#ifdef HAVE_IMAGE - icoSurface = IMG_ReadXPMFromArray(SDL_icon_xpm); -#endif - SDL_WM_SetIcon(icoSurface, NULL); - -#ifdef _WIN32 - //DisableAero(); //also disable Aero on Vista -#endif - -#ifdef HWRENDER - if (M_CheckParm("-opengl") || rendermode == render_opengl) - { - rendermode = render_opengl; - HWD.pfnInit = hwSym("Init",NULL); - HWD.pfnFinishUpdate = NULL; - HWD.pfnDraw2DLine = hwSym("Draw2DLine",NULL); - HWD.pfnDrawPolygon = hwSym("DrawPolygon",NULL); - HWD.pfnSetBlend = hwSym("SetBlend",NULL); - HWD.pfnClearBuffer = hwSym("ClearBuffer",NULL); - HWD.pfnSetTexture = hwSym("SetTexture",NULL); - HWD.pfnReadRect = hwSym("ReadRect",NULL); - HWD.pfnGClipRect = hwSym("GClipRect",NULL); - HWD.pfnClearMipMapCache = hwSym("ClearMipMapCache",NULL); - HWD.pfnSetSpecialState = hwSym("SetSpecialState",NULL); - HWD.pfnSetPalette = hwSym("SetPalette",NULL); - HWD.pfnGetTextureUsed = hwSym("GetTextureUsed",NULL); - HWD.pfnDrawMD2 = hwSym("DrawMD2",NULL); - HWD.pfnDrawMD2i = hwSym("DrawMD2i",NULL); - HWD.pfnSetTransform = hwSym("SetTransform",NULL); - HWD.pfnGetRenderVersion = hwSym("GetRenderVersion",NULL); -#ifdef SHUFFLE - HWD.pfnPostImgRedraw = hwSym("PostImgRedraw",NULL); -#endif - HWD.pfnStartScreenWipe = hwSym("StartScreenWipe",NULL); - HWD.pfnEndScreenWipe = hwSym("EndScreenWipe",NULL); - HWD.pfnDoScreenWipe = hwSym("DoScreenWipe",NULL); - HWD.pfnDrawIntermissionBG=hwSym("DrawIntermissionBG",NULL); - HWD.pfnMakeScreenTexture= hwSym("MakeScreenTexture",NULL); - // check gl renderer lib - if (HWD.pfnGetRenderVersion() != VERSION) - I_Error("%s", M_GetText("The version of the renderer doesn't match the version of the executable\nBe sure you have installed SRB2 properly.\n")); -#if 1 // - vid.width = BASEVIDWIDTH; - vid.height = BASEVIDHEIGHT; -#else - vid.width = 640; // hack to make voodoo cards work in 640x480 - vid.height = 480; -#endif - if (HWD.pfnInit(I_Error)) // let load the OpenGL library - { - /* - * We want at least 1 bit R, G, and B, - * and at least 16 bpp. Why 1 bit? May be more? - */ - SDL_GL_SetAttribute(SDL_GL_RED_SIZE, 1); - SDL_GL_SetAttribute(SDL_GL_GREEN_SIZE, 1); - SDL_GL_SetAttribute(SDL_GL_BLUE_SIZE, 1); - SDL_GL_SetAttribute(SDL_GL_DOUBLEBUFFER, 1); - if (!OglSdlSurface(vid.width, vid.height, (USE_FULLSCREEN))) - if (!OglSdlSurface(vid.width, vid.height, !(USE_FULLSCREEN))) - rendermode = render_soft; - } - else - rendermode = render_soft; - } -#else - rendermode = render_soft; //force software mode when there no HWRENDER code -#endif - if (render_soft == rendermode) - { - vid.width = BASEVIDWIDTH; - vid.height = BASEVIDHEIGHT; - SDLSetMode(vid.width, vid.height, BitsPerPixel, surfaceFlagsW); - if (!vidSurface) - { - CONS_Printf(M_GetText("Could not set vidmode: %s\n") ,SDL_GetError()); - vid.rowbytes = 0; - graphics_started = true; - return; - } - vid.rowbytes = vid.width * vid.bpp; - vid.direct = SDLGetDirect(); - vid.buffer = malloc(vid.rowbytes*vid.height*NUMSCREENS); - if (vid.buffer) memset(vid.buffer,0x00,vid.rowbytes*vid.height*NUMSCREENS); - else CONS_Printf("%s", M_GetText("Not enough memory for video buffer\n")); - } - if (M_CheckParm("-nomousegrab")) - mousegrabok = SDL_FALSE; -#ifdef _DEBUG - else - { - char videodriver[4] = {'S','D','L',0}; - if (!M_CheckParm("-mousegrab") && - SDL_VideoDriverName(videodriver,4) && - strncasecmp("X11",videodriver,4) == 0) - mousegrabok = SDL_FALSE; //X11's XGrabPointer not good - } -#endif - realwidth = (Uint16)vid.width; - realheight = (Uint16)vid.height; - - VID_Command_Info_f(); - if (!disable_mouse) SDL_ShowCursor(SDL_DISABLE); - SDLdoUngrabMouse(); - - SDLWMSet(); - - graphics_started = true; -} - -void I_ShutdownGraphics(void) -{ - const rendermode_t oldrendermode = rendermode; - - rendermode = render_none; - if (icoSurface) SDL_FreeSurface(icoSurface); - icoSurface = NULL; - if (render_soft == oldrendermode) - { - vidSurface = NULL; //Alam: SDL_Video system free vidSurface for me - if (vid.buffer) free(vid.buffer); - vid.buffer = NULL; - if (bufSurface) SDL_FreeSurface(bufSurface); - bufSurface = NULL; -#ifdef FILTERS - if (preSurface) SDL_FreeSurface(preSurface); - preSurface = NULL; - if (f2xSurface) SDL_FreeSurface(f2xSurface); - f2xSurface = NULL; -#endif - } - - // was graphics initialized anyway? - if (!graphics_started) - return; - CONS_Printf("I_ShutdownGraphics: "); -#ifdef _WIN32 - //ResetAero(); -#endif - graphics_started = false; - CONS_Printf("%s", M_GetText("shut down\n")); -#ifdef HWRENDER - if (GLUhandle) - hwClose(GLUhandle); -#endif - SDL_QuitSubSystem(SDL_INIT_VIDEO); - framebuffer = SDL_FALSE; -} -#endif diff --git a/src/sdl12/macosx/English.lproj/InfoPlist.strings b/src/sdl12/macosx/English.lproj/InfoPlist.strings deleted file mode 100644 index e69de29bb..000000000 diff --git a/src/sdl12/macosx/Info.plist b/src/sdl12/macosx/Info.plist deleted file mode 100644 index ae0ce24de..000000000 --- a/src/sdl12/macosx/Info.plist +++ /dev/null @@ -1,28 +0,0 @@ - - - - - CFBundleDevelopmentRegion - English - CFBundleExecutable - ${EXECUTABLE_NAME} - CFBundleIconFile - Srb2mac.icns - CFBundleIdentifier - com.yourcompany.Srb2mac - CFBundleInfoDictionaryVersion - 6.0 - CFBundleName - ${PRODUCT_NAME} - CFBundlePackageType - APPL - CFBundleSignature - ???? - CFBundleVersion - 1.0 - NSMainNibFile - SDLMain - NSPrincipalClass - NSApplication - - diff --git a/src/sdl12/macosx/Srb2mac.icns b/src/sdl12/macosx/Srb2mac.icns deleted file mode 100644 index 4baedc1c5a091a3917d2a33bc3780da5b1b5e996..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 79787 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 diff --git a/src/sdl12/macosx/Srb2mac.pbproj/project.pbxproj b/src/sdl12/macosx/Srb2mac.pbproj/project.pbxproj deleted file mode 100644 index de12201f5..000000000 --- a/src/sdl12/macosx/Srb2mac.pbproj/project.pbxproj +++ /dev/null @@ -1,3546 +0,0 @@ -// !$*UTF8*$! -{ - archiveVersion = 1; - classes = { - }; - objectVersion = 38; - objects = { - 6726EB5E10190F860074DCBA = { - buildActionMask = 2147483647; - dstPath = ""; - dstSubfolderSpec = 7; - files = ( - 6755C8D0101802C300A80195, - 6755C8D1101802C300A80195, - 6755C8D2101802C300A80195, - 6755C8D3101802C300A80195, - 6755C8D4101802C300A80195, - 6755C8D5101802C300A80195, - 6755C8D6101802C300A80195, - 6755C8D7101802C300A80195, - 6755C8D8101802C300A80195, - ); - isa = PBXCopyFilesBuildPhase; - runOnlyForDeploymentPostprocessing = 0; - }; - 6726EB5F10190FFC0074DCBA = { - buildActionMask = 2147483647; - files = ( - ); - generatedFileNames = ( - ); - isa = PBXShellScriptBuildPhase; - neededFileNames = ( - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "touch -c $SRCROOT/../../comptime.c"; - }; - 6755C7A91017FE2500A80195 = { - fileEncoding = 30; - isa = PBXFileReference; - name = lzf.c; - path = ../../lzf.c; - refType = 2; - }; - 6755C7AA1017FE2500A80195 = { - fileEncoding = 30; - isa = PBXFileReference; - name = lzf.h; - path = ../../lzf.h; - refType = 2; - }; - 6755C7AB1017FE2500A80195 = { - fileEncoding = 30; - isa = PBXFileReference; - name = m_dllist.h; - path = ../../m_dllist.h; - refType = 2; - }; - 6755C7AC1017FE2500A80195 = { - fileEncoding = 30; - isa = PBXFileReference; - name = m_queue.c; - path = ../../m_queue.c; - refType = 2; - }; - 6755C7AD1017FE2500A80195 = { - fileEncoding = 30; - isa = PBXFileReference; - name = m_queue.h; - path = ../../m_queue.h; - refType = 2; - }; - 6755C7AE1017FE2500A80195 = { - fileEncoding = 30; - isa = PBXFileReference; - name = p_polyobj.c; - path = ../../p_polyobj.c; - refType = 2; - }; - 6755C7AF1017FE2500A80195 = { - fileEncoding = 30; - isa = PBXFileReference; - name = p_polyobj.h; - path = ../../p_polyobj.h; - refType = 2; - }; - 6755C7B11017FE2500A80195 = { - fileEncoding = 30; - isa = PBXFileReference; - name = string.c; - path = ../../string.c; - refType = 2; - }; - 6755C7B21017FE2500A80195 = { - fileRef = 6755C7A91017FE2500A80195; - isa = PBXBuildFile; - settings = { - }; - }; - 6755C7B31017FE2500A80195 = { - fileRef = 6755C7AA1017FE2500A80195; - isa = PBXBuildFile; - settings = { - }; - }; - 6755C7B51017FE2500A80195 = { - fileRef = 6755C7AC1017FE2500A80195; - isa = PBXBuildFile; - settings = { - }; - }; - 6755C7B71017FE2500A80195 = { - fileRef = 6755C7AE1017FE2500A80195; - isa = PBXBuildFile; - settings = { - }; - }; - 6755C7B81017FE2500A80195 = { - fileRef = 6755C7AF1017FE2500A80195; - isa = PBXBuildFile; - settings = { - }; - }; - 6755C7BB1017FE2500A80195 = { - fileRef = 6755C7A91017FE2500A80195; - isa = PBXBuildFile; - settings = { - }; - }; - 6755C7BC1017FE2500A80195 = { - fileRef = 6755C7AA1017FE2500A80195; - isa = PBXBuildFile; - settings = { - }; - }; - 6755C7BD1017FE2500A80195 = { - fileRef = 6755C7AB1017FE2500A80195; - isa = PBXBuildFile; - settings = { - }; - }; - 6755C7BE1017FE2500A80195 = { - fileRef = 6755C7AC1017FE2500A80195; - isa = PBXBuildFile; - settings = { - }; - }; - 6755C7BF1017FE2500A80195 = { - fileRef = 6755C7AD1017FE2500A80195; - isa = PBXBuildFile; - settings = { - }; - }; - 6755C7C01017FE2500A80195 = { - fileRef = 6755C7AE1017FE2500A80195; - isa = PBXBuildFile; - settings = { - }; - }; - 6755C7C11017FE2500A80195 = { - fileRef = 6755C7AF1017FE2500A80195; - isa = PBXBuildFile; - settings = { - }; - }; - 6755C7C41017FE4400A80195 = { - children = ( - 6755C7FA1017FE4500A80195, - 6755C7FB1017FE4500A80195, - ); - isa = PBXGroup; - name = macosx; - path = ""; - refType = 2; - }; - 6755C7FA1017FE4500A80195 = { - fileEncoding = 30; - isa = PBXFileReference; - path = mac_alert.c; - refType = 2; - }; - 6755C7FB1017FE4500A80195 = { - fileEncoding = 30; - isa = PBXFileReference; - path = mac_alert.h; - refType = 2; - }; - 6755C82A1017FE4500A80195 = { - fileEncoding = 30; - isa = PBXFileReference; - name = sdlmain.h; - path = ../sdlmain.h; - refType = 2; - }; - 6755C84B1017FE4500A80195 = { - fileRef = 6755C7FA1017FE4500A80195; - isa = PBXBuildFile; - settings = { - }; - }; - 6755C8651017FE4500A80195 = { - fileRef = 6755C82A1017FE4500A80195; - isa = PBXBuildFile; - settings = { - }; - }; - 6755C8861017FE4500A80195 = { - fileRef = 6755C7FA1017FE4500A80195; - isa = PBXBuildFile; - settings = { - }; - }; - 6755C8871017FE4500A80195 = { - fileRef = 6755C7FB1017FE4500A80195; - isa = PBXBuildFile; - settings = { - }; - }; - 6755C8A01017FE4500A80195 = { - fileRef = 6755C82A1017FE4500A80195; - isa = PBXBuildFile; - settings = { - }; - }; - 6755C8A41017FE8000A80195 = { - children = ( - 84177748085A1097000C01D8, - 84177749085A1097000C01D8, - 8417774A085A1097000C01D8, - 8417774B085A1097000C01D8, - 8417774C085A1097000C01D8, - 8417774D085A1097000C01D8, - 8417774E085A1097000C01D8, - 8417774F085A1097000C01D8, - 84177750085A1097000C01D8, - 84177751085A1097000C01D8, - 84177752085A1097000C01D8, - 84177753085A1097000C01D8, - 84177754085A1097000C01D8, - 84177755085A10AA000C01D8, - 84177756085A10AA000C01D8, - 6755C82A1017FE4500A80195, - 84177757085A10AA000C01D8, - 6755C7C41017FE4400A80195, - ); - isa = PBXGroup; - name = SDL; - path = ""; - refType = 2; - }; - 6755C8BE101802C300A80195 = { - isa = PBXFileReference; - name = drill.dta; - path = ../../../bin/Resources/drill.dta; - refType = 2; - }; - 6755C8BF101802C300A80195 = { - isa = PBXFileReference; - name = fmod.dll; - path = ../../../bin/Resources/fmod.dll; - refType = 2; - }; - 6755C8C0101802C300A80195 = { - isa = PBXFileReference; - name = knux.plr; - path = ../../../bin/Resources/knux.plr; - refType = 2; - }; - 6755C8C1101802C300A80195 = { - isa = PBXFileReference; - name = music.dta; - path = ../../../bin/Resources/music.dta; - refType = 2; - }; - 6755C8C2101802C300A80195 = { - isa = PBXFileReference; - name = rings.wpn; - path = ../../../bin/Resources/rings.wpn; - refType = 2; - }; - 6755C8C3101802C300A80195 = { - isa = PBXFileReference; - name = soar.dta; - path = ../../../bin/Resources/soar.dta; - refType = 2; - }; - 6755C8C4101802C300A80195 = { - isa = PBXFileReference; - name = sonic.plr; - path = ../../../bin/Resources/sonic.plr; - refType = 2; - }; - 6755C8C5101802C300A80195 = { - isa = PBXFileReference; - name = srb2.wad; - path = ../../../bin/Resources/srb2.wad; - refType = 2; - }; - 6755C8C6101802C300A80195 = { - isa = PBXFileReference; - name = tails.plr; - path = ../../../bin/Resources/tails.plr; - refType = 2; - }; - 6755C8C7101802C300A80195 = { - fileRef = 6755C8BE101802C300A80195; - isa = PBXBuildFile; - settings = { - }; - }; - 6755C8C8101802C300A80195 = { - fileRef = 6755C8BF101802C300A80195; - isa = PBXBuildFile; - settings = { - }; - }; - 6755C8C9101802C300A80195 = { - fileRef = 6755C8C0101802C300A80195; - isa = PBXBuildFile; - settings = { - }; - }; - 6755C8CA101802C300A80195 = { - fileRef = 6755C8C1101802C300A80195; - isa = PBXBuildFile; - settings = { - }; - }; - 6755C8CB101802C300A80195 = { - fileRef = 6755C8C2101802C300A80195; - isa = PBXBuildFile; - settings = { - }; - }; - 6755C8CC101802C300A80195 = { - fileRef = 6755C8C3101802C300A80195; - isa = PBXBuildFile; - settings = { - }; - }; - 6755C8CD101802C300A80195 = { - fileRef = 6755C8C4101802C300A80195; - isa = PBXBuildFile; - settings = { - }; - }; - 6755C8CE101802C300A80195 = { - fileRef = 6755C8C5101802C300A80195; - isa = PBXBuildFile; - settings = { - }; - }; - 6755C8CF101802C300A80195 = { - fileRef = 6755C8C6101802C300A80195; - isa = PBXBuildFile; - settings = { - }; - }; - 6755C8D0101802C300A80195 = { - fileRef = 6755C8BE101802C300A80195; - isa = PBXBuildFile; - settings = { - }; - }; - 6755C8D1101802C300A80195 = { - fileRef = 6755C8BF101802C300A80195; - isa = PBXBuildFile; - settings = { - }; - }; - 6755C8D2101802C300A80195 = { - fileRef = 6755C8C0101802C300A80195; - isa = PBXBuildFile; - settings = { - }; - }; - 6755C8D3101802C300A80195 = { - fileRef = 6755C8C1101802C300A80195; - isa = PBXBuildFile; - settings = { - }; - }; - 6755C8D4101802C300A80195 = { - fileRef = 6755C8C2101802C300A80195; - isa = PBXBuildFile; - settings = { - }; - }; - 6755C8D5101802C300A80195 = { - fileRef = 6755C8C3101802C300A80195; - isa = PBXBuildFile; - settings = { - }; - }; - 6755C8D6101802C300A80195 = { - fileRef = 6755C8C4101802C300A80195; - isa = PBXBuildFile; - settings = { - }; - }; - 6755C8D7101802C300A80195 = { - fileRef = 6755C8C5101802C300A80195; - isa = PBXBuildFile; - settings = { - }; - }; - 6755C8D8101802C300A80195 = { - fileRef = 6755C8C6101802C300A80195; - isa = PBXBuildFile; - settings = { - }; - }; - 677B5EC810180D4E00A80195 = { - fileRef = 84177758085A10D2000C01D8; - isa = PBXBuildFile; - settings = { - }; - }; - 677B5EC910180D6600A80195 = { - children = ( - 84177758085A10D2000C01D8, - ); - isa = PBXGroup; - name = r_opengl; - refType = 4; - }; - 677B5ECA10180D7100A80195 = { - children = ( - 84F202CA08A92AA0000C01D8, - ); - isa = PBXGroup; - name = s_openal; - refType = 4; - }; - 67B2D0C91018779900A80195 = { - fileRef = 84177748085A1097000C01D8; - isa = PBXBuildFile; - settings = { - }; - }; - 67B2D0CA1018779D00A80195 = { - fileRef = 84177748085A1097000C01D8; - isa = PBXBuildFile; - settings = { - }; - }; -//670 -//671 -//672 -//673 -//674 -//840 -//841 -//842 -//843 -//844 - 840CE6B009198AA7000C01D8 = { - buildActionMask = 2147483647; - dstPath = ""; - dstSubfolderSpec = 10; - files = ( - 840CE6B309198ABB000C01D8, - 840CE6B409198ABB000C01D8, - 849BD32D0A7E471D000C01D8, - ); - isa = PBXCopyFilesBuildPhase; - runOnlyForDeploymentPostprocessing = 0; - }; - 840CE6B309198ABB000C01D8 = { - fileRef = 84C4E04B08620A46000C01D8; - isa = PBXBuildFile; - settings = { - }; - }; - 840CE6B409198ABB000C01D8 = { - fileRef = 84C4E04C08620A46000C01D8; - isa = PBXBuildFile; - settings = { - }; - }; - 841776FE085A0C64000C01D8 = { - children = ( - 84C4E00D0862063C000C01D8, - 84177705085A0CDB000C01D8, - 84177706085A0D9D000C01D8, - 84177708085A0DB5000C01D8, - 84177709085A0DD1000C01D8, - 84177712085A0EB5000C01D8, - 8417770B085A0E17000C01D8, - 8417770C085A0E40000C01D8, - 8417770D085A0E4E000C01D8, - 8417770E085A0E5B000C01D8, - 8417770F085A0E66000C01D8, - 84177710085A0E71000C01D8, - 84177711085A0E77000C01D8, - 841779E2085A138F000C01D8, - 84F202C708A92A5D000C01D8, - 84C4E03F0862096F000C01D8, - 84C4E0420862098A000C01D8, - 84C4E045086209D3000C01D8, - 84C4E048086209FF000C01D8, - 84C4E04C08620A46000C01D8, - 84C4E04B08620A46000C01D8, - 849BD31C0A7E45B3000C01D8, - ); - isa = PBXGroup; - refType = 4; - }; - 84177700085A0C64000C01D8 = { - buildRules = ( - ); - buildSettings = { - COPY_PHASE_STRIP = NO; - }; - isa = PBXBuildStyle; - name = Development; - }; - 84177701085A0C64000C01D8 = { - buildRules = ( - ); - buildSettings = { - COPY_PHASE_STRIP = YES; - }; - isa = PBXBuildStyle; - name = Deployment; - }; - 84177702085A0C64000C01D8 = { - buildStyles = ( - 84177700085A0C64000C01D8, - 84177701085A0C64000C01D8, - ); - hasScannedForEncodings = 1; - isa = PBXProject; - mainGroup = 841776FE085A0C64000C01D8; - productRefGroup = 841779E2085A138F000C01D8; - projectDirPath = ""; - targets = ( - 841779E0085A138F000C01D8, - 841779E9085A13B1000C01D8, - ); - }; - 84177705085A0CDB000C01D8 = { - children = ( - 849603A80A791C11000C01D8, - 84177713085A0FCE000C01D8, - 84177714085A0FCE000C01D8, - 84177716085A0FCE000C01D8, - 84177717085A0FCE000C01D8, - 84177718085A0FCE000C01D8, - 84177719085A0FCE000C01D8, - 8417771A085A0FCE000C01D8, - 8417771B085A0FCE000C01D8, - 8417771C085A0FCE000C01D8, - 8417771D085A0FCE000C01D8, - 8417771E085A0FCE000C01D8, - 8417771F085A0FCE000C01D8, - 84177720085A0FCE000C01D8, - 84177721085A0FCE000C01D8, - 84177722085A0FCE000C01D8, - 84177723085A0FCE000C01D8, - 84177724085A0FF2000C01D8, - 84177725085A0FF2000C01D8, - 84177726085A0FF2000C01D8, - 84177727085A0FF2000C01D8, - 6755C7B11017FE2500A80195, - ); - isa = PBXGroup; - name = D_SRB2; - path = ""; - refType = 2; - }; - 84177706085A0D9D000C01D8 = { - children = ( - 8417772A085A100E000C01D8, - 8417772B085A100E000C01D8, - 8417772C085A100E000C01D8, - ); - isa = PBXGroup; - name = F_Frame; - path = ""; - refType = 2; - }; - 84177708085A0DB5000C01D8 = { - children = ( - 841779DA085A1347000C01D8, - 841778C6085A1295000C01D8, - 841778C4085A1295000C01D8, - 841778C5085A1295000C01D8, - 8417772D085A1029000C01D8, - 8417772E085A1029000C01D8, - 8417772F085A1029000C01D8, - 84177730085A1029000C01D8, - 84177731085A1029000C01D8, - 841779D4085A1296000C01D8, - 841779D5085A1296000C01D8, - ); - isa = PBXGroup; - name = G_Game; - path = ""; - refType = 2; - }; - 84177709085A0DD1000C01D8 = { - children = ( - 841778BE085A1295000C01D8, - 841778BF085A1295000C01D8, - 841778C2085A1295000C01D8, - 841778C3085A1295000C01D8, - 841778C0085A1295000C01D8, - 841778C1085A1295000C01D8, - 84177732085A1040000C01D8, - 84177733085A1040000C01D8, - 841779D2085A1296000C01D8, - 841779D3085A1296000C01D8, - 841779D8085A1296000C01D8, - 8490D433085DF537000C01D8, - ); - isa = PBXGroup; - name = H_Hud; - path = ""; - refType = 2; - }; - 8417770B085A0E17000C01D8 = { - children = ( - 6755C8A41017FE8000A80195, - 84177759085A10D2000C01D8, - 841777A4085A1200000C01D8, - 841777A5085A1200000C01D8, - 841777A6085A1200000C01D8, - 841777A8085A1200000C01D8, - 841777A9085A1200000C01D8, - 841777AA085A1200000C01D8, - 841777AB085A1200000C01D8, - 841777AC085A1200000C01D8, - 841777AD085A1200000C01D8, - 841777AE085A1200000C01D8, - ); - isa = PBXGroup; - name = I_Interface; - path = ""; - refType = 2; - }; - 8417770C085A0E40000C01D8 = { - children = ( - 8417775A085A10EB000C01D8, - 8417775B085A10EB000C01D8, - 8417775C085A10EB000C01D8, - 8417775D085A10EB000C01D8, - 8417775E085A10EB000C01D8, - 8417775F085A10EB000C01D8, - 6755C7AB1017FE2500A80195, - 84177760085A10EB000C01D8, - 84177761085A10EB000C01D8, - 84177762085A10EB000C01D8, - 84177763085A10EB000C01D8, - 84177764085A10EB000C01D8, - 84177765085A10EB000C01D8, - 6755C7AC1017FE2500A80195, - 6755C7AD1017FE2500A80195, - 84177766085A10EB000C01D8, - 84177767085A10EB000C01D8, - 84177768085A10EB000C01D8, - ); - isa = PBXGroup; - name = M_Misc; - path = ""; - refType = 2; - }; - 8417770D085A0E4E000C01D8 = { - children = ( - 84177769085A1104000C01D8, - 8417776A085A1104000C01D8, - 8417776B085A1104000C01D8, - 8417776C085A1104000C01D8, - 8417776D085A1104000C01D8, - 8417776E085A1104000C01D8, - 8417776F085A1104000C01D8, - 84177770085A1104000C01D8, - 84177771085A1104000C01D8, - 84177772085A1104000C01D8, - 84177773085A1104000C01D8, - 84177774085A1104000C01D8, - 6755C7AE1017FE2500A80195, - 6755C7AF1017FE2500A80195, - 84177775085A1104000C01D8, - 84177776085A1104000C01D8, - 84177777085A1104000C01D8, - 84177778085A1104000C01D8, - 84177779085A1104000C01D8, - 8417777A085A1104000C01D8, - 8417777B085A1104000C01D8, - 8417777C085A1104000C01D8, - 8417777D085A1104000C01D8, - 8417777E085A1104000C01D8, - 8417777F085A1104000C01D8, - 84177780085A1104000C01D8, - ); - isa = PBXGroup; - name = P_Play; - path = ""; - refType = 2; - }; - 8417770E085A0E5B000C01D8 = { - children = ( - 84177781085A111B000C01D8, - 84177782085A111B000C01D8, - 84177783085A111B000C01D8, - 84177784085A111B000C01D8, - 84177785085A111B000C01D8, - 84177786085A111B000C01D8, - 84177787085A111B000C01D8, - 84177788085A111B000C01D8, - 84177789085A111B000C01D8, - 8417778A085A111B000C01D8, - 8417778B085A111B000C01D8, - 8417778C085A111B000C01D8, - 8417778D085A111B000C01D8, - 8417778E085A111B000C01D8, - 8417778F085A111B000C01D8, - 84177790085A111B000C01D8, - 84177791085A111B000C01D8, - 84177792085A111B000C01D8, - 84177793085A111B000C01D8, - 84177794085A111B000C01D8, - 84177795085A111B000C01D8, - 84177796085A111B000C01D8, - 84177797085A111B000C01D8, - 841777A2085A1197000C01D8, - 841777A3085A1197000C01D8, - 8490D436085DF57B000C01D8, - 841779D7085A1296000C01D8, - ); - isa = PBXGroup; - name = R_Rend; - path = ""; - refType = 2; - }; - 8417770F085A0E66000C01D8 = { - children = ( - 84177798085A1138000C01D8, - 84177799085A1138000C01D8, - 8417779A085A1138000C01D8, - 8417779B085A1138000C01D8, - ); - isa = PBXGroup; - name = S_Sounds; - path = ""; - refType = 2; - }; - 84177710085A0E71000C01D8 = { - children = ( - 8417779C085A114C000C01D8, - 8417779D085A114C000C01D8, - 8417779E085A116B000C01D8, - 8417779F085A116B000C01D8, - ); - isa = PBXGroup; - name = SDL_main; - path = ""; - refType = 2; - }; - 84177711085A0E77000C01D8 = { - children = ( - 6755C7A91017FE2500A80195, - 6755C7AA1017FE2500A80195, - 841777AF085A1228000C01D8, - 841777B0085A1228000C01D8, - 841777A0085A117F000C01D8, - 841777A1085A117F000C01D8, - 841778BC085A122A000C01D8, - 841778BD085A122A000C01D8, - ); - isa = PBXGroup; - name = W_Wad; - path = ""; - refType = 2; - }; - 84177712085A0EB5000C01D8 = { - children = ( - 677B5EC910180D6600A80195, - 677B5ECA10180D7100A80195, - 84177734085A106C000C01D8, - 84177735085A106C000C01D8, - 84177736085A106C000C01D8, - 84177737085A106C000C01D8, - 84177738085A106C000C01D8, - 84177739085A106C000C01D8, - 8417773A085A106C000C01D8, - 8417773B085A106C000C01D8, - 8417773C085A106C000C01D8, - 8417773D085A106C000C01D8, - 8417773E085A106C000C01D8, - 8417773F085A106C000C01D8, - 84177740085A106C000C01D8, - 84177741085A106C000C01D8, - 84177742085A106C000C01D8, - 84177743085A106C000C01D8, - 84177744085A106C000C01D8, - 84177745085A106C000C01D8, - 84177746085A106C000C01D8, - 84177747085A106C000C01D8, - ); - isa = PBXGroup; - name = Hw_Hardware; - path = ""; - refType = 2; - }; - 84177713085A0FCE000C01D8 = { - fileEncoding = 30; - isa = PBXFileReference; - name = d_clisrv.c; - path = ../../d_clisrv.c; - refType = 2; - }; - 84177714085A0FCE000C01D8 = { - fileEncoding = 30; - isa = PBXFileReference; - name = d_clisrv.h; - path = ../../d_clisrv.h; - refType = 2; - }; - 84177716085A0FCE000C01D8 = { - fileEncoding = 30; - isa = PBXFileReference; - name = d_event.h; - path = ../../d_event.h; - refType = 2; - }; - 84177717085A0FCE000C01D8 = { - fileEncoding = 30; - isa = PBXFileReference; - name = d_main.c; - path = ../../d_main.c; - refType = 2; - }; - 84177718085A0FCE000C01D8 = { - fileEncoding = 30; - isa = PBXFileReference; - name = d_main.h; - path = ../../d_main.h; - refType = 2; - }; - 84177719085A0FCE000C01D8 = { - fileEncoding = 30; - isa = PBXFileReference; - name = d_net.c; - path = ../../d_net.c; - refType = 2; - }; - 8417771A085A0FCE000C01D8 = { - fileEncoding = 30; - isa = PBXFileReference; - name = d_net.h; - path = ../../d_net.h; - refType = 2; - }; - 8417771B085A0FCE000C01D8 = { - fileEncoding = 30; - isa = PBXFileReference; - name = d_netcmd.c; - path = ../../d_netcmd.c; - refType = 2; - }; - 8417771C085A0FCE000C01D8 = { - fileEncoding = 30; - isa = PBXFileReference; - name = d_netcmd.h; - path = ../../d_netcmd.h; - refType = 2; - }; - 8417771D085A0FCE000C01D8 = { - fileEncoding = 30; - isa = PBXFileReference; - name = d_netfil.c; - path = ../../d_netfil.c; - refType = 2; - }; - 8417771E085A0FCE000C01D8 = { - fileEncoding = 30; - isa = PBXFileReference; - name = d_netfil.h; - path = ../../d_netfil.h; - refType = 2; - }; - 8417771F085A0FCE000C01D8 = { - fileEncoding = 30; - isa = PBXFileReference; - name = d_player.h; - path = ../../d_player.h; - refType = 2; - }; - 84177720085A0FCE000C01D8 = { - fileEncoding = 30; - isa = PBXFileReference; - name = d_think.h; - path = ../../d_think.h; - refType = 2; - }; - 84177721085A0FCE000C01D8 = { - fileEncoding = 30; - isa = PBXFileReference; - name = d_ticcmd.h; - path = ../../d_ticcmd.h; - refType = 2; - }; - 84177722085A0FCE000C01D8 = { - fileEncoding = 30; - isa = PBXFileReference; - name = dehacked.c; - path = ../../dehacked.c; - refType = 2; - }; - 84177723085A0FCE000C01D8 = { - fileEncoding = 30; - isa = PBXFileReference; - name = dehacked.h; - path = ../../dehacked.h; - refType = 2; - }; - 84177724085A0FF2000C01D8 = { - fileEncoding = 30; - isa = PBXFileReference; - name = doomdata.h; - path = ../../doomdata.h; - refType = 2; - }; - 84177725085A0FF2000C01D8 = { - fileEncoding = 30; - isa = PBXFileReference; - name = doomdef.h; - path = ../../doomdef.h; - refType = 2; - }; - 84177726085A0FF2000C01D8 = { - fileEncoding = 30; - isa = PBXFileReference; - name = doomstat.h; - path = ../../doomstat.h; - refType = 2; - }; - 84177727085A0FF2000C01D8 = { - fileEncoding = 30; - isa = PBXFileReference; - name = doomtype.h; - path = ../../doomtype.h; - refType = 2; - }; - 8417772A085A100E000C01D8 = { - fileEncoding = 30; - isa = PBXFileReference; - name = f_finale.c; - path = ../../f_finale.c; - refType = 2; - }; - 8417772B085A100E000C01D8 = { - fileEncoding = 30; - isa = PBXFileReference; - name = f_finale.h; - path = ../../f_finale.h; - refType = 2; - }; - 8417772C085A100E000C01D8 = { - fileEncoding = 30; - isa = PBXFileReference; - name = f_wipe.c; - path = ../../f_wipe.c; - refType = 2; - }; - 8417772D085A1029000C01D8 = { - fileEncoding = 30; - isa = PBXFileReference; - name = g_game.c; - path = ../../g_game.c; - refType = 2; - }; - 8417772E085A1029000C01D8 = { - fileEncoding = 30; - isa = PBXFileReference; - name = g_game.h; - path = ../../g_game.h; - refType = 2; - }; - 8417772F085A1029000C01D8 = { - fileEncoding = 30; - isa = PBXFileReference; - name = g_input.c; - path = ../../g_input.c; - refType = 2; - }; - 84177730085A1029000C01D8 = { - fileEncoding = 30; - isa = PBXFileReference; - name = g_input.h; - path = ../../g_input.h; - refType = 2; - }; - 84177731085A1029000C01D8 = { - fileEncoding = 30; - isa = PBXFileReference; - name = g_state.h; - path = ../../g_state.h; - refType = 2; - }; - 84177732085A1040000C01D8 = { - fileEncoding = 30; - isa = PBXFileReference; - name = hu_stuff.c; - path = ../../hu_stuff.c; - refType = 2; - }; - 84177733085A1040000C01D8 = { - fileEncoding = 30; - isa = PBXFileReference; - name = hu_stuff.h; - path = ../../hu_stuff.h; - refType = 2; - }; - 84177734085A106C000C01D8 = { - fileEncoding = 30; - isa = PBXFileReference; - name = hw_bsp.c; - path = ../../hardware/hw_bsp.c; - refType = 2; - }; - 84177735085A106C000C01D8 = { - fileEncoding = 30; - isa = PBXFileReference; - name = hw_cache.c; - path = ../../hardware/hw_cache.c; - refType = 2; - }; - 84177736085A106C000C01D8 = { - fileEncoding = 30; - isa = PBXFileReference; - name = hw_data.h; - path = ../../hardware/hw_data.h; - refType = 2; - }; - 84177737085A106C000C01D8 = { - fileEncoding = 30; - isa = PBXFileReference; - name = hw_defs.h; - path = ../../hardware/hw_defs.h; - refType = 2; - }; - 84177738085A106C000C01D8 = { - fileEncoding = 30; - isa = PBXFileReference; - name = hw_dll.h; - path = ../../hardware/hw_dll.h; - refType = 2; - }; - 84177739085A106C000C01D8 = { - fileEncoding = 30; - isa = PBXFileReference; - name = hw_draw.c; - path = ../../hardware/hw_draw.c; - refType = 2; - }; - 8417773A085A106C000C01D8 = { - fileEncoding = 30; - isa = PBXFileReference; - name = hw_drv.h; - path = ../../hardware/hw_drv.h; - refType = 2; - }; - 8417773B085A106C000C01D8 = { - fileEncoding = 30; - isa = PBXFileReference; - name = hw_glide.h; - path = ../../hardware/hw_glide.h; - refType = 2; - }; - 8417773C085A106C000C01D8 = { - fileEncoding = 30; - isa = PBXFileReference; - name = hw_glob.h; - path = ../../hardware/hw_glob.h; - refType = 2; - }; - 8417773D085A106C000C01D8 = { - fileEncoding = 30; - isa = PBXFileReference; - name = hw_light.c; - path = ../../hardware/hw_light.c; - refType = 2; - }; - 8417773E085A106C000C01D8 = { - fileEncoding = 30; - isa = PBXFileReference; - name = hw_light.h; - path = ../../hardware/hw_light.h; - refType = 2; - }; - 8417773F085A106C000C01D8 = { - fileEncoding = 30; - isa = PBXFileReference; - name = hw_main.c; - path = ../../hardware/hw_main.c; - refType = 2; - }; - 84177740085A106C000C01D8 = { - fileEncoding = 30; - isa = PBXFileReference; - name = hw_main.h; - path = ../../hardware/hw_main.h; - refType = 2; - }; - 84177741085A106C000C01D8 = { - fileEncoding = 30; - isa = PBXFileReference; - name = hw_md2.c; - path = ../../hardware/hw_md2.c; - refType = 2; - }; - 84177742085A106C000C01D8 = { - fileEncoding = 30; - isa = PBXFileReference; - name = hw_md2.h; - path = ../../hardware/hw_md2.h; - refType = 2; - }; - 84177743085A106C000C01D8 = { - fileEncoding = 30; - isa = PBXFileReference; - name = hw_trick.c; - path = ../../hardware/hw_trick.c; - refType = 2; - }; - 84177744085A106C000C01D8 = { - fileEncoding = 30; - isa = PBXFileReference; - name = hw3dsdrv.h; - path = ../../hardware/hw3dsdrv.h; - refType = 2; - }; - 84177745085A106C000C01D8 = { - fileEncoding = 30; - isa = PBXFileReference; - name = hw3sound.c; - path = ../../hardware/hw3sound.c; - refType = 2; - }; - 84177746085A106C000C01D8 = { - fileEncoding = 30; - isa = PBXFileReference; - name = hw3sound.h; - path = ../../hardware/hw3sound.h; - refType = 2; - }; - 84177747085A106C000C01D8 = { - fileEncoding = 30; - isa = PBXFileReference; - name = hws_data.h; - path = ../../hardware/hws_data.h; - refType = 2; - }; - 84177748085A1097000C01D8 = { - fileEncoding = 30; - isa = PBXFileReference; - name = dosstr.c; - path = ../dosstr.c; - refType = 2; - }; - 84177749085A1097000C01D8 = { - fileEncoding = 30; - isa = PBXFileReference; - name = endtxt.c; - path = ../endtxt.c; - refType = 2; - }; - 8417774A085A1097000C01D8 = { - fileEncoding = 30; - isa = PBXFileReference; - name = endtxt.h; - path = ../endtxt.h; - refType = 2; - }; - 8417774B085A1097000C01D8 = { - fileEncoding = 30; - isa = PBXFileReference; - name = filesrch.c; - path = ../../filesrch.c; - refType = 2; - }; - 8417774C085A1097000C01D8 = { - fileEncoding = 30; - isa = PBXFileReference; - name = hwsym_sdl.c; - path = ../hwsym_sdl.c; - refType = 2; - }; - 8417774D085A1097000C01D8 = { - fileEncoding = 30; - isa = PBXFileReference; - name = hwsym_sdl.h; - path = ../hwsym_sdl.h; - refType = 2; - }; - 8417774E085A1097000C01D8 = { - fileEncoding = 30; - isa = PBXFileReference; - name = i_cdmus.c; - path = ../i_cdmus.c; - refType = 2; - }; - 8417774F085A1097000C01D8 = { - fileEncoding = 30; - isa = PBXFileReference; - name = i_main.c; - path = ../i_main.c; - refType = 2; - }; - 84177750085A1097000C01D8 = { - fileEncoding = 30; - isa = PBXFileReference; - name = i_net.c; - path = ../i_net.c; - refType = 2; - }; - 84177751085A1097000C01D8 = { - fileEncoding = 30; - isa = PBXFileReference; - name = i_sound.c; - path = ../i_sound.c; - refType = 2; - }; - 84177752085A1097000C01D8 = { - fileEncoding = 30; - isa = PBXFileReference; - name = i_system.c; - path = ../i_system.c; - refType = 2; - }; - 84177753085A1097000C01D8 = { - fileEncoding = 30; - isa = PBXFileReference; - name = i_video.c; - path = ../i_video.c; - refType = 2; - }; - 84177754085A1097000C01D8 = { - fileEncoding = 30; - isa = PBXFileReference; - name = IMG_xpm.c; - path = ../IMG_xpm.c; - refType = 2; - }; - 84177755085A10AA000C01D8 = { - fileEncoding = 30; - isa = PBXFileReference; - name = ogl_sdl.c; - path = ../ogl_sdl.c; - refType = 2; - }; - 84177756085A10AA000C01D8 = { - fileEncoding = 30; - isa = PBXFileReference; - name = ogl_sdl.h; - path = ../ogl_sdl.h; - refType = 2; - }; - 84177757085A10AA000C01D8 = { - fileEncoding = 30; - isa = PBXFileReference; - name = SDL_icon.xpm; - path = ../SDL_icon.xpm; - refType = 2; - }; - 84177758085A10D2000C01D8 = { - fileEncoding = 30; - isa = PBXFileReference; - name = r_opengl.c; - path = ../../hardware/r_opengl/r_opengl.c; - refType = 2; - }; - 84177759085A10D2000C01D8 = { - fileEncoding = 30; - isa = PBXFileReference; - name = r_opengl.h; - path = ../../hardware/r_opengl/r_opengl.h; - refType = 2; - }; - 8417775A085A10EB000C01D8 = { - fileEncoding = 30; - isa = PBXFileReference; - name = m_argv.c; - path = ../../m_argv.c; - refType = 2; - }; - 8417775B085A10EB000C01D8 = { - fileEncoding = 30; - isa = PBXFileReference; - name = m_argv.h; - path = ../../m_argv.h; - refType = 2; - }; - 8417775C085A10EB000C01D8 = { - fileEncoding = 30; - isa = PBXFileReference; - name = m_bbox.c; - path = ../../m_bbox.c; - refType = 2; - }; - 8417775D085A10EB000C01D8 = { - fileEncoding = 30; - isa = PBXFileReference; - name = m_bbox.h; - path = ../../m_bbox.h; - refType = 2; - }; - 8417775E085A10EB000C01D8 = { - fileEncoding = 30; - isa = PBXFileReference; - name = m_cheat.c; - path = ../../m_cheat.c; - refType = 2; - }; - 8417775F085A10EB000C01D8 = { - fileEncoding = 30; - isa = PBXFileReference; - name = m_cheat.h; - path = ../../m_cheat.h; - refType = 2; - }; - 84177760085A10EB000C01D8 = { - fileEncoding = 30; - isa = PBXFileReference; - name = m_fixed.c; - path = ../../m_fixed.c; - refType = 2; - }; - 84177761085A10EB000C01D8 = { - fileEncoding = 30; - isa = PBXFileReference; - name = m_fixed.h; - path = ../../m_fixed.h; - refType = 2; - }; - 84177762085A10EB000C01D8 = { - fileEncoding = 30; - isa = PBXFileReference; - name = m_menu.c; - path = ../../m_menu.c; - refType = 2; - }; - 84177763085A10EB000C01D8 = { - fileEncoding = 30; - isa = PBXFileReference; - name = m_menu.h; - path = ../../m_menu.h; - refType = 2; - }; - 84177764085A10EB000C01D8 = { - fileEncoding = 30; - isa = PBXFileReference; - name = m_misc.c; - path = ../../m_misc.c; - refType = 2; - }; - 84177765085A10EB000C01D8 = { - fileEncoding = 30; - isa = PBXFileReference; - name = m_misc.h; - path = ../../m_misc.h; - refType = 2; - }; - 84177766085A10EB000C01D8 = { - fileEncoding = 30; - isa = PBXFileReference; - name = m_random.c; - path = ../../m_random.c; - refType = 2; - }; - 84177767085A10EB000C01D8 = { - fileEncoding = 30; - isa = PBXFileReference; - name = m_random.h; - path = ../../m_random.h; - refType = 2; - }; - 84177768085A10EB000C01D8 = { - fileEncoding = 30; - isa = PBXFileReference; - name = m_swap.h; - path = ../../m_swap.h; - refType = 2; - }; - 84177769085A1104000C01D8 = { - fileEncoding = 30; - isa = PBXFileReference; - name = p_ceilng.c; - path = ../../p_ceilng.c; - refType = 2; - }; - 8417776A085A1104000C01D8 = { - fileEncoding = 30; - isa = PBXFileReference; - name = p_enemy.c; - path = ../../p_enemy.c; - refType = 2; - }; - 8417776B085A1104000C01D8 = { - fileEncoding = 30; - isa = PBXFileReference; - name = p_fab.c; - path = ../../p_fab.c; - refType = 2; - }; - 8417776C085A1104000C01D8 = { - fileEncoding = 30; - isa = PBXFileReference; - name = p_floor.c; - path = ../../p_floor.c; - refType = 2; - }; - 8417776D085A1104000C01D8 = { - fileEncoding = 30; - isa = PBXFileReference; - name = p_inter.c; - path = ../../p_inter.c; - refType = 2; - }; - 8417776E085A1104000C01D8 = { - fileEncoding = 30; - isa = PBXFileReference; - name = p_lights.c; - path = ../../p_lights.c; - refType = 2; - }; - 8417776F085A1104000C01D8 = { - fileEncoding = 30; - isa = PBXFileReference; - name = p_local.h; - path = ../../p_local.h; - refType = 2; - }; - 84177770085A1104000C01D8 = { - fileEncoding = 30; - isa = PBXFileReference; - name = p_map.c; - path = ../../p_map.c; - refType = 2; - }; - 84177771085A1104000C01D8 = { - fileEncoding = 30; - isa = PBXFileReference; - name = p_maputl.c; - path = ../../p_maputl.c; - refType = 2; - }; - 84177772085A1104000C01D8 = { - fileEncoding = 30; - isa = PBXFileReference; - name = p_maputl.h; - path = ../../p_maputl.h; - refType = 2; - }; - 84177773085A1104000C01D8 = { - fileEncoding = 30; - isa = PBXFileReference; - name = p_mobj.c; - path = ../../p_mobj.c; - refType = 2; - }; - 84177774085A1104000C01D8 = { - fileEncoding = 30; - isa = PBXFileReference; - name = p_mobj.h; - path = ../../p_mobj.h; - refType = 2; - }; - 84177775085A1104000C01D8 = { - fileEncoding = 30; - isa = PBXFileReference; - name = p_pspr.h; - path = ../../p_pspr.h; - refType = 2; - }; - 84177776085A1104000C01D8 = { - fileEncoding = 30; - isa = PBXFileReference; - name = p_saveg.c; - path = ../../p_saveg.c; - refType = 2; - }; - 84177777085A1104000C01D8 = { - fileEncoding = 30; - isa = PBXFileReference; - name = p_saveg.h; - path = ../../p_saveg.h; - refType = 2; - }; - 84177778085A1104000C01D8 = { - fileEncoding = 30; - isa = PBXFileReference; - name = p_setup.c; - path = ../../p_setup.c; - refType = 2; - }; - 84177779085A1104000C01D8 = { - fileEncoding = 30; - isa = PBXFileReference; - name = p_setup.h; - path = ../../p_setup.h; - refType = 2; - }; - 8417777A085A1104000C01D8 = { - fileEncoding = 30; - isa = PBXFileReference; - name = p_sight.c; - path = ../../p_sight.c; - refType = 2; - }; - 8417777B085A1104000C01D8 = { - fileEncoding = 30; - isa = PBXFileReference; - name = p_spec.c; - path = ../../p_spec.c; - refType = 2; - }; - 8417777C085A1104000C01D8 = { - fileEncoding = 30; - isa = PBXFileReference; - name = p_spec.h; - path = ../../p_spec.h; - refType = 2; - }; - 8417777D085A1104000C01D8 = { - fileEncoding = 30; - isa = PBXFileReference; - name = p_telept.c; - path = ../../p_telept.c; - refType = 2; - }; - 8417777E085A1104000C01D8 = { - fileEncoding = 30; - isa = PBXFileReference; - name = p_tick.c; - path = ../../p_tick.c; - refType = 2; - }; - 8417777F085A1104000C01D8 = { - fileEncoding = 30; - isa = PBXFileReference; - name = p_tick.h; - path = ../../p_tick.h; - refType = 2; - }; - 84177780085A1104000C01D8 = { - fileEncoding = 30; - isa = PBXFileReference; - name = p_user.c; - path = ../../p_user.c; - refType = 2; - }; - 84177781085A111B000C01D8 = { - fileEncoding = 30; - isa = PBXFileReference; - name = r_bsp.c; - path = ../../r_bsp.c; - refType = 2; - }; - 84177782085A111B000C01D8 = { - fileEncoding = 30; - isa = PBXFileReference; - name = r_bsp.h; - path = ../../r_bsp.h; - refType = 2; - }; - 84177783085A111B000C01D8 = { - fileEncoding = 30; - isa = PBXFileReference; - name = r_data.c; - path = ../../r_data.c; - refType = 2; - }; - 84177784085A111B000C01D8 = { - fileEncoding = 30; - isa = PBXFileReference; - name = r_data.h; - path = ../../r_data.h; - refType = 2; - }; - 84177785085A111B000C01D8 = { - fileEncoding = 30; - isa = PBXFileReference; - name = r_defs.h; - path = ../../r_defs.h; - refType = 2; - }; - 84177786085A111B000C01D8 = { - fileEncoding = 30; - isa = PBXFileReference; - name = r_draw.c; - path = ../../r_draw.c; - refType = 2; - }; - 84177787085A111B000C01D8 = { - fileEncoding = 30; - isa = PBXFileReference; - name = r_draw.h; - path = ../../r_draw.h; - refType = 2; - }; - 84177788085A111B000C01D8 = { - fileEncoding = 30; - isa = PBXFileReference; - name = r_draw8.c; - path = ../../r_draw8.c; - refType = 2; - }; - 84177789085A111B000C01D8 = { - fileEncoding = 30; - isa = PBXFileReference; - name = r_draw16.c; - path = ../../r_draw16.c; - refType = 2; - }; - 8417778A085A111B000C01D8 = { - fileEncoding = 30; - isa = PBXFileReference; - name = r_local.h; - path = ../../r_local.h; - refType = 2; - }; - 8417778B085A111B000C01D8 = { - fileEncoding = 30; - isa = PBXFileReference; - name = r_main.c; - path = ../../r_main.c; - refType = 2; - }; - 8417778C085A111B000C01D8 = { - fileEncoding = 30; - isa = PBXFileReference; - name = r_main.h; - path = ../../r_main.h; - refType = 2; - }; - 8417778D085A111B000C01D8 = { - fileEncoding = 30; - isa = PBXFileReference; - name = r_plane.c; - path = ../../r_plane.c; - refType = 2; - }; - 8417778E085A111B000C01D8 = { - fileEncoding = 30; - isa = PBXFileReference; - name = r_plane.h; - path = ../../r_plane.h; - refType = 2; - }; - 8417778F085A111B000C01D8 = { - fileEncoding = 30; - isa = PBXFileReference; - name = r_segs.c; - path = ../../r_segs.c; - refType = 2; - }; - 84177790085A111B000C01D8 = { - fileEncoding = 30; - isa = PBXFileReference; - name = r_segs.h; - path = ../../r_segs.h; - refType = 2; - }; - 84177791085A111B000C01D8 = { - fileEncoding = 30; - isa = PBXFileReference; - name = r_sky.c; - path = ../../r_sky.c; - refType = 2; - }; - 84177792085A111B000C01D8 = { - fileEncoding = 30; - isa = PBXFileReference; - name = r_sky.h; - path = ../../r_sky.h; - refType = 2; - }; - 84177793085A111B000C01D8 = { - fileEncoding = 30; - isa = PBXFileReference; - name = r_splats.c; - path = ../../r_splats.c; - refType = 2; - }; - 84177794085A111B000C01D8 = { - fileEncoding = 30; - isa = PBXFileReference; - name = r_splats.h; - path = ../../r_splats.h; - refType = 2; - }; - 84177795085A111B000C01D8 = { - fileEncoding = 30; - isa = PBXFileReference; - name = r_state.h; - path = ../../r_state.h; - refType = 2; - }; - 84177796085A111B000C01D8 = { - fileEncoding = 30; - isa = PBXFileReference; - name = r_things.c; - path = ../../r_things.c; - refType = 2; - }; - 84177797085A111B000C01D8 = { - fileEncoding = 30; - isa = PBXFileReference; - name = r_things.h; - path = ../../r_things.h; - refType = 2; - }; - 84177798085A1138000C01D8 = { - fileEncoding = 30; - isa = PBXFileReference; - name = s_sound.c; - path = ../../s_sound.c; - refType = 2; - }; - 84177799085A1138000C01D8 = { - fileEncoding = 30; - isa = PBXFileReference; - name = s_sound.h; - path = ../../s_sound.h; - refType = 2; - }; - 8417779A085A1138000C01D8 = { - fileEncoding = 30; - isa = PBXFileReference; - name = sounds.c; - path = ../../sounds.c; - refType = 2; - }; - 8417779B085A1138000C01D8 = { - fileEncoding = 30; - isa = PBXFileReference; - name = sounds.h; - path = ../../sounds.h; - refType = 2; - }; - 8417779C085A114C000C01D8 = { - fileEncoding = 30; - isa = PBXFileReference; - path = mac_alert.c; - refType = 2; - }; - 8417779D085A114C000C01D8 = { - fileEncoding = 30; - isa = PBXFileReference; - path = mac_alert.h; - refType = 2; - }; - 8417779E085A116B000C01D8 = { - fileEncoding = 30; - isa = PBXFileReference; - name = SDL_macosx_main.h; - path = ../SDL_main/SDL_macosx_main.h; - refType = 2; - }; - 8417779F085A116B000C01D8 = { - fileEncoding = 30; - isa = PBXFileReference; - name = SDL_macosx_main.m; - path = ../SDL_main/SDL_macosx_main.m; - refType = 2; - }; - 841777A0085A117F000C01D8 = { - fileEncoding = 30; - isa = PBXFileReference; - name = w_wad.c; - path = ../../w_wad.c; - refType = 2; - }; - 841777A1085A117F000C01D8 = { - fileEncoding = 30; - isa = PBXFileReference; - name = w_wad.h; - path = ../../w_wad.h; - refType = 2; - }; - 841777A2085A1197000C01D8 = { - fileEncoding = 30; - isa = PBXFileReference; - name = screen.c; - path = ../../screen.c; - refType = 2; - }; - 841777A3085A1197000C01D8 = { - fileEncoding = 30; - isa = PBXFileReference; - name = screen.h; - path = ../../screen.h; - refType = 2; - }; - 841777A4085A1200000C01D8 = { - fileEncoding = 30; - isa = PBXFileReference; - name = filesrch.h; - path = ../../filesrch.h; - refType = 2; - }; - 841777A5085A1200000C01D8 = { - fileEncoding = 30; - isa = PBXFileReference; - name = i_joy.h; - path = ../../i_joy.h; - refType = 2; - }; - 841777A6085A1200000C01D8 = { - fileEncoding = 30; - isa = PBXFileReference; - name = i_net.h; - path = ../../i_net.h; - refType = 2; - }; - 841777A8085A1200000C01D8 = { - fileEncoding = 30; - isa = PBXFileReference; - name = i_sound.h; - path = ../../i_sound.h; - refType = 2; - }; - 841777A9085A1200000C01D8 = { - fileEncoding = 30; - isa = PBXFileReference; - name = i_system.h; - path = ../../i_system.h; - refType = 2; - }; - 841777AA085A1200000C01D8 = { - fileEncoding = 30; - isa = PBXFileReference; - name = i_tcp.c; - path = ../../i_tcp.c; - refType = 2; - }; - 841777AB085A1200000C01D8 = { - fileEncoding = 30; - isa = PBXFileReference; - name = i_tcp.h; - path = ../../i_tcp.h; - refType = 2; - }; - 841777AC085A1200000C01D8 = { - fileEncoding = 30; - isa = PBXFileReference; - name = i_video.h; - path = ../../i_video.h; - refType = 2; - }; - 841777AD085A1200000C01D8 = { - fileEncoding = 30; - isa = PBXFileReference; - name = mserv.c; - path = ../../mserv.c; - refType = 2; - }; - 841777AE085A1200000C01D8 = { - fileEncoding = 30; - isa = PBXFileReference; - name = mserv.h; - path = ../../mserv.h; - refType = 2; - }; - 841777AF085A1228000C01D8 = { - fileEncoding = 30; - isa = PBXFileReference; - name = md5.c; - path = ../../md5.c; - refType = 2; - }; - 841777B0085A1228000C01D8 = { - fileEncoding = 30; - isa = PBXFileReference; - name = md5.h; - path = ../../md5.h; - refType = 2; - }; - 841778BC085A122A000C01D8 = { - fileEncoding = 30; - isa = PBXFileReference; - name = z_zone.c; - path = ../../z_zone.c; - refType = 2; - }; - 841778BD085A122A000C01D8 = { - fileEncoding = 30; - isa = PBXFileReference; - name = z_zone.h; - path = ../../z_zone.h; - refType = 2; - }; - 841778BE085A1295000C01D8 = { - fileEncoding = 30; - isa = PBXFileReference; - name = am_map.c; - path = ../../am_map.c; - refType = 2; - }; - 841778BF085A1295000C01D8 = { - fileEncoding = 30; - isa = PBXFileReference; - name = am_map.h; - path = ../../am_map.h; - refType = 2; - }; - 841778C0085A1295000C01D8 = { - fileEncoding = 30; - isa = PBXFileReference; - name = command.c; - path = ../../command.c; - refType = 2; - }; - 841778C1085A1295000C01D8 = { - fileEncoding = 30; - isa = PBXFileReference; - name = command.h; - path = ../../command.h; - refType = 2; - }; - 841778C2085A1295000C01D8 = { - fileEncoding = 30; - isa = PBXFileReference; - name = console.c; - path = ../../console.c; - refType = 2; - }; - 841778C3085A1295000C01D8 = { - fileEncoding = 30; - isa = PBXFileReference; - name = console.h; - path = ../../console.h; - refType = 2; - }; - 841778C4085A1295000C01D8 = { - fileEncoding = 30; - isa = PBXFileReference; - name = info.c; - path = ../../info.c; - refType = 2; - }; - 841778C5085A1295000C01D8 = { - fileEncoding = 30; - isa = PBXFileReference; - name = info.h; - path = ../../info.h; - refType = 2; - }; - 841778C6085A1295000C01D8 = { - fileEncoding = 30; - isa = PBXFileReference; - name = keys.h; - path = ../../keys.h; - refType = 2; - }; - 841779D2085A1296000C01D8 = { - fileEncoding = 30; - isa = PBXFileReference; - name = st_stuff.c; - path = ../../st_stuff.c; - refType = 2; - }; - 841779D3085A1296000C01D8 = { - fileEncoding = 30; - isa = PBXFileReference; - name = st_stuff.h; - path = ../../st_stuff.h; - refType = 2; - }; - 841779D4085A1296000C01D8 = { - fileEncoding = 30; - isa = PBXFileReference; - name = tables.c; - path = ../../tables.c; - refType = 2; - }; - 841779D5085A1296000C01D8 = { - fileEncoding = 30; - isa = PBXFileReference; - name = tables.h; - path = ../../tables.h; - refType = 2; - }; - 841779D7085A1296000C01D8 = { - fileEncoding = 30; - isa = PBXFileReference; - name = v_video.h; - path = ../../v_video.h; - refType = 2; - }; - 841779D8085A1296000C01D8 = { - fileEncoding = 30; - isa = PBXFileReference; - name = y_inter.c; - path = ../../y_inter.c; - refType = 2; - }; - 841779DA085A1347000C01D8 = { - fileEncoding = 30; - isa = PBXFileReference; - name = byteptr.h; - path = ../../byteptr.h; - refType = 2; - }; - 841779DC085A138F000C01D8 = { - buildActionMask = 2147483647; - files = ( - 6755C8C7101802C300A80195, - 6755C8C8101802C300A80195, - 6755C8C9101802C300A80195, - 6755C8CA101802C300A80195, - 6755C8CB101802C300A80195, - 6755C8CC101802C300A80195, - 6755C8CD101802C300A80195, - 6755C8CE101802C300A80195, - 6755C8CF101802C300A80195, - ); - isa = PBXResourcesBuildPhase; - runOnlyForDeploymentPostprocessing = 0; - }; - 841779DD085A138F000C01D8 = { - buildActionMask = 2147483647; - files = ( - 84177A2A085A18A8000C01D8, - 84177A2E085A18D2000C01D8, - 84177A30085A18D3000C01D8, - 84177A32085A18D4000C01D8, - 84177A34085A18D5000C01D8, - 84177A39085A18D8000C01D8, - 84177A3F085A18DC000C01D8, - 84177A41085A18E0000C01D8, - 84177A43085A18E1000C01D8, - 84177A46085A18E8000C01D8, - 84177A4A085A18EA000C01D8, - 84177A4E085A18EC000C01D8, - 84177A50085A18F2000C01D8, - 84177A52085A193F000C01D8, - 84177A53085A1940000C01D8, - 84177A54085A1942000C01D8, - 84177A55085A1943000C01D8, - 84177A56085A195A000C01D8, - 84177A57085A195B000C01D8, - 84177A58085A1968000C01D8, - 84177A59085A1969000C01D8, - 84177A5A085A196B000C01D8, - 84177A5B085A197A000C01D8, - 84177A5C085A197C000C01D8, - 84177A5D085A197D000C01D8, - 84177A5E085A197E000C01D8, - 84177A5F085A1980000C01D8, - 84177A61085A1985000C01D8, - 84177A62085A1986000C01D8, - 84177A63085A1988000C01D8, - 84177A64085A1989000C01D8, - 84177A65085A198A000C01D8, - 84177A66085A198A000C01D8, - 84177A67085A198B000C01D8, - 84177A68085A198C000C01D8, - 84177A69085A198E000C01D8, - 84177A6B085A1994000C01D8, - 84177A6C085A1995000C01D8, - 84177A6D085A199D000C01D8, - 84177A6E085A19A0000C01D8, - 84177A6F085A19A1000C01D8, - 84177A70085A19A2000C01D8, - 84177A71085A19A4000C01D8, - 84177A72085A19A5000C01D8, - 84177A73085A19A6000C01D8, - 84177A74085A19A7000C01D8, - 84177A75085A19AC000C01D8, - 84177A76085A19AD000C01D8, - 84177A77085A19AE000C01D8, - 84177A78085A19AE000C01D8, - 84177A79085A19AF000C01D8, - 84177A7A085A19B0000C01D8, - 84177A7B085A19B3000C01D8, - 84177A7C085A19B4000C01D8, - 84177A7D085A19B5000C01D8, - 84177A7E085A19B7000C01D8, - 84177A7F085A19B8000C01D8, - 84177A80085A19B9000C01D8, - 84177A81085A19BA000C01D8, - 84177A82085A19BB000C01D8, - 84177A83085A19BB000C01D8, - 84177A84085A19BC000C01D8, - 84177A85085A19C1000C01D8, - 84177A86085A19C2000C01D8, - 84177A87085A19C3000C01D8, - 84177A88085A19C6000C01D8, - 84177A89085A19C7000C01D8, - 84177A8A085A19C9000C01D8, - 84177A8B085A19CC000C01D8, - 84177A8C085A19CD000C01D8, - 84177A8D085A19CF000C01D8, - 84177A8E085A19D0000C01D8, - 84177A90085A19D8000C01D8, - 84177A91085A19D9000C01D8, - 84177A92085A19DD000C01D8, - 84177A93085A19DF000C01D8, - 84177A94085A19E1000C01D8, - 84177A95085A19E3000C01D8, - 84177A96085A19E6000C01D8, - 8490D438085DF57B000C01D8, - 849603AA0A791C11000C01D8, - 6755C7B21017FE2500A80195, - 6755C7B31017FE2500A80195, - 6755C7B51017FE2500A80195, - 6755C7B71017FE2500A80195, - 6755C7B81017FE2500A80195, - 6755C84B1017FE4500A80195, - 6755C8651017FE4500A80195, - 677B5EC810180D4E00A80195, - 67B2D0C91018779900A80195, - ); - isa = PBXSourcesBuildPhase; - runOnlyForDeploymentPostprocessing = 0; - }; - 841779DE085A138F000C01D8 = { - buildActionMask = 2147483647; - files = ( - 84C4E0410862096F000C01D8, - 84C4E0440862098A000C01D8, - 84C4E047086209D3000C01D8, - 84C4E04A086209FF000C01D8, - 84C4E04F08620A46000C01D8, - 84C4E05008620A46000C01D8, - 849BD31E0A7E45B3000C01D8, - ); - isa = PBXFrameworksBuildPhase; - runOnlyForDeploymentPostprocessing = 0; - }; - 841779E0085A138F000C01D8 = { - buildPhases = ( - 841779DC085A138F000C01D8, - 841779DD085A138F000C01D8, - 841779DE085A138F000C01D8, - ); - buildSettings = { - DEBUGGING_SYMBOLS = NO; - FRAMEWORK_SEARCH_PATHS = "\"$(LOCAL_LIBRARY_DIR)/Frameworks\""; - HEADER_SEARCH_PATHS = "\"$(LOCAL_LIBRARY_DIR)/Frameworks/SDL.framework/Headers\" \"$(LOCAL_LIBRARY_DIR)/Frameworks/SDL_mixer.framework/Headers\" \"$(LOCAL_LIBRARY_DIR)/Frameworks/OpenAL.framework/Headers\" \"$(LOCAL_LIBRARY_DIR)/Frameworks/libpng.framework/Headers\""; - INSTALL_PATH = "$(HOME)/Applications"; - JAVA_COMPILER_DEBUGGING_SYMBOLS = NO; - OPTIMIZATION_CFLAGS = "-O2"; - OTHER_CFLAGS = "-DMAC_ALERT -DUNIXCOMMON -DSDLMAIN -DHAVE_MIXER -DHAVE_PNG -D_BIG_ENDIAN -DSTDC_HEADERS -DSDL -Wall -Winline -fno-strict-aliasing"; - OTHER_REZFLAGS = ""; - PREBINDING = NO; - PRODUCT_NAME = Srb2; - SECTORDER_FLAGS = ""; - USE_GCC3_PFE_SUPPORT = NO; - WARNING_CFLAGS = "-Wmost -Wno-four-char-constants -Wno-unknown-pragmas -Wno-long-double"; - WRAPPER_EXTENSION = app; - }; - dependencies = ( - ); - isa = PBXApplicationTarget; - name = Srb2; - productInstallPath = "$(HOME)/Applications"; - productName = Srb2; - productReference = 841779E1085A138F000C01D8; - productSettingsXML = " - - - - CFBundleDevelopmentRegion - English - CFBundleExecutable - Srb2 - CFBundleGetInfoString - - CFBundleIconFile - Srb2mac - CFBundleIdentifier - - CFBundleInfoDictionaryVersion - 6.0 - CFBundleName - Sonic Robo Blast 2 - CFBundlePackageType - APPL - CFBundleShortVersionString - 1.09 - CFBundleSignature - ???? - CFBundleVersion - 1.09 - NSMainNibFile - SDL_Main.nib - NSPrincipalClass - NSApplication - - -"; - }; - 841779E1085A138F000C01D8 = { - isa = PBXApplicationReference; - path = Srb2.app; - refType = 3; - }; - 841779E2085A138F000C01D8 = { - children = ( - 841779E1085A138F000C01D8, - 841779EA085A13B1000C01D8, - ); - isa = PBXGroup; - name = Products; - refType = 4; - }; - 841779E6085A13B1000C01D8 = { - buildActionMask = 2147483647; - files = ( - 84177A98085A1A0B000C01D8, - 84177A99085A1A0E000C01D8, - 84177A9A085A1A0F000C01D8, - 84177A9B085A1A11000C01D8, - 84177A9C085A1A12000C01D8, - 84177A9D085A1A14000C01D8, - 84177A9E085A1A16000C01D8, - 84177A9F085A1A1E000C01D8, - 84177AA0085A1A1F000C01D8, - 84177AA1085A1A24000C01D8, - 84177AA2085A1A25000C01D8, - 84177AA3085A1A27000C01D8, - 84177AA4085A1A28000C01D8, - 84177AA5085A1A2B000C01D8, - 84177AA6085A1A2C000C01D8, - 84177AA7085A1A2D000C01D8, - 84177AA8085A1A2F000C01D8, - 84177AA9085A1A30000C01D8, - 84177AAA085A1A31000C01D8, - 84177AB4085A1A5E000C01D8, - 84177AB5085A1A60000C01D8, - 84177AB8085A1A65000C01D8, - 84177AB9085A1A65000C01D8, - 84177ABA085A1A66000C01D8, - 84177ABB085A1A67000C01D8, - 84177ABC085A1A67000C01D8, - 84177ABD085A1A68000C01D8, - 84177AC1085A1A70000C01D8, - 84177AC2085A1A72000C01D8, - 84177AC3085A1A77000C01D8, - 84177AC4085A1A78000C01D8, - 84177AC5085A1A7A000C01D8, - 84177AC6085A1A7B000C01D8, - 84177AC7085A1A7C000C01D8, - 84177AC8085A1A7D000C01D8, - 84177AC9085A1A7F000C01D8, - 84177ACA085A1A87000C01D8, - 84177ACB085A1A88000C01D8, - 84177ACC085A1A88000C01D8, - 84177ACD085A1A89000C01D8, - 84177ACE085A1A8A000C01D8, - 84177ACF085A1A8B000C01D8, - 84177AD0085A1A8C000C01D8, - 84177AD1085A1A8D000C01D8, - 84177AD2085A1A90000C01D8, - 84177AD4085A1A92000C01D8, - 84177AD5085A1A93000C01D8, - 84177AD6085A1A94000C01D8, - 84177AD7085A1A97000C01D8, - 84177AD8085A1A97000C01D8, - 84177AD9085A1A99000C01D8, - 84177ADA085A1A9F000C01D8, - 84177ADB085A1AA0000C01D8, - 84177ADC085A1AA2000C01D8, - 84177ADF085A1AA4000C01D8, - 84177AE0085A1AA6000C01D8, - 84177AE1085A1AA7000C01D8, - 84177AE2085A1AA8000C01D8, - 84177AE3085A1AA9000C01D8, - 84177AE4085A1AAA000C01D8, - 84177AE5085A1AAE000C01D8, - 84177AE7085A1AB5000C01D8, - 84177AE8085A1AB6000C01D8, - 84177AEB085A1ABD000C01D8, - 84177AEC085A1ABF000C01D8, - 84177AED085A1ABF000C01D8, - 8490D432085DF3D6000C01D8, - 8490D437085DF57B000C01D8, - 8490D43C085E0518000C01D8, - 8490D43D085E05F6000C01D8, - 8490D43E085E05F7000C01D8, - 8490D43F085E05F8000C01D8, - 8490D440085E05FA000C01D8, - 8490D441085E05FB000C01D8, - 8490D442085E05FC000C01D8, - 8490D443085E05FE000C01D8, - 8490D444085E05FF000C01D8, - 8490D445085E0606000C01D8, - 8490D446085E060A000C01D8, - 8490D447085E060B000C01D8, - 8490D448085E067E000C01D8, - 849603A90A791C11000C01D8, - 6755C7BB1017FE2500A80195, - 6755C7BC1017FE2500A80195, - 6755C7BD1017FE2500A80195, - 6755C7BE1017FE2500A80195, - 6755C7BF1017FE2500A80195, - 6755C7C01017FE2500A80195, - 6755C7C11017FE2500A80195, - 6755C8861017FE4500A80195, - 6755C8871017FE4500A80195, - 6755C8A01017FE4500A80195, - 67B2D0CA1018779D00A80195, - ); - isa = PBXSourcesBuildPhase; - runOnlyForDeploymentPostprocessing = 0; - }; - 841779E7085A13B1000C01D8 = { - buildActionMask = 2147483647; - files = ( - 84C4E0400862096F000C01D8, - 84C4E0430862098A000C01D8, - 84C4E046086209D3000C01D8, - 84C4E049086209FF000C01D8, - 84C4E04E08620A46000C01D8, - 8494DFE80886EA0D000C01D8, - 849BD31D0A7E45B3000C01D8, - ); - isa = PBXFrameworksBuildPhase; - runOnlyForDeploymentPostprocessing = 0; - }; - 841779E9085A13B1000C01D8 = { - buildPhases = ( - 840CE6B009198AA7000C01D8, - 6726EB5E10190F860074DCBA, - 6726EB5F10190FFC0074DCBA, - 841779E6085A13B1000C01D8, - 841779E7085A13B1000C01D8, - ); - buildSettings = { - FRAMEWORK_SEARCH_PATHS = "\"$(LOCAL_LIBRARY_DIR)/Frameworks\""; - HEADER_SEARCH_PATHS = "\"$(LOCAL_LIBRARY_DIR)/Frameworks/SDL.framework/Headers\" \"$(LOCAL_LIBRARY_DIR)/Frameworks/SDL_mixer.framework/Headers\" \"$(LOCAL_LIBRARY_DIR)/Frameworks/OpenAL.framework/Headers\" \"$(LOCAL_LIBRARY_DIR)/Frameworks/libpng.framework/Headers\""; - INSTALL_PATH = "$(HOME)/Applications"; - OPTIMIZATION_CFLAGS = "-O0"; - OTHER_CFLAGS = "-DMAC_ALERT -DUNIXCOMMON -DSDLMAIN -DHAVE_MIXER -DHAVE_PNG -D_BIG_ENDIAN -DSTDC_HEADERS -DSDL -Wall -W -Wpointer-arith -Wbad-function-cast -Wcast-qual -Wcast-align -Wwrite-strings -Wsign-compare -Waggregate-return -Wmissing-prototypes -Wmissing-declarations -Wnested-externs -fno-strict-aliasing -fno-exceptions -D_DEBUG"; - OTHER_REZFLAGS = ""; - PREBINDING = NO; - PRODUCT_NAME = Srb2Debug; - SECTORDER_FLAGS = ""; - USE_GCC3_PFE_SUPPORT = NO; - WARNING_CFLAGS = "-Wmost -Wno-four-char-constants -Wno-unknown-pragmas -Wno-long-double"; - WRAPPER_EXTENSION = app; - }; - dependencies = ( - ); - isa = PBXApplicationTarget; - name = Srb2Debug; - productInstallPath = "$(HOME)/Applications"; - productName = Srb2Debug; - productReference = 841779EA085A13B1000C01D8; - productSettingsXML = " - - - - CFBundleDevelopmentRegion - English - CFBundleExecutable - Srb2Debug - CFBundleGetInfoString - - CFBundleIconFile - srb2mac - CFBundleIdentifier - - CFBundleInfoDictionaryVersion - 6.0 - CFBundleName - Sonic Robo Blast 2 - CFBundlePackageType - APPL - CFBundleShortVersionString - 1.09 - CFBundleSignature - ???? - CFBundleVersion - 1.09 Debug - NSMainNibFile - SDL_Main.nib - NSPrincipalClass - NSApplication - - -"; - }; - 841779EA085A13B1000C01D8 = { - isa = PBXApplicationReference; - path = Srb2Debug.app; - refType = 3; - }; - 84177A2A085A18A8000C01D8 = { - fileRef = 84177713085A0FCE000C01D8; - isa = PBXBuildFile; - settings = { - }; - }; - 84177A2E085A18D2000C01D8 = { - fileRef = 84177717085A0FCE000C01D8; - isa = PBXBuildFile; - settings = { - }; - }; - 84177A30085A18D3000C01D8 = { - fileRef = 84177719085A0FCE000C01D8; - isa = PBXBuildFile; - settings = { - }; - }; - 84177A32085A18D4000C01D8 = { - fileRef = 8417771B085A0FCE000C01D8; - isa = PBXBuildFile; - settings = { - }; - }; - 84177A34085A18D5000C01D8 = { - fileRef = 8417771D085A0FCE000C01D8; - isa = PBXBuildFile; - settings = { - }; - }; - 84177A39085A18D8000C01D8 = { - fileRef = 84177722085A0FCE000C01D8; - isa = PBXBuildFile; - settings = { - }; - }; - 84177A41085A18E0000C01D8 = { - fileRef = 8417772A085A100E000C01D8; - isa = PBXBuildFile; - settings = { - }; - }; - 84177A43085A18E1000C01D8 = { - fileRef = 8417772C085A100E000C01D8; - isa = PBXBuildFile; - settings = { - }; - }; - 84177A46085A18E8000C01D8 = { - fileRef = 841778C4085A1295000C01D8; - isa = PBXBuildFile; - settings = { - }; - }; - 84177A4A085A18EA000C01D8 = { - fileRef = 8417772D085A1029000C01D8; - isa = PBXBuildFile; - settings = { - }; - }; - 84177A4E085A18EC000C01D8 = { - fileRef = 841779D4085A1296000C01D8; - isa = PBXBuildFile; - settings = { - }; - }; - 84177A50085A18F2000C01D8 = { - fileRef = 8417772F085A1029000C01D8; - isa = PBXBuildFile; - settings = { - }; - }; - 84177A52085A193F000C01D8 = { - fileRef = 841778C2085A1295000C01D8; - isa = PBXBuildFile; - settings = { - }; - }; - 84177A53085A1940000C01D8 = { - fileRef = 841778C0085A1295000C01D8; - isa = PBXBuildFile; - settings = { - }; - }; - 84177A54085A1942000C01D8 = { - fileRef = 841778BE085A1295000C01D8; - isa = PBXBuildFile; - settings = { - }; - }; - 84177A55085A1943000C01D8 = { - fileRef = 84177732085A1040000C01D8; - isa = PBXBuildFile; - settings = { - }; - }; - 84177A56085A195A000C01D8 = { - fileRef = 841779D2085A1296000C01D8; - isa = PBXBuildFile; - settings = { - }; - }; - 84177A57085A195B000C01D8 = { - fileRef = 841779D8085A1296000C01D8; - isa = PBXBuildFile; - settings = { - }; - }; - 84177A58085A1968000C01D8 = { - fileRef = 84177734085A106C000C01D8; - isa = PBXBuildFile; - settings = { - }; - }; - 84177A59085A1969000C01D8 = { - fileRef = 84177735085A106C000C01D8; - isa = PBXBuildFile; - settings = { - }; - }; - 84177A5A085A196B000C01D8 = { - fileRef = 84177739085A106C000C01D8; - isa = PBXBuildFile; - settings = { - }; - }; - 84177A5B085A197A000C01D8 = { - fileRef = 8417773D085A106C000C01D8; - isa = PBXBuildFile; - settings = { - }; - }; - 84177A5C085A197C000C01D8 = { - fileRef = 8417773F085A106C000C01D8; - isa = PBXBuildFile; - settings = { - }; - }; - 84177A5D085A197D000C01D8 = { - fileRef = 84177741085A106C000C01D8; - isa = PBXBuildFile; - settings = { - }; - }; - 84177A5E085A197E000C01D8 = { - fileRef = 84177743085A106C000C01D8; - isa = PBXBuildFile; - settings = { - }; - }; - 84177A5F085A1980000C01D8 = { - fileRef = 84177745085A106C000C01D8; - isa = PBXBuildFile; - settings = { - }; - }; - 84177A61085A1985000C01D8 = { - fileRef = 84177749085A1097000C01D8; - isa = PBXBuildFile; - settings = { - }; - }; - 84177A62085A1986000C01D8 = { - fileRef = 8417774B085A1097000C01D8; - isa = PBXBuildFile; - settings = { - }; - }; - 84177A63085A1988000C01D8 = { - fileRef = 8417774E085A1097000C01D8; - isa = PBXBuildFile; - settings = { - }; - }; - 84177A64085A1989000C01D8 = { - fileRef = 8417774F085A1097000C01D8; - isa = PBXBuildFile; - settings = { - }; - }; - 84177A65085A198A000C01D8 = { - fileRef = 84177750085A1097000C01D8; - isa = PBXBuildFile; - settings = { - }; - }; - 84177A66085A198A000C01D8 = { - fileRef = 84177751085A1097000C01D8; - isa = PBXBuildFile; - settings = { - }; - }; - 84177A67085A198B000C01D8 = { - fileRef = 84177752085A1097000C01D8; - isa = PBXBuildFile; - settings = { - }; - }; - 84177A68085A198C000C01D8 = { - fileRef = 84177753085A1097000C01D8; - isa = PBXBuildFile; - settings = { - }; - }; - 84177A69085A198E000C01D8 = { - fileRef = 84177755085A10AA000C01D8; - isa = PBXBuildFile; - settings = { - }; - }; - 84177A6B085A1994000C01D8 = { - fileRef = 841777AA085A1200000C01D8; - isa = PBXBuildFile; - settings = { - }; - }; - 84177A6C085A1995000C01D8 = { - fileRef = 841777AD085A1200000C01D8; - isa = PBXBuildFile; - settings = { - }; - }; - 84177A6D085A199D000C01D8 = { - fileRef = 8417774C085A1097000C01D8; - isa = PBXBuildFile; - settings = { - }; - }; - 84177A6E085A19A0000C01D8 = { - fileRef = 8417775A085A10EB000C01D8; - isa = PBXBuildFile; - settings = { - }; - }; - 84177A6F085A19A1000C01D8 = { - fileRef = 8417775C085A10EB000C01D8; - isa = PBXBuildFile; - settings = { - }; - }; - 84177A70085A19A2000C01D8 = { - fileRef = 8417775E085A10EB000C01D8; - isa = PBXBuildFile; - settings = { - }; - }; - 84177A71085A19A4000C01D8 = { - fileRef = 84177760085A10EB000C01D8; - isa = PBXBuildFile; - settings = { - }; - }; - 84177A72085A19A5000C01D8 = { - fileRef = 84177762085A10EB000C01D8; - isa = PBXBuildFile; - settings = { - }; - }; - 84177A73085A19A6000C01D8 = { - fileRef = 84177764085A10EB000C01D8; - isa = PBXBuildFile; - settings = { - }; - }; - 84177A74085A19A7000C01D8 = { - fileRef = 84177766085A10EB000C01D8; - isa = PBXBuildFile; - settings = { - }; - }; - 84177A75085A19AC000C01D8 = { - fileRef = 84177769085A1104000C01D8; - isa = PBXBuildFile; - settings = { - }; - }; - 84177A76085A19AD000C01D8 = { - fileRef = 8417776A085A1104000C01D8; - isa = PBXBuildFile; - settings = { - }; - }; - 84177A77085A19AE000C01D8 = { - fileRef = 8417776B085A1104000C01D8; - isa = PBXBuildFile; - settings = { - }; - }; - 84177A78085A19AE000C01D8 = { - fileRef = 8417776C085A1104000C01D8; - isa = PBXBuildFile; - settings = { - }; - }; - 84177A79085A19AF000C01D8 = { - fileRef = 8417776D085A1104000C01D8; - isa = PBXBuildFile; - settings = { - }; - }; - 84177A7A085A19B0000C01D8 = { - fileRef = 8417776E085A1104000C01D8; - isa = PBXBuildFile; - settings = { - }; - }; - 84177A7B085A19B3000C01D8 = { - fileRef = 84177770085A1104000C01D8; - isa = PBXBuildFile; - settings = { - }; - }; - 84177A7C085A19B4000C01D8 = { - fileRef = 84177771085A1104000C01D8; - isa = PBXBuildFile; - settings = { - }; - }; - 84177A7D085A19B5000C01D8 = { - fileRef = 84177773085A1104000C01D8; - isa = PBXBuildFile; - settings = { - }; - }; - 84177A7E085A19B7000C01D8 = { - fileRef = 84177776085A1104000C01D8; - isa = PBXBuildFile; - settings = { - }; - }; - 84177A7F085A19B8000C01D8 = { - fileRef = 84177778085A1104000C01D8; - isa = PBXBuildFile; - settings = { - }; - }; - 84177A80085A19B9000C01D8 = { - fileRef = 8417777A085A1104000C01D8; - isa = PBXBuildFile; - settings = { - }; - }; - 84177A81085A19BA000C01D8 = { - fileRef = 8417777B085A1104000C01D8; - isa = PBXBuildFile; - settings = { - }; - }; - 84177A82085A19BB000C01D8 = { - fileRef = 8417777D085A1104000C01D8; - isa = PBXBuildFile; - settings = { - }; - }; - 84177A83085A19BB000C01D8 = { - fileRef = 8417777E085A1104000C01D8; - isa = PBXBuildFile; - settings = { - }; - }; - 84177A84085A19BC000C01D8 = { - fileRef = 84177780085A1104000C01D8; - isa = PBXBuildFile; - settings = { - }; - }; - 84177A85085A19C1000C01D8 = { - fileRef = 84177781085A111B000C01D8; - isa = PBXBuildFile; - settings = { - }; - }; - 84177A86085A19C2000C01D8 = { - fileRef = 84177783085A111B000C01D8; - isa = PBXBuildFile; - settings = { - }; - }; - 84177A87085A19C3000C01D8 = { - fileRef = 84177786085A111B000C01D8; - isa = PBXBuildFile; - settings = { - }; - }; - 84177A88085A19C6000C01D8 = { - fileRef = 8417778B085A111B000C01D8; - isa = PBXBuildFile; - settings = { - }; - }; - 84177A89085A19C7000C01D8 = { - fileRef = 8417778D085A111B000C01D8; - isa = PBXBuildFile; - settings = { - }; - }; - 84177A8A085A19C9000C01D8 = { - fileRef = 8417778F085A111B000C01D8; - isa = PBXBuildFile; - settings = { - }; - }; - 84177A8B085A19CC000C01D8 = { - fileRef = 84177791085A111B000C01D8; - isa = PBXBuildFile; - settings = { - }; - }; - 84177A8C085A19CD000C01D8 = { - fileRef = 84177793085A111B000C01D8; - isa = PBXBuildFile; - settings = { - }; - }; - 84177A8D085A19CF000C01D8 = { - fileRef = 84177796085A111B000C01D8; - isa = PBXBuildFile; - settings = { - }; - }; - 84177A8E085A19D0000C01D8 = { - fileRef = 841777A2085A1197000C01D8; - isa = PBXBuildFile; - settings = { - }; - }; - 84177A90085A19D8000C01D8 = { - fileRef = 84177798085A1138000C01D8; - isa = PBXBuildFile; - settings = { - }; - }; - 84177A91085A19D9000C01D8 = { - fileRef = 8417779A085A1138000C01D8; - isa = PBXBuildFile; - settings = { - }; - }; - 84177A92085A19DD000C01D8 = { - fileRef = 8417779C085A114C000C01D8; - isa = PBXBuildFile; - settings = { - }; - }; - 84177A93085A19DF000C01D8 = { - fileRef = 8417779F085A116B000C01D8; - isa = PBXBuildFile; - settings = { - }; - }; - 84177A94085A19E1000C01D8 = { - fileRef = 841777A0085A117F000C01D8; - isa = PBXBuildFile; - settings = { - }; - }; - 84177A95085A19E3000C01D8 = { - fileRef = 841777AF085A1228000C01D8; - isa = PBXBuildFile; - settings = { - }; - }; - 84177A96085A19E6000C01D8 = { - fileRef = 841778BC085A122A000C01D8; - isa = PBXBuildFile; - settings = { - }; - }; - 84177A98085A1A0B000C01D8 = { - fileRef = 84177713085A0FCE000C01D8; - isa = PBXBuildFile; - settings = { - }; - }; - 84177A99085A1A0E000C01D8 = { - fileRef = 84177717085A0FCE000C01D8; - isa = PBXBuildFile; - settings = { - }; - }; - 84177A9A085A1A0F000C01D8 = { - fileRef = 84177719085A0FCE000C01D8; - isa = PBXBuildFile; - settings = { - }; - }; - 84177A9B085A1A11000C01D8 = { - fileRef = 8417771B085A0FCE000C01D8; - isa = PBXBuildFile; - settings = { - }; - }; - 84177A9C085A1A12000C01D8 = { - fileRef = 8417771D085A0FCE000C01D8; - isa = PBXBuildFile; - settings = { - }; - }; - 84177A9D085A1A14000C01D8 = { - fileRef = 84177722085A0FCE000C01D8; - isa = PBXBuildFile; - settings = { - }; - }; - 84177A9F085A1A1E000C01D8 = { - fileRef = 8417772A085A100E000C01D8; - isa = PBXBuildFile; - settings = { - }; - }; - 84177AA0085A1A1F000C01D8 = { - fileRef = 8417772C085A100E000C01D8; - isa = PBXBuildFile; - settings = { - }; - }; - 84177AA1085A1A24000C01D8 = { - fileRef = 841778C4085A1295000C01D8; - isa = PBXBuildFile; - settings = { - }; - }; - 84177AA2085A1A25000C01D8 = { - fileRef = 8417772D085A1029000C01D8; - isa = PBXBuildFile; - settings = { - }; - }; - 84177AA3085A1A27000C01D8 = { - fileRef = 8417772F085A1029000C01D8; - isa = PBXBuildFile; - settings = { - }; - }; - 84177AA4085A1A28000C01D8 = { - fileRef = 841779D4085A1296000C01D8; - isa = PBXBuildFile; - settings = { - }; - }; - 84177AA5085A1A2B000C01D8 = { - fileRef = 841778BE085A1295000C01D8; - isa = PBXBuildFile; - settings = { - }; - }; - 84177AA6085A1A2C000C01D8 = { - fileRef = 841778C2085A1295000C01D8; - isa = PBXBuildFile; - settings = { - }; - }; - 84177AA7085A1A2D000C01D8 = { - fileRef = 841778C0085A1295000C01D8; - isa = PBXBuildFile; - settings = { - }; - }; - 84177AA8085A1A2F000C01D8 = { - fileRef = 84177732085A1040000C01D8; - isa = PBXBuildFile; - settings = { - }; - }; - 84177AA9085A1A30000C01D8 = { - fileRef = 841779D2085A1296000C01D8; - isa = PBXBuildFile; - settings = { - }; - }; - 84177AAA085A1A31000C01D8 = { - fileRef = 841779D8085A1296000C01D8; - isa = PBXBuildFile; - settings = { - }; - }; - 84177AB4085A1A5E000C01D8 = { - fileRef = 84177749085A1097000C01D8; - isa = PBXBuildFile; - settings = { - }; - }; - 84177AB5085A1A60000C01D8 = { - fileRef = 8417774B085A1097000C01D8; - isa = PBXBuildFile; - settings = { - }; - }; - 84177AB8085A1A65000C01D8 = { - fileRef = 8417774E085A1097000C01D8; - isa = PBXBuildFile; - settings = { - }; - }; - 84177AB9085A1A65000C01D8 = { - fileRef = 8417774F085A1097000C01D8; - isa = PBXBuildFile; - settings = { - }; - }; - 84177ABA085A1A66000C01D8 = { - fileRef = 84177750085A1097000C01D8; - isa = PBXBuildFile; - settings = { - }; - }; - 84177ABB085A1A67000C01D8 = { - fileRef = 84177751085A1097000C01D8; - isa = PBXBuildFile; - settings = { - }; - }; - 84177ABC085A1A67000C01D8 = { - fileRef = 84177752085A1097000C01D8; - isa = PBXBuildFile; - settings = { - }; - }; - 84177ABD085A1A68000C01D8 = { - fileRef = 84177753085A1097000C01D8; - isa = PBXBuildFile; - settings = { - }; - }; - 84177AC1085A1A70000C01D8 = { - fileRef = 841777AA085A1200000C01D8; - isa = PBXBuildFile; - settings = { - }; - }; - 84177AC2085A1A72000C01D8 = { - fileRef = 841777AD085A1200000C01D8; - isa = PBXBuildFile; - settings = { - }; - }; - 84177AC3085A1A77000C01D8 = { - fileRef = 8417775A085A10EB000C01D8; - isa = PBXBuildFile; - settings = { - }; - }; - 84177AC4085A1A78000C01D8 = { - fileRef = 8417775C085A10EB000C01D8; - isa = PBXBuildFile; - settings = { - }; - }; - 84177AC5085A1A7A000C01D8 = { - fileRef = 8417775E085A10EB000C01D8; - isa = PBXBuildFile; - settings = { - }; - }; - 84177AC6085A1A7B000C01D8 = { - fileRef = 84177760085A10EB000C01D8; - isa = PBXBuildFile; - settings = { - }; - }; - 84177AC7085A1A7C000C01D8 = { - fileRef = 84177762085A10EB000C01D8; - isa = PBXBuildFile; - settings = { - }; - }; - 84177AC8085A1A7D000C01D8 = { - fileRef = 84177764085A10EB000C01D8; - isa = PBXBuildFile; - settings = { - }; - }; - 84177AC9085A1A7F000C01D8 = { - fileRef = 84177766085A10EB000C01D8; - isa = PBXBuildFile; - settings = { - }; - }; - 84177ACA085A1A87000C01D8 = { - fileRef = 84177769085A1104000C01D8; - isa = PBXBuildFile; - settings = { - }; - }; - 84177ACB085A1A88000C01D8 = { - fileRef = 8417776A085A1104000C01D8; - isa = PBXBuildFile; - settings = { - }; - }; - 84177ACC085A1A88000C01D8 = { - fileRef = 8417776B085A1104000C01D8; - isa = PBXBuildFile; - settings = { - }; - }; - 84177ACD085A1A89000C01D8 = { - fileRef = 8417776C085A1104000C01D8; - isa = PBXBuildFile; - settings = { - }; - }; - 84177ACE085A1A8A000C01D8 = { - fileRef = 8417776D085A1104000C01D8; - isa = PBXBuildFile; - settings = { - }; - }; - 84177ACF085A1A8B000C01D8 = { - fileRef = 8417776E085A1104000C01D8; - isa = PBXBuildFile; - settings = { - }; - }; - 84177AD0085A1A8C000C01D8 = { - fileRef = 84177770085A1104000C01D8; - isa = PBXBuildFile; - settings = { - }; - }; - 84177AD1085A1A8D000C01D8 = { - fileRef = 84177771085A1104000C01D8; - isa = PBXBuildFile; - settings = { - }; - }; - 84177AD2085A1A90000C01D8 = { - fileRef = 84177773085A1104000C01D8; - isa = PBXBuildFile; - settings = { - }; - }; - 84177AD4085A1A92000C01D8 = { - fileRef = 84177778085A1104000C01D8; - isa = PBXBuildFile; - settings = { - }; - }; - 84177AD5085A1A93000C01D8 = { - fileRef = 8417777A085A1104000C01D8; - isa = PBXBuildFile; - settings = { - }; - }; - 84177AD6085A1A94000C01D8 = { - fileRef = 8417777B085A1104000C01D8; - isa = PBXBuildFile; - settings = { - }; - }; - 84177AD7085A1A97000C01D8 = { - fileRef = 8417777D085A1104000C01D8; - isa = PBXBuildFile; - settings = { - }; - }; - 84177AD8085A1A97000C01D8 = { - fileRef = 8417777E085A1104000C01D8; - isa = PBXBuildFile; - settings = { - }; - }; - 84177AD9085A1A99000C01D8 = { - fileRef = 84177780085A1104000C01D8; - isa = PBXBuildFile; - settings = { - }; - }; - 84177ADA085A1A9F000C01D8 = { - fileRef = 84177781085A111B000C01D8; - isa = PBXBuildFile; - settings = { - }; - }; - 84177ADB085A1AA0000C01D8 = { - fileRef = 84177783085A111B000C01D8; - isa = PBXBuildFile; - settings = { - }; - }; - 84177ADC085A1AA2000C01D8 = { - fileRef = 84177786085A111B000C01D8; - isa = PBXBuildFile; - settings = { - }; - }; - 84177ADF085A1AA4000C01D8 = { - fileRef = 8417778B085A111B000C01D8; - isa = PBXBuildFile; - settings = { - }; - }; - 84177AE0085A1AA6000C01D8 = { - fileRef = 8417778D085A111B000C01D8; - isa = PBXBuildFile; - settings = { - }; - }; - 84177AE1085A1AA7000C01D8 = { - fileRef = 8417778F085A111B000C01D8; - isa = PBXBuildFile; - settings = { - }; - }; - 84177AE2085A1AA8000C01D8 = { - fileRef = 84177791085A111B000C01D8; - isa = PBXBuildFile; - settings = { - }; - }; - 84177AE3085A1AA9000C01D8 = { - fileRef = 84177793085A111B000C01D8; - isa = PBXBuildFile; - settings = { - }; - }; - 84177AE4085A1AAA000C01D8 = { - fileRef = 84177796085A111B000C01D8; - isa = PBXBuildFile; - settings = { - }; - }; - 84177AE5085A1AAE000C01D8 = { - fileRef = 841777A2085A1197000C01D8; - isa = PBXBuildFile; - settings = { - }; - }; - 84177AE7085A1AB5000C01D8 = { - fileRef = 84177798085A1138000C01D8; - isa = PBXBuildFile; - settings = { - }; - }; - 84177AE8085A1AB6000C01D8 = { - fileRef = 8417779A085A1138000C01D8; - isa = PBXBuildFile; - settings = { - }; - }; - 84177AEB085A1ABD000C01D8 = { - fileRef = 841777AF085A1228000C01D8; - isa = PBXBuildFile; - settings = { - }; - }; - 84177AEC085A1ABF000C01D8 = { - fileRef = 841777A0085A117F000C01D8; - isa = PBXBuildFile; - settings = { - }; - }; - 84177AED085A1ABF000C01D8 = { - fileRef = 841778BC085A122A000C01D8; - isa = PBXBuildFile; - settings = { - }; - }; - 8490D432085DF3D6000C01D8 = { - fileRef = 84177776085A1104000C01D8; - isa = PBXBuildFile; - settings = { - }; - }; - 8490D433085DF537000C01D8 = { - fileEncoding = 30; - isa = PBXFileReference; - name = y_inter.h; - path = ../../y_inter.h; - refType = 2; - }; - 8490D436085DF57B000C01D8 = { - fileEncoding = 30; - isa = PBXFileReference; - name = v_video.c; - path = ../../v_video.c; - refType = 2; - }; - 8490D437085DF57B000C01D8 = { - fileRef = 8490D436085DF57B000C01D8; - isa = PBXBuildFile; - settings = { - }; - }; - 8490D438085DF57B000C01D8 = { - fileRef = 8490D436085DF57B000C01D8; - isa = PBXBuildFile; - settings = { - }; - }; - 8490D43C085E0518000C01D8 = { - fileRef = 8417779F085A116B000C01D8; - isa = PBXBuildFile; - settings = { - }; - }; - 8490D43D085E05F6000C01D8 = { - fileRef = 84177734085A106C000C01D8; - isa = PBXBuildFile; - settings = { - }; - }; - 8490D43E085E05F7000C01D8 = { - fileRef = 84177735085A106C000C01D8; - isa = PBXBuildFile; - settings = { - }; - }; - 8490D43F085E05F8000C01D8 = { - fileRef = 84177739085A106C000C01D8; - isa = PBXBuildFile; - settings = { - }; - }; - 8490D440085E05FA000C01D8 = { - fileRef = 8417773D085A106C000C01D8; - isa = PBXBuildFile; - settings = { - }; - }; - 8490D441085E05FB000C01D8 = { - fileRef = 8417773F085A106C000C01D8; - isa = PBXBuildFile; - settings = { - }; - }; - 8490D442085E05FC000C01D8 = { - fileRef = 84177741085A106C000C01D8; - isa = PBXBuildFile; - settings = { - }; - }; - 8490D443085E05FE000C01D8 = { - fileRef = 84177743085A106C000C01D8; - isa = PBXBuildFile; - settings = { - }; - }; - 8490D444085E05FF000C01D8 = { - fileRef = 84177745085A106C000C01D8; - isa = PBXBuildFile; - settings = { - }; - }; - 8490D445085E0606000C01D8 = { - fileRef = 8417774C085A1097000C01D8; - isa = PBXBuildFile; - settings = { - }; - }; - 8490D446085E060A000C01D8 = { - fileRef = 84177755085A10AA000C01D8; - isa = PBXBuildFile; - settings = { - }; - }; - 8490D447085E060B000C01D8 = { - fileRef = 84177758085A10D2000C01D8; - isa = PBXBuildFile; - settings = { - }; - }; - 8490D448085E067E000C01D8 = { - fileRef = 8417779C085A114C000C01D8; - isa = PBXBuildFile; - settings = { - }; - }; - 8494DFE80886EA0D000C01D8 = { - fileRef = 84C4E04B08620A46000C01D8; - isa = PBXBuildFile; - settings = { - }; - }; - 849603A80A791C11000C01D8 = { - fileEncoding = 30; - isa = PBXFileReference; - name = comptime.c; - path = ../../comptime.c; - refType = 2; - }; - 849603A90A791C11000C01D8 = { - fileRef = 849603A80A791C11000C01D8; - isa = PBXBuildFile; - settings = { - }; - }; - 849603AA0A791C11000C01D8 = { - fileRef = 849603A80A791C11000C01D8; - isa = PBXBuildFile; - settings = { - }; - }; - 849BD31C0A7E45B3000C01D8 = { - isa = PBXFrameworkReference; - name = libpng.framework; - path = /Library/Frameworks/libpng.framework; - refType = 0; - }; - 849BD31D0A7E45B3000C01D8 = { - fileRef = 849BD31C0A7E45B3000C01D8; - isa = PBXBuildFile; - settings = { - }; - }; - 849BD31E0A7E45B3000C01D8 = { - fileRef = 849BD31C0A7E45B3000C01D8; - isa = PBXBuildFile; - settings = { - }; - }; - 849BD32D0A7E471D000C01D8 = { - fileRef = 849BD31C0A7E45B3000C01D8; - isa = PBXBuildFile; - settings = { - }; - }; - 84C4E00D0862063C000C01D8 = { - children = ( - 6755C8BE101802C300A80195, - 6755C8BF101802C300A80195, - 6755C8C0101802C300A80195, - 6755C8C1101802C300A80195, - 6755C8C2101802C300A80195, - 6755C8C3101802C300A80195, - 6755C8C4101802C300A80195, - 6755C8C5101802C300A80195, - 6755C8C6101802C300A80195, - ); - isa = PBXGroup; - name = Data; - refType = 4; - }; - 84C4E03F0862096F000C01D8 = { - isa = PBXFrameworkReference; - name = AppKit.framework; - path = /System/Library/Frameworks/AppKit.framework; - refType = 0; - }; - 84C4E0400862096F000C01D8 = { - fileRef = 84C4E03F0862096F000C01D8; - isa = PBXBuildFile; - settings = { - }; - }; - 84C4E0410862096F000C01D8 = { - fileRef = 84C4E03F0862096F000C01D8; - isa = PBXBuildFile; - settings = { - }; - }; - 84C4E0420862098A000C01D8 = { - isa = PBXFrameworkReference; - name = Foundation.framework; - path = /System/Library/Frameworks/Foundation.framework; - refType = 0; - }; - 84C4E0430862098A000C01D8 = { - fileRef = 84C4E0420862098A000C01D8; - isa = PBXBuildFile; - settings = { - }; - }; - 84C4E0440862098A000C01D8 = { - fileRef = 84C4E0420862098A000C01D8; - isa = PBXBuildFile; - settings = { - }; - }; - 84C4E045086209D3000C01D8 = { - isa = PBXFrameworkReference; - name = CoreFoundation.framework; - path = /System/Library/Frameworks/CoreFoundation.framework; - refType = 0; - }; - 84C4E046086209D3000C01D8 = { - fileRef = 84C4E045086209D3000C01D8; - isa = PBXBuildFile; - settings = { - }; - }; - 84C4E047086209D3000C01D8 = { - fileRef = 84C4E045086209D3000C01D8; - isa = PBXBuildFile; - settings = { - }; - }; - 84C4E048086209FF000C01D8 = { - isa = PBXFrameworkReference; - name = ApplicationServices.framework; - path = /System/Library/Frameworks/ApplicationServices.framework; - refType = 0; - }; - 84C4E049086209FF000C01D8 = { - fileRef = 84C4E048086209FF000C01D8; - isa = PBXBuildFile; - settings = { - }; - }; - 84C4E04A086209FF000C01D8 = { - fileRef = 84C4E048086209FF000C01D8; - isa = PBXBuildFile; - settings = { - }; - }; - 84C4E04B08620A46000C01D8 = { - isa = PBXFrameworkReference; - name = SDL_mixer.framework; - path = /Library/Frameworks/SDL_mixer.framework; - refType = 0; - }; - 84C4E04C08620A46000C01D8 = { - isa = PBXFrameworkReference; - name = SDL.framework; - path = /Library/Frameworks/SDL.framework; - refType = 0; - }; - 84C4E04E08620A46000C01D8 = { - fileRef = 84C4E04C08620A46000C01D8; - isa = PBXBuildFile; - settings = { - }; - }; - 84C4E04F08620A46000C01D8 = { - fileRef = 84C4E04B08620A46000C01D8; - isa = PBXBuildFile; - settings = { - }; - }; - 84C4E05008620A46000C01D8 = { - fileRef = 84C4E04C08620A46000C01D8; - isa = PBXBuildFile; - settings = { - }; - }; - 84F202C708A92A5D000C01D8 = { - isa = PBXFrameworkReference; - name = OpenAL.framework; - path = /Library/Frameworks/OpenAL.framework; - refType = 0; - }; - 84F202CA08A92AA0000C01D8 = { - fileEncoding = 30; - isa = PBXFileReference; - name = s_openal.c; - path = ../../hardware/s_openal/s_openal.c; - refType = 2; - }; - }; - rootObject = 84177702085A0C64000C01D8; -} diff --git a/src/sdl12/macosx/Srb2mac.xcodeproj/project.pbxproj b/src/sdl12/macosx/Srb2mac.xcodeproj/project.pbxproj deleted file mode 100644 index fada7849c..000000000 --- a/src/sdl12/macosx/Srb2mac.xcodeproj/project.pbxproj +++ /dev/null @@ -1,1510 +0,0 @@ -// !$*UTF8*$! -{ - archiveVersion = 1; - classes = { - }; - objectVersion = 44; - objects = { - -/* Begin PBXBuildFile section */ - 002F39FA09D0881F00EBEB88 /* SDL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 002F39F909D0881F00EBEB88 /* SDL.framework */; }; - 002F3A0009D0884600EBEB88 /* SDL.framework in Copy Frameworks into .app bundle */ = {isa = PBXBuildFile; fileRef = 002F39F909D0881F00EBEB88 /* SDL.framework */; }; - 1E308E720B71172D0015728C /* lzf.c in Sources */ = {isa = PBXBuildFile; fileRef = 1E44B2240B67EADE00BAD059 /* lzf.c */; }; - 1E32C4290B6E6D5D0029E058 /* libpng.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1E32C4140B6E6D5D0029E058 /* libpng.framework */; }; - 1E32C42B0B6E6D6E0029E058 /* libpng.framework in Copy Frameworks into .app bundle */ = {isa = PBXBuildFile; fileRef = 1E32C4140B6E6D5D0029E058 /* libpng.framework */; }; - 1E44AE750B67CC2B00BAD059 /* hw_bsp.c in Sources */ = {isa = PBXBuildFile; fileRef = 1E44AE610B67CC2B00BAD059 /* hw_bsp.c */; }; - 1E44AE770B67CC2B00BAD059 /* hw3sound.c in Sources */ = {isa = PBXBuildFile; fileRef = 1E44AE630B67CC2B00BAD059 /* hw3sound.c */; }; - 1E44AE780B67CC2B00BAD059 /* hw_cache.c in Sources */ = {isa = PBXBuildFile; fileRef = 1E44AE640B67CC2B00BAD059 /* hw_cache.c */; }; - 1E44AE7C0B67CC2B00BAD059 /* hw_light.c in Sources */ = {isa = PBXBuildFile; fileRef = 1E44AE680B67CC2B00BAD059 /* hw_light.c */; }; - 1E44AE800B67CC2B00BAD059 /* hw_draw.c in Sources */ = {isa = PBXBuildFile; fileRef = 1E44AE6C0B67CC2B00BAD059 /* hw_draw.c */; }; - 1E44AE820B67CC2B00BAD059 /* hw_main.c in Sources */ = {isa = PBXBuildFile; fileRef = 1E44AE6E0B67CC2B00BAD059 /* hw_main.c */; }; - 1E44AE840B67CC2B00BAD059 /* hw_md2.c in Sources */ = {isa = PBXBuildFile; fileRef = 1E44AE700B67CC2B00BAD059 /* hw_md2.c */; }; - 1E44AE860B67CC2B00BAD059 /* hw_trick.c in Sources */ = {isa = PBXBuildFile; fileRef = 1E44AE720B67CC2B00BAD059 /* hw_trick.c */; }; - 1E44AEA40B67CC8500BAD059 /* d_clisrv.c in Sources */ = {isa = PBXBuildFile; fileRef = 1E44AE8D0B67CC8400BAD059 /* d_clisrv.c */; }; - 1E44AEA70B67CC8500BAD059 /* d_main.c in Sources */ = {isa = PBXBuildFile; fileRef = 1E44AE900B67CC8400BAD059 /* d_main.c */; }; - 1E44AEA80B67CC8500BAD059 /* d_net.c in Sources */ = {isa = PBXBuildFile; fileRef = 1E44AE910B67CC8500BAD059 /* d_net.c */; }; - 1E44AEAB0B67CC8500BAD059 /* d_netfil.c in Sources */ = {isa = PBXBuildFile; fileRef = 1E44AE940B67CC8500BAD059 /* d_netfil.c */; }; - 1E44AEAF0B67CC8500BAD059 /* d_netcmd.c in Sources */ = {isa = PBXBuildFile; fileRef = 1E44AE980B67CC8500BAD059 /* d_netcmd.c */; }; - 1E44AEB30B67CC8500BAD059 /* dehacked.c in Sources */ = {isa = PBXBuildFile; fileRef = 1E44AE9C0B67CC8500BAD059 /* dehacked.c */; }; - 1E44AEBF0B67CCA900BAD059 /* f_wipe.c in Sources */ = {isa = PBXBuildFile; fileRef = 1E44AEBC0B67CCA900BAD059 /* f_wipe.c */; }; - 1E44AEC00B67CCA900BAD059 /* f_finale.c in Sources */ = {isa = PBXBuildFile; fileRef = 1E44AEBD0B67CCA900BAD059 /* f_finale.c */; }; - 1E44AEC80B67CCC600BAD059 /* g_game.c in Sources */ = {isa = PBXBuildFile; fileRef = 1E44AEC30B67CCC600BAD059 /* g_game.c */; }; - 1E44AECC0B67CCC600BAD059 /* g_input.c in Sources */ = {isa = PBXBuildFile; fileRef = 1E44AEC70B67CCC600BAD059 /* g_input.c */; }; - 1E44AED00B67CCEE00BAD059 /* hu_stuff.c in Sources */ = {isa = PBXBuildFile; fileRef = 1E44AECE0B67CCEE00BAD059 /* hu_stuff.c */; }; - 1E44AEDC0B67CD1300BAD059 /* i_tcp.c in Sources */ = {isa = PBXBuildFile; fileRef = 1E44AED50B67CD1200BAD059 /* i_tcp.c */; }; - 1E44AEE30B67CD2B00BAD059 /* am_map.c in Sources */ = {isa = PBXBuildFile; fileRef = 1E44AEE10B67CD2B00BAD059 /* am_map.c */; }; - 1E44AEE90B67CD3F00BAD059 /* command.c in Sources */ = {isa = PBXBuildFile; fileRef = 1E44AEE70B67CD3F00BAD059 /* command.c */; }; - 1E44AEEC0B67CD4400BAD059 /* comptime.c in Sources */ = {isa = PBXBuildFile; fileRef = 1E44AEEB0B67CD4400BAD059 /* comptime.c */; }; - 1E44AEEF0B67CD5400BAD059 /* console.c in Sources */ = {isa = PBXBuildFile; fileRef = 1E44AEED0B67CD5400BAD059 /* console.c */; }; - 1E44AEF30B67CD7F00BAD059 /* filesrch.c in Sources */ = {isa = PBXBuildFile; fileRef = 1E44AEF10B67CD7F00BAD059 /* filesrch.c */; }; - 1E44AF070B67CDE900BAD059 /* m_argv.c in Sources */ = {isa = PBXBuildFile; fileRef = 1E44AEF80B67CDE900BAD059 /* m_argv.c */; }; - 1E44AF0A0B67CDE900BAD059 /* m_cheat.c in Sources */ = {isa = PBXBuildFile; fileRef = 1E44AEFB0B67CDE900BAD059 /* m_cheat.c */; }; - 1E44AF0B0B67CDE900BAD059 /* m_bbox.c in Sources */ = {isa = PBXBuildFile; fileRef = 1E44AEFC0B67CDE900BAD059 /* m_bbox.c */; }; - 1E44AF0D0B67CDE900BAD059 /* m_fixed.c in Sources */ = {isa = PBXBuildFile; fileRef = 1E44AEFE0B67CDE900BAD059 /* m_fixed.c */; }; - 1E44AF0F0B67CDE900BAD059 /* m_menu.c in Sources */ = {isa = PBXBuildFile; fileRef = 1E44AF000B67CDE900BAD059 /* m_menu.c */; }; - 1E44AF110B67CDE900BAD059 /* m_misc.c in Sources */ = {isa = PBXBuildFile; fileRef = 1E44AF020B67CDE900BAD059 /* m_misc.c */; }; - 1E44AF130B67CDE900BAD059 /* m_random.c in Sources */ = {isa = PBXBuildFile; fileRef = 1E44AF040B67CDE900BAD059 /* m_random.c */; }; - 1E44AF1A0B67CE2A00BAD059 /* info.c in Sources */ = {isa = PBXBuildFile; fileRef = 1E44AF180B67CE2A00BAD059 /* info.c */; }; - 1E44AF1E0B67CE3600BAD059 /* md5.c in Sources */ = {isa = PBXBuildFile; fileRef = 1E44AF1C0B67CE3600BAD059 /* md5.c */; }; - 1E44AF220B67CE4100BAD059 /* mserv.c in Sources */ = {isa = PBXBuildFile; fileRef = 1E44AF200B67CE4100BAD059 /* mserv.c */; }; - 1E44AF3C0B67CE5F00BAD059 /* p_enemy.c in Sources */ = {isa = PBXBuildFile; fileRef = 1E44AF240B67CE5F00BAD059 /* p_enemy.c */; }; - 1E44AF3D0B67CE5F00BAD059 /* p_inter.c in Sources */ = {isa = PBXBuildFile; fileRef = 1E44AF250B67CE5F00BAD059 /* p_inter.c */; }; - 1E44AF3E0B67CE5F00BAD059 /* p_fab.c in Sources */ = {isa = PBXBuildFile; fileRef = 1E44AF260B67CE5F00BAD059 /* p_fab.c */; }; - 1E44AF3F0B67CE5F00BAD059 /* p_lights.c in Sources */ = {isa = PBXBuildFile; fileRef = 1E44AF270B67CE5F00BAD059 /* p_lights.c */; }; - 1E44AF400B67CE5F00BAD059 /* p_map.c in Sources */ = {isa = PBXBuildFile; fileRef = 1E44AF280B67CE5F00BAD059 /* p_map.c */; }; - 1E44AF410B67CE5F00BAD059 /* p_maputl.c in Sources */ = {isa = PBXBuildFile; fileRef = 1E44AF290B67CE5F00BAD059 /* p_maputl.c */; }; - 1E44AF430B67CE5F00BAD059 /* p_mobj.c in Sources */ = {isa = PBXBuildFile; fileRef = 1E44AF2B0B67CE5F00BAD059 /* p_mobj.c */; }; - 1E44AF450B67CE5F00BAD059 /* p_floor.c in Sources */ = {isa = PBXBuildFile; fileRef = 1E44AF2D0B67CE5F00BAD059 /* p_floor.c */; }; - 1E44AF480B67CE5F00BAD059 /* p_saveg.c in Sources */ = {isa = PBXBuildFile; fileRef = 1E44AF300B67CE5F00BAD059 /* p_saveg.c */; }; - 1E44AF4A0B67CE5F00BAD059 /* p_setup.c in Sources */ = {isa = PBXBuildFile; fileRef = 1E44AF320B67CE5F00BAD059 /* p_setup.c */; }; - 1E44AF4C0B67CE5F00BAD059 /* p_sight.c in Sources */ = {isa = PBXBuildFile; fileRef = 1E44AF340B67CE5F00BAD059 /* p_sight.c */; }; - 1E44AF4D0B67CE5F00BAD059 /* p_spec.c in Sources */ = {isa = PBXBuildFile; fileRef = 1E44AF350B67CE5F00BAD059 /* p_spec.c */; }; - 1E44AF4F0B67CE5F00BAD059 /* p_telept.c in Sources */ = {isa = PBXBuildFile; fileRef = 1E44AF370B67CE5F00BAD059 /* p_telept.c */; }; - 1E44AF500B67CE5F00BAD059 /* p_tick.c in Sources */ = {isa = PBXBuildFile; fileRef = 1E44AF380B67CE5F00BAD059 /* p_tick.c */; }; - 1E44AF520B67CE5F00BAD059 /* p_user.c in Sources */ = {isa = PBXBuildFile; fileRef = 1E44AF3A0B67CE5F00BAD059 /* p_user.c */; }; - 1E44AF530B67CE5F00BAD059 /* p_ceilng.c in Sources */ = {isa = PBXBuildFile; fileRef = 1E44AF3B0B67CE5F00BAD059 /* p_ceilng.c */; }; - 1E44AF6C0B67CEC200BAD059 /* r_bsp.c in Sources */ = {isa = PBXBuildFile; fileRef = 1E44AF550B67CEC100BAD059 /* r_bsp.c */; }; - 1E44AF6F0B67CEC200BAD059 /* r_data.c in Sources */ = {isa = PBXBuildFile; fileRef = 1E44AF580B67CEC100BAD059 /* r_data.c */; }; - 1E44AF700B67CEC200BAD059 /* r_draw.c in Sources */ = {isa = PBXBuildFile; fileRef = 1E44AF590B67CEC100BAD059 /* r_draw.c */; }; - 1E44AF730B67CEC200BAD059 /* r_main.c in Sources */ = {isa = PBXBuildFile; fileRef = 1E44AF5C0B67CEC100BAD059 /* r_main.c */; }; - 1E44AF780B67CEC200BAD059 /* r_plane.c in Sources */ = {isa = PBXBuildFile; fileRef = 1E44AF610B67CEC100BAD059 /* r_plane.c */; }; - 1E44AF7A0B67CEC200BAD059 /* r_segs.c in Sources */ = {isa = PBXBuildFile; fileRef = 1E44AF630B67CEC100BAD059 /* r_segs.c */; }; - 1E44AF7C0B67CEC200BAD059 /* r_sky.c in Sources */ = {isa = PBXBuildFile; fileRef = 1E44AF650B67CEC200BAD059 /* r_sky.c */; }; - 1E44AF7E0B67CEC200BAD059 /* r_splats.c in Sources */ = {isa = PBXBuildFile; fileRef = 1E44AF670B67CEC200BAD059 /* r_splats.c */; }; - 1E44AF810B67CEC200BAD059 /* r_things.c in Sources */ = {isa = PBXBuildFile; fileRef = 1E44AF6A0B67CEC200BAD059 /* r_things.c */; }; - 1E44AF870B67CEE000BAD059 /* s_sound.c in Sources */ = {isa = PBXBuildFile; fileRef = 1E44AF850B67CEE000BAD059 /* s_sound.c */; }; - 1E44AF8B0B67CEE900BAD059 /* screen.c in Sources */ = {isa = PBXBuildFile; fileRef = 1E44AF890B67CEE900BAD059 /* screen.c */; }; - 1E44AF8F0B67CEF000BAD059 /* sounds.c in Sources */ = {isa = PBXBuildFile; fileRef = 1E44AF8D0B67CEF000BAD059 /* sounds.c */; }; - 1E44AF930B67CEFF00BAD059 /* st_stuff.c in Sources */ = {isa = PBXBuildFile; fileRef = 1E44AF910B67CEFF00BAD059 /* st_stuff.c */; }; - 1E44AF9B0B67CF2E00BAD059 /* tables.c in Sources */ = {isa = PBXBuildFile; fileRef = 1E44AF990B67CF2E00BAD059 /* tables.c */; }; - 1E44AFA50B67CF5D00BAD059 /* v_video.c in Sources */ = {isa = PBXBuildFile; fileRef = 1E44AFA30B67CF5D00BAD059 /* v_video.c */; }; - 1E44AFA90B67CF6400BAD059 /* w_wad.c in Sources */ = {isa = PBXBuildFile; fileRef = 1E44AFA70B67CF6400BAD059 /* w_wad.c */; }; - 1E44AFAD0B67CF6F00BAD059 /* y_inter.c in Sources */ = {isa = PBXBuildFile; fileRef = 1E44AFAB0B67CF6F00BAD059 /* y_inter.c */; }; - 1E44AFB10B67CF7A00BAD059 /* z_zone.c in Sources */ = {isa = PBXBuildFile; fileRef = 1E44AFAF0B67CF7A00BAD059 /* z_zone.c */; }; - 1E44AFC40B67CFDC00BAD059 /* dosstr.c in Sources */ = {isa = PBXBuildFile; fileRef = 1E44AFB40B67CFDC00BAD059 /* dosstr.c */; }; - 1E44AFC50B67CFDC00BAD059 /* endtxt.c in Sources */ = {isa = PBXBuildFile; fileRef = 1E44AFB50B67CFDC00BAD059 /* endtxt.c */; }; - 1E44AFC70B67CFDC00BAD059 /* hwsym_sdl.c in Sources */ = {isa = PBXBuildFile; fileRef = 1E44AFB70B67CFDC00BAD059 /* hwsym_sdl.c */; }; - 1E44AFC90B67CFDC00BAD059 /* i_cdmus.c in Sources */ = {isa = PBXBuildFile; fileRef = 1E44AFB90B67CFDC00BAD059 /* i_cdmus.c */; }; - 1E44AFCA0B67CFDC00BAD059 /* i_main.c in Sources */ = {isa = PBXBuildFile; fileRef = 1E44AFBA0B67CFDC00BAD059 /* i_main.c */; }; - 1E44AFCB0B67CFDC00BAD059 /* i_net.c in Sources */ = {isa = PBXBuildFile; fileRef = 1E44AFBB0B67CFDC00BAD059 /* i_net.c */; }; - 1E44AFCD0B67CFDC00BAD059 /* i_system.c in Sources */ = {isa = PBXBuildFile; fileRef = 1E44AFBD0B67CFDC00BAD059 /* i_system.c */; }; - 1E44AFCE0B67CFDC00BAD059 /* i_video.c in Sources */ = {isa = PBXBuildFile; fileRef = 1E44AFBE0B67CFDC00BAD059 /* i_video.c */; }; - 1E44AFD00B67CFDC00BAD059 /* ogl_sdl.c in Sources */ = {isa = PBXBuildFile; fileRef = 1E44AFC00B67CFDC00BAD059 /* ogl_sdl.c */; }; - 1E44AFEA0B67D06200BAD059 /* Srb2mac.icns in Resources */ = {isa = PBXBuildFile; fileRef = 1E44AFE70B67D06200BAD059 /* Srb2mac.icns */; }; - 1E44AFEB0B67D06200BAD059 /* mac_alert.c in Sources */ = {isa = PBXBuildFile; fileRef = 1E44AFE80B67D06200BAD059 /* mac_alert.c */; }; - 1E44AFED0B67D0AB00BAD059 /* r_opengl.c in Sources */ = {isa = PBXBuildFile; fileRef = 1E44AFEC0B67D0AB00BAD059 /* r_opengl.c */; }; - 1E44B0590B67D81E00BAD059 /* SDL_macosx_main.m in Sources */ = {isa = PBXBuildFile; fileRef = 1E44B0570B67D81E00BAD059 /* SDL_macosx_main.m */; }; - 1E66921C0B690C5B00B7313A /* SDL_mixer.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1E66921B0B690C5B00B7313A /* SDL_mixer.framework */; }; - 1E66921D0B690C6B00B7313A /* SDL_mixer.framework in Copy Frameworks into .app bundle */ = {isa = PBXBuildFile; fileRef = 1E66921B0B690C5B00B7313A /* SDL_mixer.framework */; }; - 67259DFD18D2687D00F02971 /* lua_hudlib.c in Sources */ = {isa = PBXBuildFile; fileRef = 67259DFB18D2687D00F02971 /* lua_hudlib.c */; }; - 67259DFE18D2687D00F02971 /* lua_skinlib.c in Sources */ = {isa = PBXBuildFile; fileRef = 67259DFC18D2687D00F02971 /* lua_skinlib.c */; }; - 67259E0118D268AE00F02971 /* m_anigif.c in Sources */ = {isa = PBXBuildFile; fileRef = 67259DFF18D268AE00F02971 /* m_anigif.c */; }; - 67259E0618D268F700F02971 /* i_ttf.c in Sources */ = {isa = PBXBuildFile; fileRef = 67259E0218D268F600F02971 /* i_ttf.c */; }; - 67259E0718D268F700F02971 /* mixer_sound.c in Sources */ = {isa = PBXBuildFile; fileRef = 67259E0418D268F600F02971 /* mixer_sound.c */; }; - 67259E0818D268F700F02971 /* sdl_sound.c in Sources */ = {isa = PBXBuildFile; fileRef = 67259E0518D268F600F02971 /* sdl_sound.c */; }; - 67259E2E18D26D5700F02971 /* patch.dta in Resources */ = {isa = PBXBuildFile; fileRef = 67259E2B18D26D5700F02971 /* patch.dta */; }; - 67259E2F18D26D5700F02971 /* rings.dta in Resources */ = {isa = PBXBuildFile; fileRef = 67259E2C18D26D5700F02971 /* rings.dta */; }; - 67259E3018D26D5700F02971 /* srb2.srb in Resources */ = {isa = PBXBuildFile; fileRef = 67259E2D18D26D5700F02971 /* srb2.srb */; }; - 67259E3218D26DD200F02971 /* music.dta in Resources */ = {isa = PBXBuildFile; fileRef = 1E44AE440B67CBE800BAD059 /* music.dta */; }; - 67259E3318D26DD300F02971 /* player.dta in Resources */ = {isa = PBXBuildFile; fileRef = 67A1F91813FAD026009FA3E5 /* player.dta */; }; - 67259E3518D26DD500F02971 /* zones.dta in Resources */ = {isa = PBXBuildFile; fileRef = 6766C0AE11B057E50065F389 /* zones.dta */; }; - 676BB5200E0DE06100C95963 /* m_queue.c in Sources */ = {isa = PBXBuildFile; fileRef = 676BB51C0E0DE06100C95963 /* m_queue.c */; }; - 676BB5220E0DE06100C95963 /* p_polyobj.c in Sources */ = {isa = PBXBuildFile; fileRef = 676BB51E0E0DE06100C95963 /* p_polyobj.c */; }; - 67B83BFA14F57EAB00AAAE4E /* lapi.c in Sources */ = {isa = PBXBuildFile; fileRef = 67B83BCB14F57EAB00AAAE4E /* lapi.c */; }; - 67B83BFB14F57EAB00AAAE4E /* lauxlib.c in Sources */ = {isa = PBXBuildFile; fileRef = 67B83BCD14F57EAB00AAAE4E /* lauxlib.c */; }; - 67B83BFC14F57EAB00AAAE4E /* lbaselib.c in Sources */ = {isa = PBXBuildFile; fileRef = 67B83BCF14F57EAB00AAAE4E /* lbaselib.c */; }; - 67B83BFD14F57EAB00AAAE4E /* lcode.c in Sources */ = {isa = PBXBuildFile; fileRef = 67B83BD014F57EAB00AAAE4E /* lcode.c */; }; - 67B83BFE14F57EAB00AAAE4E /* ldebug.c in Sources */ = {isa = PBXBuildFile; fileRef = 67B83BD214F57EAB00AAAE4E /* ldebug.c */; }; - 67B83BFF14F57EAB00AAAE4E /* ldo.c in Sources */ = {isa = PBXBuildFile; fileRef = 67B83BD414F57EAB00AAAE4E /* ldo.c */; }; - 67B83C0014F57EAB00AAAE4E /* ldump.c in Sources */ = {isa = PBXBuildFile; fileRef = 67B83BD614F57EAB00AAAE4E /* ldump.c */; }; - 67B83C0114F57EAB00AAAE4E /* lfunc.c in Sources */ = {isa = PBXBuildFile; fileRef = 67B83BD714F57EAB00AAAE4E /* lfunc.c */; }; - 67B83C0214F57EAB00AAAE4E /* lgc.c in Sources */ = {isa = PBXBuildFile; fileRef = 67B83BD914F57EAB00AAAE4E /* lgc.c */; }; - 67B83C0314F57EAB00AAAE4E /* linit.c in Sources */ = {isa = PBXBuildFile; fileRef = 67B83BDB14F57EAB00AAAE4E /* linit.c */; }; - 67B83C0414F57EAB00AAAE4E /* llex.c in Sources */ = {isa = PBXBuildFile; fileRef = 67B83BDC14F57EAB00AAAE4E /* llex.c */; }; - 67B83C0514F57EAB00AAAE4E /* lmem.c in Sources */ = {isa = PBXBuildFile; fileRef = 67B83BDF14F57EAB00AAAE4E /* lmem.c */; }; - 67B83C0614F57EAB00AAAE4E /* lobject.c in Sources */ = {isa = PBXBuildFile; fileRef = 67B83BE114F57EAB00AAAE4E /* lobject.c */; }; - 67B83C0714F57EAB00AAAE4E /* lopcodes.c in Sources */ = {isa = PBXBuildFile; fileRef = 67B83BE314F57EAB00AAAE4E /* lopcodes.c */; }; - 67B83C0814F57EAB00AAAE4E /* lparser.c in Sources */ = {isa = PBXBuildFile; fileRef = 67B83BE514F57EAB00AAAE4E /* lparser.c */; }; - 67B83C0914F57EAB00AAAE4E /* lstate.c in Sources */ = {isa = PBXBuildFile; fileRef = 67B83BE714F57EAB00AAAE4E /* lstate.c */; }; - 67B83C0A14F57EAB00AAAE4E /* lstring.c in Sources */ = {isa = PBXBuildFile; fileRef = 67B83BE914F57EAB00AAAE4E /* lstring.c */; }; - 67B83C0B14F57EAB00AAAE4E /* lstrlib.c in Sources */ = {isa = PBXBuildFile; fileRef = 67B83BEB14F57EAB00AAAE4E /* lstrlib.c */; }; - 67B83C0C14F57EAB00AAAE4E /* ltable.c in Sources */ = {isa = PBXBuildFile; fileRef = 67B83BEC14F57EAB00AAAE4E /* ltable.c */; }; - 67B83C0D14F57EAB00AAAE4E /* ltablib.c in Sources */ = {isa = PBXBuildFile; fileRef = 67B83BEE14F57EAB00AAAE4E /* ltablib.c */; }; - 67B83C0E14F57EAB00AAAE4E /* ltm.c in Sources */ = {isa = PBXBuildFile; fileRef = 67B83BEF14F57EAB00AAAE4E /* ltm.c */; }; - 67B83C0F14F57EAB00AAAE4E /* lundump.c in Sources */ = {isa = PBXBuildFile; fileRef = 67B83BF414F57EAB00AAAE4E /* lundump.c */; }; - 67B83C1014F57EAB00AAAE4E /* lvm.c in Sources */ = {isa = PBXBuildFile; fileRef = 67B83BF614F57EAB00AAAE4E /* lvm.c */; }; - 67B83C1114F57EAB00AAAE4E /* lzio.c in Sources */ = {isa = PBXBuildFile; fileRef = 67B83BF814F57EAB00AAAE4E /* lzio.c */; }; - 67B83C1414F57ECA00AAAE4E /* b_bot.c in Sources */ = {isa = PBXBuildFile; fileRef = 67B83C1214F57ECA00AAAE4E /* b_bot.c */; }; - 67B83C2214F57EE600AAAE4E /* lua_baselib.c in Sources */ = {isa = PBXBuildFile; fileRef = 67B83C1514F57EE600AAAE4E /* lua_baselib.c */; }; - 67B83C2314F57EE600AAAE4E /* lua_consolelib.c in Sources */ = {isa = PBXBuildFile; fileRef = 67B83C1614F57EE600AAAE4E /* lua_consolelib.c */; }; - 67B83C2414F57EE600AAAE4E /* lua_hooklib.c in Sources */ = {isa = PBXBuildFile; fileRef = 67B83C1814F57EE600AAAE4E /* lua_hooklib.c */; }; - 67B83C2514F57EE600AAAE4E /* lua_infolib.c in Sources */ = {isa = PBXBuildFile; fileRef = 67B83C1914F57EE600AAAE4E /* lua_infolib.c */; }; - 67B83C2614F57EE600AAAE4E /* lua_maplib.c in Sources */ = {isa = PBXBuildFile; fileRef = 67B83C1B14F57EE600AAAE4E /* lua_maplib.c */; }; - 67B83C2714F57EE600AAAE4E /* lua_mathlib.c in Sources */ = {isa = PBXBuildFile; fileRef = 67B83C1C14F57EE600AAAE4E /* lua_mathlib.c */; }; - 67B83C2814F57EE600AAAE4E /* lua_mobjlib.c in Sources */ = {isa = PBXBuildFile; fileRef = 67B83C1D14F57EE600AAAE4E /* lua_mobjlib.c */; }; - 67B83C2914F57EE600AAAE4E /* lua_playerlib.c in Sources */ = {isa = PBXBuildFile; fileRef = 67B83C1E14F57EE600AAAE4E /* lua_playerlib.c */; }; - 67B83C2A14F57EE600AAAE4E /* lua_script.c in Sources */ = {isa = PBXBuildFile; fileRef = 67B83C1F14F57EE600AAAE4E /* lua_script.c */; }; - 67B83C2B14F57EE600AAAE4E /* lua_thinkerlib.c in Sources */ = {isa = PBXBuildFile; fileRef = 67B83C2114F57EE600AAAE4E /* lua_thinkerlib.c */; }; - 67B83C3314F57F1500AAAE4E /* m_cond.c in Sources */ = {isa = PBXBuildFile; fileRef = 67B83C2F14F57F1500AAAE4E /* m_cond.c */; }; - 8D11072B0486CEB800E47090 /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = 089C165CFE840E0CC02AAC07 /* InfoPlist.strings */; }; - 8D11072F0486CEB800E47090 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; -/* End PBXBuildFile section */ - -/* Begin PBXCopyFilesBuildPhase section */ - 002F39FD09D0883400EBEB88 /* Copy Frameworks into .app bundle */ = { - isa = PBXCopyFilesBuildPhase; - buildActionMask = 12; - dstPath = ""; - dstSubfolderSpec = 10; - files = ( - 1E32C42B0B6E6D6E0029E058 /* libpng.framework in Copy Frameworks into .app bundle */, - 1E66921D0B690C6B00B7313A /* SDL_mixer.framework in Copy Frameworks into .app bundle */, - 002F3A0009D0884600EBEB88 /* SDL.framework in Copy Frameworks into .app bundle */, - ); - name = "Copy Frameworks into .app bundle"; - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXCopyFilesBuildPhase section */ - -/* Begin PBXFileReference section */ - 002F39F909D0881F00EBEB88 /* SDL.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = SDL.framework; path = /Library/Frameworks/SDL.framework; sourceTree = ""; }; - 089C165DFE840E0CC02AAC07 /* English */ = {isa = PBXFileReference; fileEncoding = 10; lastKnownFileType = text.plist.strings; name = English; path = English.lproj/InfoPlist.strings; sourceTree = ""; }; - 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Cocoa.framework; path = /System/Library/Frameworks/Cocoa.framework; sourceTree = ""; }; - 1E32C4140B6E6D5D0029E058 /* libpng.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = libpng.framework; path = /Library/Frameworks/libpng.framework; sourceTree = ""; }; - 1E44AE440B67CBE800BAD059 /* music.dta */ = {isa = PBXFileReference; lastKnownFileType = text; name = music.dta; path = ../../../bin/Resources/music.dta; sourceTree = SOURCE_ROOT; }; - 1E44AE4B0B67CBE800BAD059 /* srb2.wad */ = {isa = PBXFileReference; lastKnownFileType = text; name = srb2.wad; path = ../../../bin/Resources/srb2.wad; sourceTree = SOURCE_ROOT; }; - 1E44AE600B67CC2B00BAD059 /* hw3dsdrv.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = hw3dsdrv.h; path = ../../hardware/hw3dsdrv.h; sourceTree = SOURCE_ROOT; }; - 1E44AE610B67CC2B00BAD059 /* hw_bsp.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = hw_bsp.c; path = ../../hardware/hw_bsp.c; sourceTree = SOURCE_ROOT; }; - 1E44AE620B67CC2B00BAD059 /* hw_defs.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = hw_defs.h; path = ../../hardware/hw_defs.h; sourceTree = SOURCE_ROOT; }; - 1E44AE630B67CC2B00BAD059 /* hw3sound.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = hw3sound.c; path = ../../hardware/hw3sound.c; sourceTree = SOURCE_ROOT; }; - 1E44AE640B67CC2B00BAD059 /* hw_cache.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = hw_cache.c; path = ../../hardware/hw_cache.c; sourceTree = SOURCE_ROOT; }; - 1E44AE650B67CC2B00BAD059 /* hw_dll.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = hw_dll.h; path = ../../hardware/hw_dll.h; sourceTree = SOURCE_ROOT; }; - 1E44AE660B67CC2B00BAD059 /* hw_drv.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = hw_drv.h; path = ../../hardware/hw_drv.h; sourceTree = SOURCE_ROOT; }; - 1E44AE670B67CC2B00BAD059 /* hw_glide.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = hw_glide.h; path = ../../hardware/hw_glide.h; sourceTree = SOURCE_ROOT; }; - 1E44AE680B67CC2B00BAD059 /* hw_light.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = hw_light.c; path = ../../hardware/hw_light.c; sourceTree = SOURCE_ROOT; }; - 1E44AE690B67CC2B00BAD059 /* hw_light.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = hw_light.h; path = ../../hardware/hw_light.h; sourceTree = SOURCE_ROOT; }; - 1E44AE6A0B67CC2B00BAD059 /* hw3sound.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = hw3sound.h; path = ../../hardware/hw3sound.h; sourceTree = SOURCE_ROOT; }; - 1E44AE6B0B67CC2B00BAD059 /* hw_data.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = hw_data.h; path = ../../hardware/hw_data.h; sourceTree = SOURCE_ROOT; }; - 1E44AE6C0B67CC2B00BAD059 /* hw_draw.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = hw_draw.c; path = ../../hardware/hw_draw.c; sourceTree = SOURCE_ROOT; }; - 1E44AE6D0B67CC2B00BAD059 /* hw_glob.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = hw_glob.h; path = ../../hardware/hw_glob.h; sourceTree = SOURCE_ROOT; }; - 1E44AE6E0B67CC2B00BAD059 /* hw_main.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = hw_main.c; path = ../../hardware/hw_main.c; sourceTree = SOURCE_ROOT; }; - 1E44AE6F0B67CC2B00BAD059 /* hw_main.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = hw_main.h; path = ../../hardware/hw_main.h; sourceTree = SOURCE_ROOT; }; - 1E44AE700B67CC2B00BAD059 /* hw_md2.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = hw_md2.c; path = ../../hardware/hw_md2.c; sourceTree = SOURCE_ROOT; }; - 1E44AE710B67CC2B00BAD059 /* hw_md2.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = hw_md2.h; path = ../../hardware/hw_md2.h; sourceTree = SOURCE_ROOT; }; - 1E44AE720B67CC2B00BAD059 /* hw_trick.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = hw_trick.c; path = ../../hardware/hw_trick.c; sourceTree = SOURCE_ROOT; }; - 1E44AE730B67CC2B00BAD059 /* hws_data.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = hws_data.h; path = ../../hardware/hws_data.h; sourceTree = SOURCE_ROOT; }; - 1E44AE8A0B67CC6000BAD059 /* asm_defs.inc */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.pascal; name = asm_defs.inc; path = ../../asm_defs.inc; sourceTree = SOURCE_ROOT; }; - 1E44AE8D0B67CC8400BAD059 /* d_clisrv.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = d_clisrv.c; path = ../../d_clisrv.c; sourceTree = SOURCE_ROOT; }; - 1E44AE8E0B67CC8400BAD059 /* d_clisrv.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = d_clisrv.h; path = ../../d_clisrv.h; sourceTree = SOURCE_ROOT; }; - 1E44AE8F0B67CC8400BAD059 /* d_event.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = d_event.h; path = ../../d_event.h; sourceTree = SOURCE_ROOT; }; - 1E44AE900B67CC8400BAD059 /* d_main.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = d_main.c; path = ../../d_main.c; sourceTree = SOURCE_ROOT; }; - 1E44AE910B67CC8500BAD059 /* d_net.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = d_net.c; path = ../../d_net.c; sourceTree = SOURCE_ROOT; }; - 1E44AE920B67CC8500BAD059 /* d_net.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = d_net.h; path = ../../d_net.h; sourceTree = SOURCE_ROOT; }; - 1E44AE930B67CC8500BAD059 /* d_netcmd.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = d_netcmd.h; path = ../../d_netcmd.h; sourceTree = SOURCE_ROOT; }; - 1E44AE940B67CC8500BAD059 /* d_netfil.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = d_netfil.c; path = ../../d_netfil.c; sourceTree = SOURCE_ROOT; }; - 1E44AE950B67CC8500BAD059 /* d_player.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = d_player.h; path = ../../d_player.h; sourceTree = SOURCE_ROOT; }; - 1E44AE960B67CC8500BAD059 /* d_think.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = d_think.h; path = ../../d_think.h; sourceTree = SOURCE_ROOT; }; - 1E44AE980B67CC8500BAD059 /* d_netcmd.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = d_netcmd.c; path = ../../d_netcmd.c; sourceTree = SOURCE_ROOT; }; - 1E44AE990B67CC8500BAD059 /* d_ticcmd.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = d_ticcmd.h; path = ../../d_ticcmd.h; sourceTree = SOURCE_ROOT; }; - 1E44AE9A0B67CC8500BAD059 /* d_main.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = d_main.h; path = ../../d_main.h; sourceTree = SOURCE_ROOT; }; - 1E44AE9B0B67CC8500BAD059 /* d_netfil.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = d_netfil.h; path = ../../d_netfil.h; sourceTree = SOURCE_ROOT; }; - 1E44AE9C0B67CC8500BAD059 /* dehacked.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = dehacked.c; path = ../../dehacked.c; sourceTree = SOURCE_ROOT; }; - 1E44AE9D0B67CC8500BAD059 /* dehacked.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = dehacked.h; path = ../../dehacked.h; sourceTree = SOURCE_ROOT; }; - 1E44AE9E0B67CC8500BAD059 /* doomdata.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = doomdata.h; path = ../../doomdata.h; sourceTree = SOURCE_ROOT; }; - 1E44AE9F0B67CC8500BAD059 /* doomdef.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = doomdef.h; path = ../../doomdef.h; sourceTree = SOURCE_ROOT; }; - 1E44AEA00B67CC8500BAD059 /* doomstat.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = doomstat.h; path = ../../doomstat.h; sourceTree = SOURCE_ROOT; }; - 1E44AEA10B67CC8500BAD059 /* doomtype.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = doomtype.h; path = ../../doomtype.h; sourceTree = SOURCE_ROOT; }; - 1E44AEBC0B67CCA900BAD059 /* f_wipe.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = f_wipe.c; path = ../../f_wipe.c; sourceTree = SOURCE_ROOT; }; - 1E44AEBD0B67CCA900BAD059 /* f_finale.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = f_finale.c; path = ../../f_finale.c; sourceTree = SOURCE_ROOT; }; - 1E44AEBE0B67CCA900BAD059 /* f_finale.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = f_finale.h; path = ../../f_finale.h; sourceTree = SOURCE_ROOT; }; - 1E44AEC30B67CCC600BAD059 /* g_game.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = g_game.c; path = ../../g_game.c; sourceTree = SOURCE_ROOT; }; - 1E44AEC40B67CCC600BAD059 /* g_game.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = g_game.h; path = ../../g_game.h; sourceTree = SOURCE_ROOT; }; - 1E44AEC50B67CCC600BAD059 /* g_input.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = g_input.h; path = ../../g_input.h; sourceTree = SOURCE_ROOT; }; - 1E44AEC60B67CCC600BAD059 /* g_state.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = g_state.h; path = ../../g_state.h; sourceTree = SOURCE_ROOT; }; - 1E44AEC70B67CCC600BAD059 /* g_input.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = g_input.c; path = ../../g_input.c; sourceTree = SOURCE_ROOT; }; - 1E44AECE0B67CCEE00BAD059 /* hu_stuff.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = hu_stuff.c; path = ../../hu_stuff.c; sourceTree = SOURCE_ROOT; }; - 1E44AECF0B67CCEE00BAD059 /* hu_stuff.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = hu_stuff.h; path = ../../hu_stuff.h; sourceTree = SOURCE_ROOT; }; - 1E44AED30B67CD1200BAD059 /* i_net.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = i_net.h; path = ../../i_net.h; sourceTree = SOURCE_ROOT; }; - 1E44AED40B67CD1200BAD059 /* i_sound.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = i_sound.h; path = ../../i_sound.h; sourceTree = SOURCE_ROOT; }; - 1E44AED50B67CD1200BAD059 /* i_tcp.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = i_tcp.c; path = ../../i_tcp.c; sourceTree = SOURCE_ROOT; }; - 1E44AED60B67CD1200BAD059 /* i_tcp.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = i_tcp.h; path = ../../i_tcp.h; sourceTree = SOURCE_ROOT; }; - 1E44AED70B67CD1200BAD059 /* i_system.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = i_system.h; path = ../../i_system.h; sourceTree = SOURCE_ROOT; }; - 1E44AED80B67CD1200BAD059 /* i_video.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = i_video.h; path = ../../i_video.h; sourceTree = SOURCE_ROOT; }; - 1E44AED90B67CD1300BAD059 /* i_joy.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = i_joy.h; path = ../../i_joy.h; sourceTree = SOURCE_ROOT; }; - 1E44AEE10B67CD2B00BAD059 /* am_map.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = am_map.c; path = ../../am_map.c; sourceTree = SOURCE_ROOT; }; - 1E44AEE20B67CD2B00BAD059 /* am_map.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = am_map.h; path = ../../am_map.h; sourceTree = SOURCE_ROOT; }; - 1E44AEE50B67CD3200BAD059 /* byteptr.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = byteptr.h; path = ../../byteptr.h; sourceTree = SOURCE_ROOT; }; - 1E44AEE70B67CD3F00BAD059 /* command.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = command.c; path = ../../command.c; sourceTree = SOURCE_ROOT; }; - 1E44AEE80B67CD3F00BAD059 /* command.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = command.h; path = ../../command.h; sourceTree = SOURCE_ROOT; }; - 1E44AEEB0B67CD4400BAD059 /* comptime.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = comptime.c; path = ../../comptime.c; sourceTree = SOURCE_ROOT; }; - 1E44AEED0B67CD5400BAD059 /* console.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = console.c; path = ../../console.c; sourceTree = SOURCE_ROOT; }; - 1E44AEEE0B67CD5400BAD059 /* console.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = console.h; path = ../../console.h; sourceTree = SOURCE_ROOT; }; - 1E44AEF10B67CD7F00BAD059 /* filesrch.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = filesrch.c; path = ../../filesrch.c; sourceTree = SOURCE_ROOT; }; - 1E44AEF20B67CD7F00BAD059 /* filesrch.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = filesrch.h; path = ../../filesrch.h; sourceTree = SOURCE_ROOT; }; - 1E44AEF50B67CD9F00BAD059 /* keys.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = keys.h; path = ../../keys.h; sourceTree = SOURCE_ROOT; }; - 1E44AEF80B67CDE900BAD059 /* m_argv.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = m_argv.c; path = ../../m_argv.c; sourceTree = SOURCE_ROOT; }; - 1E44AEF90B67CDE900BAD059 /* m_bbox.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = m_bbox.h; path = ../../m_bbox.h; sourceTree = SOURCE_ROOT; }; - 1E44AEFA0B67CDE900BAD059 /* m_argv.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = m_argv.h; path = ../../m_argv.h; sourceTree = SOURCE_ROOT; }; - 1E44AEFB0B67CDE900BAD059 /* m_cheat.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = m_cheat.c; path = ../../m_cheat.c; sourceTree = SOURCE_ROOT; }; - 1E44AEFC0B67CDE900BAD059 /* m_bbox.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = m_bbox.c; path = ../../m_bbox.c; sourceTree = SOURCE_ROOT; }; - 1E44AEFD0B67CDE900BAD059 /* m_cheat.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = m_cheat.h; path = ../../m_cheat.h; sourceTree = SOURCE_ROOT; }; - 1E44AEFE0B67CDE900BAD059 /* m_fixed.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = m_fixed.c; path = ../../m_fixed.c; sourceTree = SOURCE_ROOT; }; - 1E44AEFF0B67CDE900BAD059 /* m_fixed.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = m_fixed.h; path = ../../m_fixed.h; sourceTree = SOURCE_ROOT; }; - 1E44AF000B67CDE900BAD059 /* m_menu.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = m_menu.c; path = ../../m_menu.c; sourceTree = SOURCE_ROOT; }; - 1E44AF010B67CDE900BAD059 /* m_menu.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = m_menu.h; path = ../../m_menu.h; sourceTree = SOURCE_ROOT; }; - 1E44AF020B67CDE900BAD059 /* m_misc.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = m_misc.c; path = ../../m_misc.c; sourceTree = SOURCE_ROOT; }; - 1E44AF030B67CDE900BAD059 /* m_misc.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = m_misc.h; path = ../../m_misc.h; sourceTree = SOURCE_ROOT; }; - 1E44AF040B67CDE900BAD059 /* m_random.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = m_random.c; path = ../../m_random.c; sourceTree = SOURCE_ROOT; }; - 1E44AF050B67CDE900BAD059 /* m_random.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = m_random.h; path = ../../m_random.h; sourceTree = SOURCE_ROOT; }; - 1E44AF060B67CDE900BAD059 /* m_swap.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = m_swap.h; path = ../../m_swap.h; sourceTree = SOURCE_ROOT; }; - 1E44AF180B67CE2A00BAD059 /* info.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = info.c; path = ../../info.c; sourceTree = SOURCE_ROOT; }; - 1E44AF190B67CE2A00BAD059 /* info.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = info.h; path = ../../info.h; sourceTree = SOURCE_ROOT; }; - 1E44AF1C0B67CE3600BAD059 /* md5.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = md5.c; path = ../../md5.c; sourceTree = SOURCE_ROOT; }; - 1E44AF1D0B67CE3600BAD059 /* md5.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = md5.h; path = ../../md5.h; sourceTree = SOURCE_ROOT; }; - 1E44AF200B67CE4100BAD059 /* mserv.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = mserv.c; path = ../../mserv.c; sourceTree = SOURCE_ROOT; }; - 1E44AF210B67CE4100BAD059 /* mserv.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = mserv.h; path = ../../mserv.h; sourceTree = SOURCE_ROOT; }; - 1E44AF240B67CE5F00BAD059 /* p_enemy.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = p_enemy.c; path = ../../p_enemy.c; sourceTree = SOURCE_ROOT; }; - 1E44AF250B67CE5F00BAD059 /* p_inter.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = p_inter.c; path = ../../p_inter.c; sourceTree = SOURCE_ROOT; }; - 1E44AF260B67CE5F00BAD059 /* p_fab.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = p_fab.c; path = ../../p_fab.c; sourceTree = SOURCE_ROOT; }; - 1E44AF270B67CE5F00BAD059 /* p_lights.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = p_lights.c; path = ../../p_lights.c; sourceTree = SOURCE_ROOT; }; - 1E44AF280B67CE5F00BAD059 /* p_map.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = p_map.c; path = ../../p_map.c; sourceTree = SOURCE_ROOT; }; - 1E44AF290B67CE5F00BAD059 /* p_maputl.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = p_maputl.c; path = ../../p_maputl.c; sourceTree = SOURCE_ROOT; }; - 1E44AF2A0B67CE5F00BAD059 /* p_maputl.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = p_maputl.h; path = ../../p_maputl.h; sourceTree = SOURCE_ROOT; }; - 1E44AF2B0B67CE5F00BAD059 /* p_mobj.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = p_mobj.c; path = ../../p_mobj.c; sourceTree = SOURCE_ROOT; }; - 1E44AF2C0B67CE5F00BAD059 /* p_mobj.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = p_mobj.h; path = ../../p_mobj.h; sourceTree = SOURCE_ROOT; }; - 1E44AF2D0B67CE5F00BAD059 /* p_floor.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = p_floor.c; path = ../../p_floor.c; sourceTree = SOURCE_ROOT; }; - 1E44AF2E0B67CE5F00BAD059 /* p_local.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = p_local.h; path = ../../p_local.h; sourceTree = SOURCE_ROOT; }; - 1E44AF2F0B67CE5F00BAD059 /* p_pspr.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = p_pspr.h; path = ../../p_pspr.h; sourceTree = SOURCE_ROOT; }; - 1E44AF300B67CE5F00BAD059 /* p_saveg.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = p_saveg.c; path = ../../p_saveg.c; sourceTree = SOURCE_ROOT; }; - 1E44AF310B67CE5F00BAD059 /* p_saveg.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = p_saveg.h; path = ../../p_saveg.h; sourceTree = SOURCE_ROOT; }; - 1E44AF320B67CE5F00BAD059 /* p_setup.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = p_setup.c; path = ../../p_setup.c; sourceTree = SOURCE_ROOT; }; - 1E44AF330B67CE5F00BAD059 /* p_setup.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = p_setup.h; path = ../../p_setup.h; sourceTree = SOURCE_ROOT; }; - 1E44AF340B67CE5F00BAD059 /* p_sight.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = p_sight.c; path = ../../p_sight.c; sourceTree = SOURCE_ROOT; }; - 1E44AF350B67CE5F00BAD059 /* p_spec.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = p_spec.c; path = ../../p_spec.c; sourceTree = SOURCE_ROOT; }; - 1E44AF360B67CE5F00BAD059 /* p_spec.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = p_spec.h; path = ../../p_spec.h; sourceTree = SOURCE_ROOT; }; - 1E44AF370B67CE5F00BAD059 /* p_telept.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = p_telept.c; path = ../../p_telept.c; sourceTree = SOURCE_ROOT; }; - 1E44AF380B67CE5F00BAD059 /* p_tick.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = p_tick.c; path = ../../p_tick.c; sourceTree = SOURCE_ROOT; }; - 1E44AF390B67CE5F00BAD059 /* p_tick.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = p_tick.h; path = ../../p_tick.h; sourceTree = SOURCE_ROOT; }; - 1E44AF3A0B67CE5F00BAD059 /* p_user.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = p_user.c; path = ../../p_user.c; sourceTree = SOURCE_ROOT; }; - 1E44AF3B0B67CE5F00BAD059 /* p_ceilng.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = p_ceilng.c; path = ../../p_ceilng.c; sourceTree = SOURCE_ROOT; }; - 1E44AF550B67CEC100BAD059 /* r_bsp.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = r_bsp.c; path = ../../r_bsp.c; sourceTree = SOURCE_ROOT; }; - 1E44AF560B67CEC100BAD059 /* r_bsp.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = r_bsp.h; path = ../../r_bsp.h; sourceTree = SOURCE_ROOT; }; - 1E44AF570B67CEC100BAD059 /* r_defs.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = r_defs.h; path = ../../r_defs.h; sourceTree = SOURCE_ROOT; }; - 1E44AF580B67CEC100BAD059 /* r_data.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = r_data.c; path = ../../r_data.c; sourceTree = SOURCE_ROOT; }; - 1E44AF590B67CEC100BAD059 /* r_draw.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = r_draw.c; path = ../../r_draw.c; sourceTree = SOURCE_ROOT; }; - 1E44AF5A0B67CEC100BAD059 /* r_draw16.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = r_draw16.c; path = ../../r_draw16.c; sourceTree = SOURCE_ROOT; }; - 1E44AF5B0B67CEC100BAD059 /* r_draw8.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = r_draw8.c; path = ../../r_draw8.c; sourceTree = SOURCE_ROOT; }; - 1E44AF5C0B67CEC100BAD059 /* r_main.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = r_main.c; path = ../../r_main.c; sourceTree = SOURCE_ROOT; }; - 1E44AF5D0B67CEC100BAD059 /* r_main.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = r_main.h; path = ../../r_main.h; sourceTree = SOURCE_ROOT; }; - 1E44AF5E0B67CEC100BAD059 /* r_data.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = r_data.h; path = ../../r_data.h; sourceTree = SOURCE_ROOT; }; - 1E44AF5F0B67CEC100BAD059 /* r_draw.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = r_draw.h; path = ../../r_draw.h; sourceTree = SOURCE_ROOT; }; - 1E44AF600B67CEC100BAD059 /* r_local.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = r_local.h; path = ../../r_local.h; sourceTree = SOURCE_ROOT; }; - 1E44AF610B67CEC100BAD059 /* r_plane.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = r_plane.c; path = ../../r_plane.c; sourceTree = SOURCE_ROOT; }; - 1E44AF620B67CEC100BAD059 /* r_plane.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = r_plane.h; path = ../../r_plane.h; sourceTree = SOURCE_ROOT; }; - 1E44AF630B67CEC100BAD059 /* r_segs.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = r_segs.c; path = ../../r_segs.c; sourceTree = SOURCE_ROOT; }; - 1E44AF640B67CEC100BAD059 /* r_segs.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = r_segs.h; path = ../../r_segs.h; sourceTree = SOURCE_ROOT; }; - 1E44AF650B67CEC200BAD059 /* r_sky.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = r_sky.c; path = ../../r_sky.c; sourceTree = SOURCE_ROOT; }; - 1E44AF660B67CEC200BAD059 /* r_sky.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = r_sky.h; path = ../../r_sky.h; sourceTree = SOURCE_ROOT; }; - 1E44AF670B67CEC200BAD059 /* r_splats.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = r_splats.c; path = ../../r_splats.c; sourceTree = SOURCE_ROOT; }; - 1E44AF680B67CEC200BAD059 /* r_splats.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = r_splats.h; path = ../../r_splats.h; sourceTree = SOURCE_ROOT; }; - 1E44AF690B67CEC200BAD059 /* r_state.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = r_state.h; path = ../../r_state.h; sourceTree = SOURCE_ROOT; }; - 1E44AF6A0B67CEC200BAD059 /* r_things.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = r_things.c; path = ../../r_things.c; sourceTree = SOURCE_ROOT; }; - 1E44AF6B0B67CEC200BAD059 /* r_things.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = r_things.h; path = ../../r_things.h; sourceTree = SOURCE_ROOT; }; - 1E44AF850B67CEE000BAD059 /* s_sound.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = s_sound.c; path = ../../s_sound.c; sourceTree = SOURCE_ROOT; }; - 1E44AF860B67CEE000BAD059 /* s_sound.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = s_sound.h; path = ../../s_sound.h; sourceTree = SOURCE_ROOT; }; - 1E44AF890B67CEE900BAD059 /* screen.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = screen.c; path = ../../screen.c; sourceTree = SOURCE_ROOT; }; - 1E44AF8A0B67CEE900BAD059 /* screen.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = screen.h; path = ../../screen.h; sourceTree = SOURCE_ROOT; }; - 1E44AF8D0B67CEF000BAD059 /* sounds.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = sounds.c; path = ../../sounds.c; sourceTree = SOURCE_ROOT; }; - 1E44AF8E0B67CEF000BAD059 /* sounds.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = sounds.h; path = ../../sounds.h; sourceTree = SOURCE_ROOT; }; - 1E44AF910B67CEFF00BAD059 /* st_stuff.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = st_stuff.c; path = ../../st_stuff.c; sourceTree = SOURCE_ROOT; }; - 1E44AF920B67CEFF00BAD059 /* st_stuff.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = st_stuff.h; path = ../../st_stuff.h; sourceTree = SOURCE_ROOT; }; - 1E44AF950B67CF1300BAD059 /* string.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = string.c; path = ../../string.c; sourceTree = SOURCE_ROOT; }; - 1E44AF990B67CF2E00BAD059 /* tables.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = tables.c; path = ../../tables.c; sourceTree = SOURCE_ROOT; }; - 1E44AF9A0B67CF2E00BAD059 /* tables.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = tables.h; path = ../../tables.h; sourceTree = SOURCE_ROOT; }; - 1E44AF9D0B67CF3D00BAD059 /* tmap.nas */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; name = tmap.nas; path = ../../tmap.nas; sourceTree = SOURCE_ROOT; }; - 1E44AF9F0B67CF4900BAD059 /* tmap_mmx.nas */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; name = tmap_mmx.nas; path = ../../tmap_mmx.nas; sourceTree = SOURCE_ROOT; }; - 1E44AFA00B67CF4900BAD059 /* tmap_vc.nas */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; name = tmap_vc.nas; path = ../../tmap_vc.nas; sourceTree = SOURCE_ROOT; }; - 1E44AFA30B67CF5D00BAD059 /* v_video.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = v_video.c; path = ../../v_video.c; sourceTree = SOURCE_ROOT; }; - 1E44AFA40B67CF5D00BAD059 /* v_video.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = v_video.h; path = ../../v_video.h; sourceTree = SOURCE_ROOT; }; - 1E44AFA70B67CF6400BAD059 /* w_wad.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = w_wad.c; path = ../../w_wad.c; sourceTree = SOURCE_ROOT; }; - 1E44AFA80B67CF6400BAD059 /* w_wad.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = w_wad.h; path = ../../w_wad.h; sourceTree = SOURCE_ROOT; }; - 1E44AFAB0B67CF6F00BAD059 /* y_inter.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = y_inter.c; path = ../../y_inter.c; sourceTree = SOURCE_ROOT; }; - 1E44AFAC0B67CF6F00BAD059 /* y_inter.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = y_inter.h; path = ../../y_inter.h; sourceTree = SOURCE_ROOT; }; - 1E44AFAF0B67CF7A00BAD059 /* z_zone.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = z_zone.c; path = ../../z_zone.c; sourceTree = SOURCE_ROOT; }; - 1E44AFB00B67CF7A00BAD059 /* z_zone.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = z_zone.h; path = ../../z_zone.h; sourceTree = SOURCE_ROOT; }; - 1E44AFB40B67CFDC00BAD059 /* dosstr.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = dosstr.c; path = ../dosstr.c; sourceTree = SOURCE_ROOT; }; - 1E44AFB50B67CFDC00BAD059 /* endtxt.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = endtxt.c; path = ../endtxt.c; sourceTree = SOURCE_ROOT; }; - 1E44AFB60B67CFDC00BAD059 /* endtxt.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = endtxt.h; path = ../endtxt.h; sourceTree = SOURCE_ROOT; }; - 1E44AFB70B67CFDC00BAD059 /* hwsym_sdl.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = hwsym_sdl.c; path = ../hwsym_sdl.c; sourceTree = SOURCE_ROOT; }; - 1E44AFB80B67CFDC00BAD059 /* hwsym_sdl.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = hwsym_sdl.h; path = ../hwsym_sdl.h; sourceTree = SOURCE_ROOT; }; - 1E44AFB90B67CFDC00BAD059 /* i_cdmus.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = i_cdmus.c; path = ../i_cdmus.c; sourceTree = SOURCE_ROOT; }; - 1E44AFBA0B67CFDC00BAD059 /* i_main.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = i_main.c; path = ../i_main.c; sourceTree = SOURCE_ROOT; }; - 1E44AFBB0B67CFDC00BAD059 /* i_net.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = i_net.c; path = ../i_net.c; sourceTree = SOURCE_ROOT; }; - 1E44AFBD0B67CFDC00BAD059 /* i_system.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = i_system.c; path = ../i_system.c; sourceTree = SOURCE_ROOT; }; - 1E44AFBE0B67CFDC00BAD059 /* i_video.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = i_video.c; path = ../i_video.c; sourceTree = SOURCE_ROOT; }; - 1E44AFBF0B67CFDC00BAD059 /* IMG_xpm.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = IMG_xpm.c; path = ../IMG_xpm.c; sourceTree = SOURCE_ROOT; }; - 1E44AFC00B67CFDC00BAD059 /* ogl_sdl.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = ogl_sdl.c; path = ../ogl_sdl.c; sourceTree = SOURCE_ROOT; }; - 1E44AFC10B67CFDC00BAD059 /* ogl_sdl.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = ogl_sdl.h; path = ../ogl_sdl.h; sourceTree = SOURCE_ROOT; }; - 1E44AFC20B67CFDC00BAD059 /* SDL_icon.xpm */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; name = SDL_icon.xpm; path = ../SDL_icon.xpm; sourceTree = SOURCE_ROOT; }; - 1E44AFC30B67CFDC00BAD059 /* sdlmain.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = sdlmain.h; path = ../sdlmain.h; sourceTree = SOURCE_ROOT; }; - 1E44AFD50B67D03100BAD059 /* filters.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = filters.c; path = ../filter/filters.c; sourceTree = SOURCE_ROOT; }; - 1E44AFD60B67D03100BAD059 /* filters.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = filters.h; path = ../filter/filters.h; sourceTree = SOURCE_ROOT; }; - 1E44AFD70B67D03100BAD059 /* hq2x.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = hq2x.c; path = ../filter/hq2x.c; sourceTree = SOURCE_ROOT; }; - 1E44AFD80B67D03100BAD059 /* hq2x.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = hq2x.h; path = ../filter/hq2x.h; sourceTree = SOURCE_ROOT; }; - 1E44AFD90B67D03100BAD059 /* interp.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = interp.h; path = ../filter/interp.h; sourceTree = SOURCE_ROOT; }; - 1E44AFDA0B67D03100BAD059 /* lq2x.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = lq2x.c; path = ../filter/lq2x.c; sourceTree = SOURCE_ROOT; }; - 1E44AFDB0B67D03100BAD059 /* lq2x.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = lq2x.h; path = ../filter/lq2x.h; sourceTree = SOURCE_ROOT; }; - 1E44AFDC0B67D03100BAD059 /* main.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = main.c; path = ../filter/main.c; sourceTree = SOURCE_ROOT; }; - 1E44AFE60B67D06200BAD059 /* mac_alert.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = mac_alert.h; sourceTree = SOURCE_ROOT; }; - 1E44AFE70B67D06200BAD059 /* Srb2mac.icns */ = {isa = PBXFileReference; lastKnownFileType = image.icns; path = Srb2mac.icns; sourceTree = SOURCE_ROOT; }; - 1E44AFE80B67D06200BAD059 /* mac_alert.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; path = mac_alert.c; sourceTree = SOURCE_ROOT; }; - 1E44AFEC0B67D0AB00BAD059 /* r_opengl.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = r_opengl.c; path = ../../hardware/r_opengl/r_opengl.c; sourceTree = SOURCE_ROOT; }; - 1E44B0560B67D81E00BAD059 /* SDL_macosx_main.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = SDL_macosx_main.h; path = ../SDL_main/SDL_macosx_main.h; sourceTree = SOURCE_ROOT; }; - 1E44B0570B67D81E00BAD059 /* SDL_macosx_main.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; name = SDL_macosx_main.m; path = ../SDL_main/SDL_macosx_main.m; sourceTree = SOURCE_ROOT; }; - 1E44B2240B67EADE00BAD059 /* lzf.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = lzf.c; path = ../../lzf.c; sourceTree = SOURCE_ROOT; }; - 1E44B2250B67EADE00BAD059 /* lzf.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = lzf.h; path = ../../lzf.h; sourceTree = SOURCE_ROOT; }; - 1E66921B0B690C5B00B7313A /* SDL_mixer.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = SDL_mixer.framework; path = /Library/Frameworks/SDL_mixer.framework; sourceTree = ""; }; - 29B97324FDCFA39411CA2CEA /* AppKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AppKit.framework; path = /System/Library/Frameworks/AppKit.framework; sourceTree = ""; }; - 29B97325FDCFA39411CA2CEA /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = /System/Library/Frameworks/Foundation.framework; sourceTree = ""; }; - 67259DFA18D2687D00F02971 /* lua_hud.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = lua_hud.h; path = ../../lua_hud.h; sourceTree = SOURCE_ROOT; }; - 67259DFB18D2687D00F02971 /* lua_hudlib.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = lua_hudlib.c; path = ../../lua_hudlib.c; sourceTree = SOURCE_ROOT; }; - 67259DFC18D2687D00F02971 /* lua_skinlib.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = lua_skinlib.c; path = ../../lua_skinlib.c; sourceTree = SOURCE_ROOT; }; - 67259DFF18D268AE00F02971 /* m_anigif.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = m_anigif.c; path = ../../m_anigif.c; sourceTree = SOURCE_ROOT; }; - 67259E0018D268AE00F02971 /* m_anigif.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = m_anigif.h; path = ../../m_anigif.h; sourceTree = SOURCE_ROOT; }; - 67259E0218D268F600F02971 /* i_ttf.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = i_ttf.c; path = ../i_ttf.c; sourceTree = SOURCE_ROOT; }; - 67259E0318D268F600F02971 /* i_ttf.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = i_ttf.h; path = ../i_ttf.h; sourceTree = SOURCE_ROOT; }; - 67259E0418D268F600F02971 /* mixer_sound.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = mixer_sound.c; path = ../mixer_sound.c; sourceTree = SOURCE_ROOT; }; - 67259E0518D268F600F02971 /* sdl_sound.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = sdl_sound.c; path = ../sdl_sound.c; sourceTree = SOURCE_ROOT; }; - 67259E2B18D26D5700F02971 /* patch.dta */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = patch.dta; path = ../../../bin/Resources/patch.dta; sourceTree = SOURCE_ROOT; }; - 67259E2C18D26D5700F02971 /* rings.dta */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = rings.dta; path = ../../../bin/Resources/rings.dta; sourceTree = SOURCE_ROOT; }; - 67259E2D18D26D5700F02971 /* srb2.srb */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = srb2.srb; path = ../../../bin/Resources/srb2.srb; sourceTree = SOURCE_ROOT; }; - 6766C0AE11B057E50065F389 /* zones.dta */ = {isa = PBXFileReference; lastKnownFileType = text; name = zones.dta; path = ../../../bin/Resources/zones.dta; sourceTree = SOURCE_ROOT; }; - 676BB51C0E0DE06100C95963 /* m_queue.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = m_queue.c; path = ../../m_queue.c; sourceTree = SOURCE_ROOT; }; - 676BB51D0E0DE06100C95963 /* m_queue.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = m_queue.h; path = ../../m_queue.h; sourceTree = SOURCE_ROOT; }; - 676BB51E0E0DE06100C95963 /* p_polyobj.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = p_polyobj.c; path = ../../p_polyobj.c; sourceTree = SOURCE_ROOT; }; - 676BB51F0E0DE06100C95963 /* p_polyobj.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = p_polyobj.h; path = ../../p_polyobj.h; sourceTree = SOURCE_ROOT; }; - 67A1F91813FAD026009FA3E5 /* player.dta */ = {isa = PBXFileReference; lastKnownFileType = text; name = player.dta; path = ../../../bin/Resources/player.dta; sourceTree = SOURCE_ROOT; }; - 67B2071C1180FA8200E93654 /* vid_copy.s */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.asm; name = vid_copy.s; path = ../../vid_copy.s; sourceTree = SOURCE_ROOT; }; - 67B83BCB14F57EAB00AAAE4E /* lapi.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = lapi.c; path = ../../blua/lapi.c; sourceTree = SOURCE_ROOT; }; - 67B83BCC14F57EAB00AAAE4E /* lapi.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = lapi.h; path = ../../blua/lapi.h; sourceTree = SOURCE_ROOT; }; - 67B83BCD14F57EAB00AAAE4E /* lauxlib.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = lauxlib.c; path = ../../blua/lauxlib.c; sourceTree = SOURCE_ROOT; }; - 67B83BCE14F57EAB00AAAE4E /* lauxlib.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = lauxlib.h; path = ../../blua/lauxlib.h; sourceTree = SOURCE_ROOT; }; - 67B83BCF14F57EAB00AAAE4E /* lbaselib.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = lbaselib.c; path = ../../blua/lbaselib.c; sourceTree = SOURCE_ROOT; }; - 67B83BD014F57EAB00AAAE4E /* lcode.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = lcode.c; path = ../../blua/lcode.c; sourceTree = SOURCE_ROOT; }; - 67B83BD114F57EAB00AAAE4E /* lcode.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = lcode.h; path = ../../blua/lcode.h; sourceTree = SOURCE_ROOT; }; - 67B83BD214F57EAB00AAAE4E /* ldebug.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = ldebug.c; path = ../../blua/ldebug.c; sourceTree = SOURCE_ROOT; }; - 67B83BD314F57EAB00AAAE4E /* ldebug.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = ldebug.h; path = ../../blua/ldebug.h; sourceTree = SOURCE_ROOT; }; - 67B83BD414F57EAB00AAAE4E /* ldo.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = ldo.c; path = ../../blua/ldo.c; sourceTree = SOURCE_ROOT; }; - 67B83BD514F57EAB00AAAE4E /* ldo.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = ldo.h; path = ../../blua/ldo.h; sourceTree = SOURCE_ROOT; }; - 67B83BD614F57EAB00AAAE4E /* ldump.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = ldump.c; path = ../../blua/ldump.c; sourceTree = SOURCE_ROOT; }; - 67B83BD714F57EAB00AAAE4E /* lfunc.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = lfunc.c; path = ../../blua/lfunc.c; sourceTree = SOURCE_ROOT; }; - 67B83BD814F57EAB00AAAE4E /* lfunc.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = lfunc.h; path = ../../blua/lfunc.h; sourceTree = SOURCE_ROOT; }; - 67B83BD914F57EAB00AAAE4E /* lgc.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = lgc.c; path = ../../blua/lgc.c; sourceTree = SOURCE_ROOT; }; - 67B83BDA14F57EAB00AAAE4E /* lgc.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = lgc.h; path = ../../blua/lgc.h; sourceTree = SOURCE_ROOT; }; - 67B83BDB14F57EAB00AAAE4E /* linit.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = linit.c; path = ../../blua/linit.c; sourceTree = SOURCE_ROOT; }; - 67B83BDC14F57EAB00AAAE4E /* llex.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = llex.c; path = ../../blua/llex.c; sourceTree = SOURCE_ROOT; }; - 67B83BDD14F57EAB00AAAE4E /* llex.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = llex.h; path = ../../blua/llex.h; sourceTree = SOURCE_ROOT; }; - 67B83BDE14F57EAB00AAAE4E /* llimits.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = llimits.h; path = ../../blua/llimits.h; sourceTree = SOURCE_ROOT; }; - 67B83BDF14F57EAB00AAAE4E /* lmem.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = lmem.c; path = ../../blua/lmem.c; sourceTree = SOURCE_ROOT; }; - 67B83BE014F57EAB00AAAE4E /* lmem.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = lmem.h; path = ../../blua/lmem.h; sourceTree = SOURCE_ROOT; }; - 67B83BE114F57EAB00AAAE4E /* lobject.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = lobject.c; path = ../../blua/lobject.c; sourceTree = SOURCE_ROOT; }; - 67B83BE214F57EAB00AAAE4E /* lobject.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = lobject.h; path = ../../blua/lobject.h; sourceTree = SOURCE_ROOT; }; - 67B83BE314F57EAB00AAAE4E /* lopcodes.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = lopcodes.c; path = ../../blua/lopcodes.c; sourceTree = SOURCE_ROOT; }; - 67B83BE414F57EAB00AAAE4E /* lopcodes.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = lopcodes.h; path = ../../blua/lopcodes.h; sourceTree = SOURCE_ROOT; }; - 67B83BE514F57EAB00AAAE4E /* lparser.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = lparser.c; path = ../../blua/lparser.c; sourceTree = SOURCE_ROOT; }; - 67B83BE614F57EAB00AAAE4E /* lparser.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = lparser.h; path = ../../blua/lparser.h; sourceTree = SOURCE_ROOT; }; - 67B83BE714F57EAB00AAAE4E /* lstate.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = lstate.c; path = ../../blua/lstate.c; sourceTree = SOURCE_ROOT; }; - 67B83BE814F57EAB00AAAE4E /* lstate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = lstate.h; path = ../../blua/lstate.h; sourceTree = SOURCE_ROOT; }; - 67B83BE914F57EAB00AAAE4E /* lstring.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = lstring.c; path = ../../blua/lstring.c; sourceTree = SOURCE_ROOT; }; - 67B83BEA14F57EAB00AAAE4E /* lstring.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = lstring.h; path = ../../blua/lstring.h; sourceTree = SOURCE_ROOT; }; - 67B83BEB14F57EAB00AAAE4E /* lstrlib.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = lstrlib.c; path = ../../blua/lstrlib.c; sourceTree = SOURCE_ROOT; }; - 67B83BEC14F57EAB00AAAE4E /* ltable.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = ltable.c; path = ../../blua/ltable.c; sourceTree = SOURCE_ROOT; }; - 67B83BED14F57EAB00AAAE4E /* ltable.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = ltable.h; path = ../../blua/ltable.h; sourceTree = SOURCE_ROOT; }; - 67B83BEE14F57EAB00AAAE4E /* ltablib.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = ltablib.c; path = ../../blua/ltablib.c; sourceTree = SOURCE_ROOT; }; - 67B83BEF14F57EAB00AAAE4E /* ltm.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = ltm.c; path = ../../blua/ltm.c; sourceTree = SOURCE_ROOT; }; - 67B83BF014F57EAB00AAAE4E /* ltm.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = ltm.h; path = ../../blua/ltm.h; sourceTree = SOURCE_ROOT; }; - 67B83BF114F57EAB00AAAE4E /* lua.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = lua.h; path = ../../blua/lua.h; sourceTree = SOURCE_ROOT; }; - 67B83BF214F57EAB00AAAE4E /* luaconf.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = luaconf.h; path = ../../blua/luaconf.h; sourceTree = SOURCE_ROOT; }; - 67B83BF314F57EAB00AAAE4E /* lualib.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = lualib.h; path = ../../blua/lualib.h; sourceTree = SOURCE_ROOT; }; - 67B83BF414F57EAB00AAAE4E /* lundump.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = lundump.c; path = ../../blua/lundump.c; sourceTree = SOURCE_ROOT; }; - 67B83BF514F57EAB00AAAE4E /* lundump.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = lundump.h; path = ../../blua/lundump.h; sourceTree = SOURCE_ROOT; }; - 67B83BF614F57EAB00AAAE4E /* lvm.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = lvm.c; path = ../../blua/lvm.c; sourceTree = SOURCE_ROOT; }; - 67B83BF714F57EAB00AAAE4E /* lvm.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = lvm.h; path = ../../blua/lvm.h; sourceTree = SOURCE_ROOT; }; - 67B83BF814F57EAB00AAAE4E /* lzio.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = lzio.c; path = ../../blua/lzio.c; sourceTree = SOURCE_ROOT; }; - 67B83BF914F57EAB00AAAE4E /* lzio.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = lzio.h; path = ../../blua/lzio.h; sourceTree = SOURCE_ROOT; }; - 67B83C1214F57ECA00AAAE4E /* b_bot.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = b_bot.c; path = ../../b_bot.c; sourceTree = SOURCE_ROOT; }; - 67B83C1314F57ECA00AAAE4E /* b_bot.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = b_bot.h; path = ../../b_bot.h; sourceTree = SOURCE_ROOT; }; - 67B83C1514F57EE600AAAE4E /* lua_baselib.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = lua_baselib.c; path = ../../lua_baselib.c; sourceTree = SOURCE_ROOT; }; - 67B83C1614F57EE600AAAE4E /* lua_consolelib.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = lua_consolelib.c; path = ../../lua_consolelib.c; sourceTree = SOURCE_ROOT; }; - 67B83C1714F57EE600AAAE4E /* lua_hook.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = lua_hook.h; path = ../../lua_hook.h; sourceTree = SOURCE_ROOT; }; - 67B83C1814F57EE600AAAE4E /* lua_hooklib.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = lua_hooklib.c; path = ../../lua_hooklib.c; sourceTree = SOURCE_ROOT; }; - 67B83C1914F57EE600AAAE4E /* lua_infolib.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = lua_infolib.c; path = ../../lua_infolib.c; sourceTree = SOURCE_ROOT; }; - 67B83C1A14F57EE600AAAE4E /* lua_libs.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = lua_libs.h; path = ../../lua_libs.h; sourceTree = SOURCE_ROOT; }; - 67B83C1B14F57EE600AAAE4E /* lua_maplib.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = lua_maplib.c; path = ../../lua_maplib.c; sourceTree = SOURCE_ROOT; }; - 67B83C1C14F57EE600AAAE4E /* lua_mathlib.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = lua_mathlib.c; path = ../../lua_mathlib.c; sourceTree = SOURCE_ROOT; }; - 67B83C1D14F57EE600AAAE4E /* lua_mobjlib.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = lua_mobjlib.c; path = ../../lua_mobjlib.c; sourceTree = SOURCE_ROOT; }; - 67B83C1E14F57EE600AAAE4E /* lua_playerlib.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = lua_playerlib.c; path = ../../lua_playerlib.c; sourceTree = SOURCE_ROOT; }; - 67B83C1F14F57EE600AAAE4E /* lua_script.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = lua_script.c; path = ../../lua_script.c; sourceTree = SOURCE_ROOT; }; - 67B83C2014F57EE600AAAE4E /* lua_script.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = lua_script.h; path = ../../lua_script.h; sourceTree = SOURCE_ROOT; }; - 67B83C2114F57EE600AAAE4E /* lua_thinkerlib.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = lua_thinkerlib.c; path = ../../lua_thinkerlib.c; sourceTree = SOURCE_ROOT; }; - 67B83C2C14F57F1500AAAE4E /* fastcmp.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = fastcmp.h; path = ../../fastcmp.h; sourceTree = SOURCE_ROOT; }; - 67B83C2D14F57F1500AAAE4E /* i_addrinfo.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = i_addrinfo.c; path = ../../i_addrinfo.c; sourceTree = SOURCE_ROOT; }; - 67B83C2E14F57F1500AAAE4E /* i_addrinfo.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = i_addrinfo.h; path = ../../i_addrinfo.h; sourceTree = SOURCE_ROOT; }; - 67B83C2F14F57F1500AAAE4E /* m_cond.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = m_cond.c; path = ../../m_cond.c; sourceTree = SOURCE_ROOT; }; - 67B83C3014F57F1500AAAE4E /* m_cond.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = m_cond.h; path = ../../m_cond.h; sourceTree = SOURCE_ROOT; }; - 67B83C3114F57F1500AAAE4E /* m_dllist.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = m_dllist.h; path = ../../m_dllist.h; sourceTree = SOURCE_ROOT; }; - 8D1107310486CEB800E47090 /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist; path = Info.plist; sourceTree = ""; }; - 8D1107320486CEB800E47090 /* Srb2mac.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Srb2mac.app; sourceTree = BUILT_PRODUCTS_DIR; }; -/* End PBXFileReference section */ - -/* Begin PBXFrameworksBuildPhase section */ - 8D11072E0486CEB800E47090 /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - 002F39FA09D0881F00EBEB88 /* SDL.framework in Frameworks */, - 8D11072F0486CEB800E47090 /* Cocoa.framework in Frameworks */, - 1E66921C0B690C5B00B7313A /* SDL_mixer.framework in Frameworks */, - 1E32C4290B6E6D5D0029E058 /* libpng.framework in Frameworks */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXFrameworksBuildPhase section */ - -/* Begin PBXGroup section */ - 080E96DDFE201D6D7F000001 /* Classes */ = { - isa = PBXGroup; - children = ( - 1E44AE890B67CC4E00BAD059 /* A_Asm */, - 67B83BCA14F57DD400AAAE4E /* B_Bot */, - 67B83BC914F57D7F00AAAE4E /* BLUA */, - 1E44AE8C0B67CC6500BAD059 /* D_Doom */, - 1E44AEBB0B67CC9800BAD059 /* F_Frame */, - 1E44AEC20B67CCB500BAD059 /* G_Game */, - 1E44AECD0B67CCD200BAD059 /* H_Hud */, - 1E44AE5C0B67CC0F00BAD059 /* Hw_Hardware */, - 1E44AED20B67CCF600BAD059 /* I_Interface */, - 67B83BC814F57D6E00AAAE4E /* LUA */, - 1E44AEF70B67CDA900BAD059 /* M_Misc */, - 1E44AF160B67CDFB00BAD059 /* P_Play */, - 1E44AF540B67CE8C00BAD059 /* R_Render */, - 1E44AF830B67CEC900BAD059 /* S_Sound */, - 1E44AF170B67CE1000BAD059 /* W_Wad */, - ); - name = Classes; - sourceTree = ""; - }; - 1058C7A0FEA54F0111CA2CBB /* Linked Frameworks */ = { - isa = PBXGroup; - children = ( - 1E32C4140B6E6D5D0029E058 /* libpng.framework */, - 1E66921B0B690C5B00B7313A /* SDL_mixer.framework */, - 002F39F909D0881F00EBEB88 /* SDL.framework */, - 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */, - ); - name = "Linked Frameworks"; - sourceTree = ""; - }; - 1058C7A2FEA54F0111CA2CBB /* Other Frameworks */ = { - isa = PBXGroup; - children = ( - 29B97324FDCFA39411CA2CEA /* AppKit.framework */, - 29B97325FDCFA39411CA2CEA /* Foundation.framework */, - ); - name = "Other Frameworks"; - sourceTree = ""; - }; - 19C28FACFE9D520D11CA2CBB /* Products */ = { - isa = PBXGroup; - children = ( - 8D1107320486CEB800E47090 /* Srb2mac.app */, - ); - name = Products; - sourceTree = ""; - }; - 1E44AE5C0B67CC0F00BAD059 /* Hw_Hardware */ = { - isa = PBXGroup; - children = ( - 1E44AE600B67CC2B00BAD059 /* hw3dsdrv.h */, - 1E44AE610B67CC2B00BAD059 /* hw_bsp.c */, - 1E44AE620B67CC2B00BAD059 /* hw_defs.h */, - 1E44AE630B67CC2B00BAD059 /* hw3sound.c */, - 1E44AE640B67CC2B00BAD059 /* hw_cache.c */, - 1E44AE650B67CC2B00BAD059 /* hw_dll.h */, - 1E44AE660B67CC2B00BAD059 /* hw_drv.h */, - 1E44AE670B67CC2B00BAD059 /* hw_glide.h */, - 1E44AE680B67CC2B00BAD059 /* hw_light.c */, - 1E44AE690B67CC2B00BAD059 /* hw_light.h */, - 1E44AE6A0B67CC2B00BAD059 /* hw3sound.h */, - 1E44AE6B0B67CC2B00BAD059 /* hw_data.h */, - 1E44AE6C0B67CC2B00BAD059 /* hw_draw.c */, - 1E44AE6D0B67CC2B00BAD059 /* hw_glob.h */, - 1E44AE6E0B67CC2B00BAD059 /* hw_main.c */, - 1E44AE6F0B67CC2B00BAD059 /* hw_main.h */, - 1E44AE700B67CC2B00BAD059 /* hw_md2.c */, - 1E44AE710B67CC2B00BAD059 /* hw_md2.h */, - 1E44AE720B67CC2B00BAD059 /* hw_trick.c */, - 1E44AE730B67CC2B00BAD059 /* hws_data.h */, - ); - name = Hw_Hardware; - sourceTree = ""; - }; - 1E44AE890B67CC4E00BAD059 /* A_Asm */ = { - isa = PBXGroup; - children = ( - 67B2071C1180FA8200E93654 /* vid_copy.s */, - 1E44AE8A0B67CC6000BAD059 /* asm_defs.inc */, - 1E44AF9D0B67CF3D00BAD059 /* tmap.nas */, - 1E44AF9F0B67CF4900BAD059 /* tmap_mmx.nas */, - 1E44AFA00B67CF4900BAD059 /* tmap_vc.nas */, - ); - name = A_Asm; - sourceTree = ""; - }; - 1E44AE8C0B67CC6500BAD059 /* D_Doom */ = { - isa = PBXGroup; - children = ( - 1E44AEEB0B67CD4400BAD059 /* comptime.c */, - 1E44AE8D0B67CC8400BAD059 /* d_clisrv.c */, - 1E44AE8E0B67CC8400BAD059 /* d_clisrv.h */, - 1E44AE8F0B67CC8400BAD059 /* d_event.h */, - 1E44AE900B67CC8400BAD059 /* d_main.c */, - 1E44AE910B67CC8500BAD059 /* d_net.c */, - 1E44AE920B67CC8500BAD059 /* d_net.h */, - 1E44AE930B67CC8500BAD059 /* d_netcmd.h */, - 1E44AE940B67CC8500BAD059 /* d_netfil.c */, - 1E44AE950B67CC8500BAD059 /* d_player.h */, - 1E44AE960B67CC8500BAD059 /* d_think.h */, - 1E44AE980B67CC8500BAD059 /* d_netcmd.c */, - 1E44AE990B67CC8500BAD059 /* d_ticcmd.h */, - 1E44AE9A0B67CC8500BAD059 /* d_main.h */, - 1E44AE9B0B67CC8500BAD059 /* d_netfil.h */, - 1E44AE9C0B67CC8500BAD059 /* dehacked.c */, - 1E44AE9D0B67CC8500BAD059 /* dehacked.h */, - 1E44AE9E0B67CC8500BAD059 /* doomdata.h */, - 1E44AE9F0B67CC8500BAD059 /* doomdef.h */, - 1E44AEA00B67CC8500BAD059 /* doomstat.h */, - 1E44AEA10B67CC8500BAD059 /* doomtype.h */, - 1E44AFAF0B67CF7A00BAD059 /* z_zone.c */, - 1E44AFB00B67CF7A00BAD059 /* z_zone.h */, - ); - name = D_Doom; - sourceTree = ""; - }; - 1E44AEBB0B67CC9800BAD059 /* F_Frame */ = { - isa = PBXGroup; - children = ( - 1E44AEBC0B67CCA900BAD059 /* f_wipe.c */, - 1E44AEBD0B67CCA900BAD059 /* f_finale.c */, - 1E44AEBE0B67CCA900BAD059 /* f_finale.h */, - 1E44AFAB0B67CF6F00BAD059 /* y_inter.c */, - 1E44AFAC0B67CF6F00BAD059 /* y_inter.h */, - ); - name = F_Frame; - sourceTree = ""; - }; - 1E44AEC20B67CCB500BAD059 /* G_Game */ = { - isa = PBXGroup; - children = ( - 1E44AEC30B67CCC600BAD059 /* g_game.c */, - 1E44AEC40B67CCC600BAD059 /* g_game.h */, - 1E44AEC50B67CCC600BAD059 /* g_input.h */, - 1E44AEC60B67CCC600BAD059 /* g_state.h */, - 1E44AEC70B67CCC600BAD059 /* g_input.c */, - ); - name = G_Game; - sourceTree = ""; - }; - 1E44AECD0B67CCD200BAD059 /* H_Hud */ = { - isa = PBXGroup; - children = ( - 1E44AEE10B67CD2B00BAD059 /* am_map.c */, - 1E44AEE20B67CD2B00BAD059 /* am_map.h */, - 1E44AEE70B67CD3F00BAD059 /* command.c */, - 1E44AEE80B67CD3F00BAD059 /* command.h */, - 1E44AEED0B67CD5400BAD059 /* console.c */, - 1E44AEEE0B67CD5400BAD059 /* console.h */, - 1E44AECE0B67CCEE00BAD059 /* hu_stuff.c */, - 1E44AECF0B67CCEE00BAD059 /* hu_stuff.h */, - 1E44AF000B67CDE900BAD059 /* m_menu.c */, - 1E44AF010B67CDE900BAD059 /* m_menu.h */, - 1E44AF910B67CEFF00BAD059 /* st_stuff.c */, - 1E44AF920B67CEFF00BAD059 /* st_stuff.h */, - ); - name = H_Hud; - sourceTree = ""; - }; - 1E44AED20B67CCF600BAD059 /* I_Interface */ = { - isa = PBXGroup; - children = ( - 67259E0218D268F600F02971 /* i_ttf.c */, - 67259E0318D268F600F02971 /* i_ttf.h */, - 67259E0418D268F600F02971 /* mixer_sound.c */, - 67259E0518D268F600F02971 /* sdl_sound.c */, - 1E44AFB30B67CF8500BAD059 /* SDL */, - 67B83C2D14F57F1500AAAE4E /* i_addrinfo.c */, - 67B83C2E14F57F1500AAAE4E /* i_addrinfo.h */, - 1E44AEE50B67CD3200BAD059 /* byteptr.h */, - 1E44AEF10B67CD7F00BAD059 /* filesrch.c */, - 1E44AEF20B67CD7F00BAD059 /* filesrch.h */, - 1E44AED30B67CD1200BAD059 /* i_net.h */, - 1E44AED40B67CD1200BAD059 /* i_sound.h */, - 1E44AED50B67CD1200BAD059 /* i_tcp.c */, - 1E44AED60B67CD1200BAD059 /* i_tcp.h */, - 1E44AED70B67CD1200BAD059 /* i_system.h */, - 1E44AED80B67CD1200BAD059 /* i_video.h */, - 1E44AED90B67CD1300BAD059 /* i_joy.h */, - 1E44AEF50B67CD9F00BAD059 /* keys.h */, - 1E44AF200B67CE4100BAD059 /* mserv.c */, - 1E44AF210B67CE4100BAD059 /* mserv.h */, - ); - name = I_Interface; - sourceTree = ""; - }; - 1E44AEF70B67CDA900BAD059 /* M_Misc */ = { - isa = PBXGroup; - children = ( - 67259DFF18D268AE00F02971 /* m_anigif.c */, - 67259E0018D268AE00F02971 /* m_anigif.h */, - 1E44AEF80B67CDE900BAD059 /* m_argv.c */, - 1E44AEFA0B67CDE900BAD059 /* m_argv.h */, - 1E44AEFC0B67CDE900BAD059 /* m_bbox.c */, - 1E44AEF90B67CDE900BAD059 /* m_bbox.h */, - 1E44AEFB0B67CDE900BAD059 /* m_cheat.c */, - 1E44AEFD0B67CDE900BAD059 /* m_cheat.h */, - 67B83C2F14F57F1500AAAE4E /* m_cond.c */, - 67B83C3014F57F1500AAAE4E /* m_cond.h */, - 67B83C3114F57F1500AAAE4E /* m_dllist.h */, - 1E44AEFE0B67CDE900BAD059 /* m_fixed.c */, - 1E44AEFF0B67CDE900BAD059 /* m_fixed.h */, - 1E44AF020B67CDE900BAD059 /* m_misc.c */, - 1E44AF030B67CDE900BAD059 /* m_misc.h */, - 676BB51C0E0DE06100C95963 /* m_queue.c */, - 676BB51D0E0DE06100C95963 /* m_queue.h */, - 1E44AF040B67CDE900BAD059 /* m_random.c */, - 1E44AF050B67CDE900BAD059 /* m_random.h */, - 1E44AF060B67CDE900BAD059 /* m_swap.h */, - 1E44AF950B67CF1300BAD059 /* string.c */, - ); - name = M_Misc; - sourceTree = ""; - }; - 1E44AF160B67CDFB00BAD059 /* P_Play */ = { - isa = PBXGroup; - children = ( - 1E44AF180B67CE2A00BAD059 /* info.c */, - 1E44AF190B67CE2A00BAD059 /* info.h */, - 1E44AF3B0B67CE5F00BAD059 /* p_ceilng.c */, - 1E44AF240B67CE5F00BAD059 /* p_enemy.c */, - 1E44AF250B67CE5F00BAD059 /* p_inter.c */, - 1E44AF260B67CE5F00BAD059 /* p_fab.c */, - 1E44AF270B67CE5F00BAD059 /* p_lights.c */, - 1E44AF280B67CE5F00BAD059 /* p_map.c */, - 1E44AF290B67CE5F00BAD059 /* p_maputl.c */, - 1E44AF2A0B67CE5F00BAD059 /* p_maputl.h */, - 1E44AF2B0B67CE5F00BAD059 /* p_mobj.c */, - 1E44AF2C0B67CE5F00BAD059 /* p_mobj.h */, - 1E44AF2D0B67CE5F00BAD059 /* p_floor.c */, - 1E44AF2E0B67CE5F00BAD059 /* p_local.h */, - 676BB51E0E0DE06100C95963 /* p_polyobj.c */, - 676BB51F0E0DE06100C95963 /* p_polyobj.h */, - 1E44AF2F0B67CE5F00BAD059 /* p_pspr.h */, - 1E44AF300B67CE5F00BAD059 /* p_saveg.c */, - 1E44AF310B67CE5F00BAD059 /* p_saveg.h */, - 1E44AF320B67CE5F00BAD059 /* p_setup.c */, - 1E44AF330B67CE5F00BAD059 /* p_setup.h */, - 1E44AF340B67CE5F00BAD059 /* p_sight.c */, - 1E44AF350B67CE5F00BAD059 /* p_spec.c */, - 1E44AF360B67CE5F00BAD059 /* p_spec.h */, - 1E44AF370B67CE5F00BAD059 /* p_telept.c */, - 1E44AF380B67CE5F00BAD059 /* p_tick.c */, - 1E44AF390B67CE5F00BAD059 /* p_tick.h */, - 1E44AF3A0B67CE5F00BAD059 /* p_user.c */, - 1E44AF990B67CF2E00BAD059 /* tables.c */, - 1E44AF9A0B67CF2E00BAD059 /* tables.h */, - ); - name = P_Play; - sourceTree = ""; - }; - 1E44AF170B67CE1000BAD059 /* W_Wad */ = { - isa = PBXGroup; - children = ( - 1E44B2240B67EADE00BAD059 /* lzf.c */, - 1E44B2250B67EADE00BAD059 /* lzf.h */, - 1E44AF1C0B67CE3600BAD059 /* md5.c */, - 1E44AF1D0B67CE3600BAD059 /* md5.h */, - 1E44AFA70B67CF6400BAD059 /* w_wad.c */, - 1E44AFA80B67CF6400BAD059 /* w_wad.h */, - ); - name = W_Wad; - sourceTree = ""; - }; - 1E44AF540B67CE8C00BAD059 /* R_Render */ = { - isa = PBXGroup; - children = ( - 1E44AF550B67CEC100BAD059 /* r_bsp.c */, - 1E44AF560B67CEC100BAD059 /* r_bsp.h */, - 1E44AF570B67CEC100BAD059 /* r_defs.h */, - 1E44AF580B67CEC100BAD059 /* r_data.c */, - 1E44AF590B67CEC100BAD059 /* r_draw.c */, - 1E44AF5A0B67CEC100BAD059 /* r_draw16.c */, - 1E44AF5B0B67CEC100BAD059 /* r_draw8.c */, - 1E44AF5C0B67CEC100BAD059 /* r_main.c */, - 1E44AF5D0B67CEC100BAD059 /* r_main.h */, - 1E44AF5E0B67CEC100BAD059 /* r_data.h */, - 1E44AF5F0B67CEC100BAD059 /* r_draw.h */, - 1E44AF600B67CEC100BAD059 /* r_local.h */, - 1E44AF610B67CEC100BAD059 /* r_plane.c */, - 1E44AF620B67CEC100BAD059 /* r_plane.h */, - 1E44AF630B67CEC100BAD059 /* r_segs.c */, - 1E44AF640B67CEC100BAD059 /* r_segs.h */, - 1E44AF650B67CEC200BAD059 /* r_sky.c */, - 1E44AF660B67CEC200BAD059 /* r_sky.h */, - 1E44AF670B67CEC200BAD059 /* r_splats.c */, - 1E44AF680B67CEC200BAD059 /* r_splats.h */, - 1E44AF690B67CEC200BAD059 /* r_state.h */, - 1E44AF6A0B67CEC200BAD059 /* r_things.c */, - 1E44AF6B0B67CEC200BAD059 /* r_things.h */, - 1E44AF890B67CEE900BAD059 /* screen.c */, - 1E44AF8A0B67CEE900BAD059 /* screen.h */, - 1E44AFA30B67CF5D00BAD059 /* v_video.c */, - 1E44AFA40B67CF5D00BAD059 /* v_video.h */, - ); - name = R_Render; - sourceTree = ""; - }; - 1E44AF830B67CEC900BAD059 /* S_Sound */ = { - isa = PBXGroup; - children = ( - 1E44AF850B67CEE000BAD059 /* s_sound.c */, - 1E44AF860B67CEE000BAD059 /* s_sound.h */, - 1E44AF8D0B67CEF000BAD059 /* sounds.c */, - 1E44AF8E0B67CEF000BAD059 /* sounds.h */, - ); - name = S_Sound; - sourceTree = ""; - }; - 1E44AFB30B67CF8500BAD059 /* SDL */ = { - isa = PBXGroup; - children = ( - 1E44AFE50B67D04900BAD059 /* macosx */, - 1E44AFD40B67D03100BAD059 /* filter */, - 1E44AFB40B67CFDC00BAD059 /* dosstr.c */, - 1E44AFB50B67CFDC00BAD059 /* endtxt.c */, - 1E44AFB60B67CFDC00BAD059 /* endtxt.h */, - 1E44AFB70B67CFDC00BAD059 /* hwsym_sdl.c */, - 1E44AFB80B67CFDC00BAD059 /* hwsym_sdl.h */, - 1E44AFB90B67CFDC00BAD059 /* i_cdmus.c */, - 1E44AFBA0B67CFDC00BAD059 /* i_main.c */, - 1E44AFBB0B67CFDC00BAD059 /* i_net.c */, - 1E44AFBD0B67CFDC00BAD059 /* i_system.c */, - 1E44AFBE0B67CFDC00BAD059 /* i_video.c */, - 1E44AFBF0B67CFDC00BAD059 /* IMG_xpm.c */, - 1E44AFEC0B67D0AB00BAD059 /* r_opengl.c */, - 1E44AFC00B67CFDC00BAD059 /* ogl_sdl.c */, - 1E44AFC10B67CFDC00BAD059 /* ogl_sdl.h */, - 1E44AFC20B67CFDC00BAD059 /* SDL_icon.xpm */, - 1E44AFC30B67CFDC00BAD059 /* sdlmain.h */, - ); - name = SDL; - sourceTree = ""; - }; - 1E44AFD40B67D03100BAD059 /* filter */ = { - isa = PBXGroup; - children = ( - 1E44AFD50B67D03100BAD059 /* filters.c */, - 1E44AFD60B67D03100BAD059 /* filters.h */, - 1E44AFD70B67D03100BAD059 /* hq2x.c */, - 1E44AFD80B67D03100BAD059 /* hq2x.h */, - 1E44AFD90B67D03100BAD059 /* interp.h */, - 1E44AFDA0B67D03100BAD059 /* lq2x.c */, - 1E44AFDB0B67D03100BAD059 /* lq2x.h */, - 1E44AFDC0B67D03100BAD059 /* main.c */, - ); - name = filter; - path = ../filter; - sourceTree = SOURCE_ROOT; - }; - 1E44AFE50B67D04900BAD059 /* macosx */ = { - isa = PBXGroup; - children = ( - 1E44AFE60B67D06200BAD059 /* mac_alert.h */, - 1E44AFE70B67D06200BAD059 /* Srb2mac.icns */, - 1E44AFE80B67D06200BAD059 /* mac_alert.c */, - 1E44B0560B67D81E00BAD059 /* SDL_macosx_main.h */, - 1E44B0570B67D81E00BAD059 /* SDL_macosx_main.m */, - ); - name = macosx; - sourceTree = ""; - }; - 29B97314FDCFA39411CA2CEA /* Srb2mac */ = { - isa = PBXGroup; - children = ( - 080E96DDFE201D6D7F000001 /* Classes */, - 29B97315FDCFA39411CA2CEA /* Other Sources */, - 29B97317FDCFA39411CA2CEA /* Resources */, - 29B97323FDCFA39411CA2CEA /* Frameworks */, - 19C28FACFE9D520D11CA2CBB /* Products */, - ); - name = Srb2mac; - sourceTree = ""; - }; - 29B97315FDCFA39411CA2CEA /* Other Sources */ = { - isa = PBXGroup; - children = ( - ); - name = "Other Sources"; - sourceTree = ""; - }; - 29B97317FDCFA39411CA2CEA /* Resources */ = { - isa = PBXGroup; - children = ( - 67259E2B18D26D5700F02971 /* patch.dta */, - 67259E2C18D26D5700F02971 /* rings.dta */, - 67259E2D18D26D5700F02971 /* srb2.srb */, - 67A1F91813FAD026009FA3E5 /* player.dta */, - 6766C0AE11B057E50065F389 /* zones.dta */, - 1E44AE440B67CBE800BAD059 /* music.dta */, - 1E44AE4B0B67CBE800BAD059 /* srb2.wad */, - 8D1107310486CEB800E47090 /* Info.plist */, - 089C165CFE840E0CC02AAC07 /* InfoPlist.strings */, - ); - name = Resources; - sourceTree = ""; - }; - 29B97323FDCFA39411CA2CEA /* Frameworks */ = { - isa = PBXGroup; - children = ( - 1058C7A0FEA54F0111CA2CBB /* Linked Frameworks */, - 1058C7A2FEA54F0111CA2CBB /* Other Frameworks */, - ); - name = Frameworks; - sourceTree = ""; - }; - 67B83BC814F57D6E00AAAE4E /* LUA */ = { - isa = PBXGroup; - children = ( - 67259DFA18D2687D00F02971 /* lua_hud.h */, - 67259DFB18D2687D00F02971 /* lua_hudlib.c */, - 67259DFC18D2687D00F02971 /* lua_skinlib.c */, - 67B83C2C14F57F1500AAAE4E /* fastcmp.h */, - 67B83C1514F57EE600AAAE4E /* lua_baselib.c */, - 67B83C1614F57EE600AAAE4E /* lua_consolelib.c */, - 67B83C1714F57EE600AAAE4E /* lua_hook.h */, - 67B83C1814F57EE600AAAE4E /* lua_hooklib.c */, - 67B83C1914F57EE600AAAE4E /* lua_infolib.c */, - 67B83C1A14F57EE600AAAE4E /* lua_libs.h */, - 67B83C1B14F57EE600AAAE4E /* lua_maplib.c */, - 67B83C1C14F57EE600AAAE4E /* lua_mathlib.c */, - 67B83C1D14F57EE600AAAE4E /* lua_mobjlib.c */, - 67B83C1E14F57EE600AAAE4E /* lua_playerlib.c */, - 67B83C1F14F57EE600AAAE4E /* lua_script.c */, - 67B83C2014F57EE600AAAE4E /* lua_script.h */, - 67B83C2114F57EE600AAAE4E /* lua_thinkerlib.c */, - ); - name = LUA; - sourceTree = ""; - }; - 67B83BC914F57D7F00AAAE4E /* BLUA */ = { - isa = PBXGroup; - children = ( - 67B83BCB14F57EAB00AAAE4E /* lapi.c */, - 67B83BCC14F57EAB00AAAE4E /* lapi.h */, - 67B83BCD14F57EAB00AAAE4E /* lauxlib.c */, - 67B83BCE14F57EAB00AAAE4E /* lauxlib.h */, - 67B83BCF14F57EAB00AAAE4E /* lbaselib.c */, - 67B83BD014F57EAB00AAAE4E /* lcode.c */, - 67B83BD114F57EAB00AAAE4E /* lcode.h */, - 67B83BD214F57EAB00AAAE4E /* ldebug.c */, - 67B83BD314F57EAB00AAAE4E /* ldebug.h */, - 67B83BD414F57EAB00AAAE4E /* ldo.c */, - 67B83BD514F57EAB00AAAE4E /* ldo.h */, - 67B83BD614F57EAB00AAAE4E /* ldump.c */, - 67B83BD714F57EAB00AAAE4E /* lfunc.c */, - 67B83BD814F57EAB00AAAE4E /* lfunc.h */, - 67B83BD914F57EAB00AAAE4E /* lgc.c */, - 67B83BDA14F57EAB00AAAE4E /* lgc.h */, - 67B83BDB14F57EAB00AAAE4E /* linit.c */, - 67B83BDC14F57EAB00AAAE4E /* llex.c */, - 67B83BDD14F57EAB00AAAE4E /* llex.h */, - 67B83BDE14F57EAB00AAAE4E /* llimits.h */, - 67B83BDF14F57EAB00AAAE4E /* lmem.c */, - 67B83BE014F57EAB00AAAE4E /* lmem.h */, - 67B83BE114F57EAB00AAAE4E /* lobject.c */, - 67B83BE214F57EAB00AAAE4E /* lobject.h */, - 67B83BE314F57EAB00AAAE4E /* lopcodes.c */, - 67B83BE414F57EAB00AAAE4E /* lopcodes.h */, - 67B83BE514F57EAB00AAAE4E /* lparser.c */, - 67B83BE614F57EAB00AAAE4E /* lparser.h */, - 67B83BE714F57EAB00AAAE4E /* lstate.c */, - 67B83BE814F57EAB00AAAE4E /* lstate.h */, - 67B83BE914F57EAB00AAAE4E /* lstring.c */, - 67B83BEA14F57EAB00AAAE4E /* lstring.h */, - 67B83BEB14F57EAB00AAAE4E /* lstrlib.c */, - 67B83BEC14F57EAB00AAAE4E /* ltable.c */, - 67B83BED14F57EAB00AAAE4E /* ltable.h */, - 67B83BEE14F57EAB00AAAE4E /* ltablib.c */, - 67B83BEF14F57EAB00AAAE4E /* ltm.c */, - 67B83BF014F57EAB00AAAE4E /* ltm.h */, - 67B83BF114F57EAB00AAAE4E /* lua.h */, - 67B83BF214F57EAB00AAAE4E /* luaconf.h */, - 67B83BF314F57EAB00AAAE4E /* lualib.h */, - 67B83BF414F57EAB00AAAE4E /* lundump.c */, - 67B83BF514F57EAB00AAAE4E /* lundump.h */, - 67B83BF614F57EAB00AAAE4E /* lvm.c */, - 67B83BF714F57EAB00AAAE4E /* lvm.h */, - 67B83BF814F57EAB00AAAE4E /* lzio.c */, - 67B83BF914F57EAB00AAAE4E /* lzio.h */, - ); - name = BLUA; - sourceTree = ""; - }; - 67B83BCA14F57DD400AAAE4E /* B_Bot */ = { - isa = PBXGroup; - children = ( - 67B83C1214F57ECA00AAAE4E /* b_bot.c */, - 67B83C1314F57ECA00AAAE4E /* b_bot.h */, - ); - name = B_Bot; - sourceTree = ""; - }; -/* End PBXGroup section */ - -/* Begin PBXNativeTarget section */ - 8D1107260486CEB800E47090 /* Srb2mac */ = { - isa = PBXNativeTarget; - buildConfigurationList = C01FCF4A08A954540054247B /* Build configuration list for PBXNativeTarget "Srb2mac" */; - buildPhases = ( - 8D1107290486CEB800E47090 /* Resources */, - 677E4CB30E1765500034519D /* Get SCM Info */, - 8D11072C0486CEB800E47090 /* Sources */, - 8D11072E0486CEB800E47090 /* Frameworks */, - 002F39FD09D0883400EBEB88 /* Copy Frameworks into .app bundle */, - 679B708A102B872300AA9E4C /* Make DMG */, - ); - buildRules = ( - ); - dependencies = ( - ); - name = Srb2mac; - productInstallPath = "$(HOME)/Applications"; - productName = Srb2mac; - productReference = 8D1107320486CEB800E47090 /* Srb2mac.app */; - productType = "com.apple.product-type.application"; - }; -/* End PBXNativeTarget section */ - -/* Begin PBXProject section */ - 29B97313FDCFA39411CA2CEA /* Project object */ = { - isa = PBXProject; - buildConfigurationList = C01FCF4E08A954540054247B /* Build configuration list for PBXProject "Srb2mac" */; - compatibilityVersion = "Xcode 2.4"; - hasScannedForEncodings = 1; - mainGroup = 29B97314FDCFA39411CA2CEA /* Srb2mac */; - projectDirPath = ""; - projectRoot = ../../..; - targets = ( - 8D1107260486CEB800E47090 /* Srb2mac */, - ); - }; -/* End PBXProject section */ - -/* Begin PBXResourcesBuildPhase section */ - 8D1107290486CEB800E47090 /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 8D11072B0486CEB800E47090 /* InfoPlist.strings in Resources */, - 1E44AFEA0B67D06200BAD059 /* Srb2mac.icns in Resources */, - 67259E2E18D26D5700F02971 /* patch.dta in Resources */, - 67259E2F18D26D5700F02971 /* rings.dta in Resources */, - 67259E3018D26D5700F02971 /* srb2.srb in Resources */, - 67259E3218D26DD200F02971 /* music.dta in Resources */, - 67259E3318D26DD300F02971 /* player.dta in Resources */, - 67259E3518D26DD500F02971 /* zones.dta in Resources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXResourcesBuildPhase section */ - -/* Begin PBXShellScriptBuildPhase section */ - 677E4CB30E1765500034519D /* Get SCM Info */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - comments = "update the time and date stamps in src/comptime.c"; - files = ( - ); - inputPaths = ( - ); - name = "Get SCM Info"; - outputPaths = ( - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "PATH=\"/usr/local/bin:$PATH\" $SRCROOT/../../../comptime.sh $SRCROOT/../../"; - }; - 679B708A102B872300AA9E4C /* Make DMG */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - comments = "make DMG file for Release builds"; - files = ( - ); - inputPaths = ( - $BUILT_PRODUCTS_DIR/$WRAPPER_NAME, - ); - name = "Make DMG"; - outputPaths = ( - $BUILT_PRODUCTS_DIR/$TARGET_NAME.nodata.dmg, - $BUILT_PRODUCTS_DIR/$TARGET_NAME.dmg, - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "set -ex\n\n[ \"$ACTION\" = build ] || exit 0\n[ \"$CURRENT_VARIANT\" = \"normal\" ] || exit 0\n[ \"$BUILD_STYLE\" = \"Release\" ] || exit 0\n\ndir=\"$TEMP_FILES_DIR/$TARGET_NAME.disk\"\ndmg=\"$BUILT_PRODUCTS_DIR/$TARGET_NAME.dmg\"\ndmg_nodata=\"$BUILT_PRODUCTS_DIR/$TARGET_NAME.nodata.dmg\"\n\nrm -rf -- \"$dir\"\nmkdir \"$dir\"\ncp -R \"$BUILT_PRODUCTS_DIR/$WRAPPER_NAME\" \"$dir\"\nrm -f -- \"$dmg\"\nhdiutil create -ov -fs HFS+ -srcfolder \"$dir\" -volname \"$TARGET_NAME\" \"$dmg\"\nhdiutil internet-enable -yes \"$dmg\"\ncd \"$dir/$WRAPPER_NAME/Contents/Resources\"\nrm -f -- *.wad\nrm -f -- *.dta\nrm -f -- *.plr\nrm -f -- *.wpn\nrm -f -- *.srb2\ncd \"$OLDPWD\"\nrm -f -- \"$dmg_nodata\"\nhdiutil create -ov -fs HFS+ -srcfolder \"$dir\" -volname \"$TARGET_NAME Lite\" \"$dmg_nodata\"\nhdiutil internet-enable -yes \"$dmg_nodata\"\nrm -rf -- \"$dir\""; - }; -/* End PBXShellScriptBuildPhase section */ - -/* Begin PBXSourcesBuildPhase section */ - 8D11072C0486CEB800E47090 /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 1E44AE750B67CC2B00BAD059 /* hw_bsp.c in Sources */, - 1E44AE770B67CC2B00BAD059 /* hw3sound.c in Sources */, - 1E44AE780B67CC2B00BAD059 /* hw_cache.c in Sources */, - 1E44AE7C0B67CC2B00BAD059 /* hw_light.c in Sources */, - 1E44AE800B67CC2B00BAD059 /* hw_draw.c in Sources */, - 1E44AE820B67CC2B00BAD059 /* hw_main.c in Sources */, - 1E44AE840B67CC2B00BAD059 /* hw_md2.c in Sources */, - 1E44AE860B67CC2B00BAD059 /* hw_trick.c in Sources */, - 1E44AEA40B67CC8500BAD059 /* d_clisrv.c in Sources */, - 1E44AEA70B67CC8500BAD059 /* d_main.c in Sources */, - 1E44AEA80B67CC8500BAD059 /* d_net.c in Sources */, - 1E44AEAB0B67CC8500BAD059 /* d_netfil.c in Sources */, - 1E44AEAF0B67CC8500BAD059 /* d_netcmd.c in Sources */, - 1E44AEB30B67CC8500BAD059 /* dehacked.c in Sources */, - 1E44AEBF0B67CCA900BAD059 /* f_wipe.c in Sources */, - 1E44AEC00B67CCA900BAD059 /* f_finale.c in Sources */, - 1E44AEC80B67CCC600BAD059 /* g_game.c in Sources */, - 1E44AECC0B67CCC600BAD059 /* g_input.c in Sources */, - 1E44AED00B67CCEE00BAD059 /* hu_stuff.c in Sources */, - 1E44AEDC0B67CD1300BAD059 /* i_tcp.c in Sources */, - 1E44AEE30B67CD2B00BAD059 /* am_map.c in Sources */, - 1E44AEE90B67CD3F00BAD059 /* command.c in Sources */, - 1E44AEEC0B67CD4400BAD059 /* comptime.c in Sources */, - 1E44AEEF0B67CD5400BAD059 /* console.c in Sources */, - 1E44AEF30B67CD7F00BAD059 /* filesrch.c in Sources */, - 1E44AF070B67CDE900BAD059 /* m_argv.c in Sources */, - 1E44AF0A0B67CDE900BAD059 /* m_cheat.c in Sources */, - 1E44AF0B0B67CDE900BAD059 /* m_bbox.c in Sources */, - 1E44AF0D0B67CDE900BAD059 /* m_fixed.c in Sources */, - 1E44AF0F0B67CDE900BAD059 /* m_menu.c in Sources */, - 1E44AF110B67CDE900BAD059 /* m_misc.c in Sources */, - 1E44AF130B67CDE900BAD059 /* m_random.c in Sources */, - 1E44AF1A0B67CE2A00BAD059 /* info.c in Sources */, - 1E44AF1E0B67CE3600BAD059 /* md5.c in Sources */, - 1E44AF220B67CE4100BAD059 /* mserv.c in Sources */, - 1E44AF3C0B67CE5F00BAD059 /* p_enemy.c in Sources */, - 1E44AF3D0B67CE5F00BAD059 /* p_inter.c in Sources */, - 1E44AF3E0B67CE5F00BAD059 /* p_fab.c in Sources */, - 1E44AF3F0B67CE5F00BAD059 /* p_lights.c in Sources */, - 1E44AF400B67CE5F00BAD059 /* p_map.c in Sources */, - 1E44AF410B67CE5F00BAD059 /* p_maputl.c in Sources */, - 1E44AF430B67CE5F00BAD059 /* p_mobj.c in Sources */, - 1E44AF450B67CE5F00BAD059 /* p_floor.c in Sources */, - 1E44AF480B67CE5F00BAD059 /* p_saveg.c in Sources */, - 1E44AF4A0B67CE5F00BAD059 /* p_setup.c in Sources */, - 1E44AF4C0B67CE5F00BAD059 /* p_sight.c in Sources */, - 1E44AF4D0B67CE5F00BAD059 /* p_spec.c in Sources */, - 1E44AF4F0B67CE5F00BAD059 /* p_telept.c in Sources */, - 1E44AF500B67CE5F00BAD059 /* p_tick.c in Sources */, - 1E44AF520B67CE5F00BAD059 /* p_user.c in Sources */, - 1E44AF530B67CE5F00BAD059 /* p_ceilng.c in Sources */, - 1E44AF6C0B67CEC200BAD059 /* r_bsp.c in Sources */, - 1E44AF6F0B67CEC200BAD059 /* r_data.c in Sources */, - 1E44AF700B67CEC200BAD059 /* r_draw.c in Sources */, - 1E44AF730B67CEC200BAD059 /* r_main.c in Sources */, - 1E44AF780B67CEC200BAD059 /* r_plane.c in Sources */, - 1E44AF7A0B67CEC200BAD059 /* r_segs.c in Sources */, - 1E44AF7C0B67CEC200BAD059 /* r_sky.c in Sources */, - 1E44AF7E0B67CEC200BAD059 /* r_splats.c in Sources */, - 1E44AF810B67CEC200BAD059 /* r_things.c in Sources */, - 1E44AF870B67CEE000BAD059 /* s_sound.c in Sources */, - 1E44AF8B0B67CEE900BAD059 /* screen.c in Sources */, - 1E44AF8F0B67CEF000BAD059 /* sounds.c in Sources */, - 1E44AF930B67CEFF00BAD059 /* st_stuff.c in Sources */, - 1E44AF9B0B67CF2E00BAD059 /* tables.c in Sources */, - 1E44AFA50B67CF5D00BAD059 /* v_video.c in Sources */, - 1E44AFA90B67CF6400BAD059 /* w_wad.c in Sources */, - 1E44AFAD0B67CF6F00BAD059 /* y_inter.c in Sources */, - 1E44AFB10B67CF7A00BAD059 /* z_zone.c in Sources */, - 1E44AFC40B67CFDC00BAD059 /* dosstr.c in Sources */, - 1E44AFC50B67CFDC00BAD059 /* endtxt.c in Sources */, - 1E44AFC70B67CFDC00BAD059 /* hwsym_sdl.c in Sources */, - 1E44AFC90B67CFDC00BAD059 /* i_cdmus.c in Sources */, - 1E44AFCA0B67CFDC00BAD059 /* i_main.c in Sources */, - 1E44AFCB0B67CFDC00BAD059 /* i_net.c in Sources */, - 1E44AFCD0B67CFDC00BAD059 /* i_system.c in Sources */, - 1E44AFCE0B67CFDC00BAD059 /* i_video.c in Sources */, - 1E44AFD00B67CFDC00BAD059 /* ogl_sdl.c in Sources */, - 1E44AFEB0B67D06200BAD059 /* mac_alert.c in Sources */, - 1E44AFED0B67D0AB00BAD059 /* r_opengl.c in Sources */, - 1E44B0590B67D81E00BAD059 /* SDL_macosx_main.m in Sources */, - 1E308E720B71172D0015728C /* lzf.c in Sources */, - 676BB5200E0DE06100C95963 /* m_queue.c in Sources */, - 676BB5220E0DE06100C95963 /* p_polyobj.c in Sources */, - 67B83BFA14F57EAB00AAAE4E /* lapi.c in Sources */, - 67B83BFB14F57EAB00AAAE4E /* lauxlib.c in Sources */, - 67B83BFC14F57EAB00AAAE4E /* lbaselib.c in Sources */, - 67B83BFD14F57EAB00AAAE4E /* lcode.c in Sources */, - 67B83BFE14F57EAB00AAAE4E /* ldebug.c in Sources */, - 67B83BFF14F57EAB00AAAE4E /* ldo.c in Sources */, - 67B83C0014F57EAB00AAAE4E /* ldump.c in Sources */, - 67B83C0114F57EAB00AAAE4E /* lfunc.c in Sources */, - 67B83C0214F57EAB00AAAE4E /* lgc.c in Sources */, - 67B83C0314F57EAB00AAAE4E /* linit.c in Sources */, - 67B83C0414F57EAB00AAAE4E /* llex.c in Sources */, - 67B83C0514F57EAB00AAAE4E /* lmem.c in Sources */, - 67B83C0614F57EAB00AAAE4E /* lobject.c in Sources */, - 67B83C0714F57EAB00AAAE4E /* lopcodes.c in Sources */, - 67B83C0814F57EAB00AAAE4E /* lparser.c in Sources */, - 67B83C0914F57EAB00AAAE4E /* lstate.c in Sources */, - 67B83C0A14F57EAB00AAAE4E /* lstring.c in Sources */, - 67B83C0B14F57EAB00AAAE4E /* lstrlib.c in Sources */, - 67B83C0C14F57EAB00AAAE4E /* ltable.c in Sources */, - 67B83C0D14F57EAB00AAAE4E /* ltablib.c in Sources */, - 67B83C0E14F57EAB00AAAE4E /* ltm.c in Sources */, - 67B83C0F14F57EAB00AAAE4E /* lundump.c in Sources */, - 67B83C1014F57EAB00AAAE4E /* lvm.c in Sources */, - 67B83C1114F57EAB00AAAE4E /* lzio.c in Sources */, - 67B83C1414F57ECA00AAAE4E /* b_bot.c in Sources */, - 67B83C2214F57EE600AAAE4E /* lua_baselib.c in Sources */, - 67B83C2314F57EE600AAAE4E /* lua_consolelib.c in Sources */, - 67B83C2414F57EE600AAAE4E /* lua_hooklib.c in Sources */, - 67B83C2514F57EE600AAAE4E /* lua_infolib.c in Sources */, - 67B83C2614F57EE600AAAE4E /* lua_maplib.c in Sources */, - 67B83C2714F57EE600AAAE4E /* lua_mathlib.c in Sources */, - 67B83C2814F57EE600AAAE4E /* lua_mobjlib.c in Sources */, - 67B83C2914F57EE600AAAE4E /* lua_playerlib.c in Sources */, - 67B83C2A14F57EE600AAAE4E /* lua_script.c in Sources */, - 67B83C2B14F57EE600AAAE4E /* lua_thinkerlib.c in Sources */, - 67B83C3314F57F1500AAAE4E /* m_cond.c in Sources */, - 67259DFD18D2687D00F02971 /* lua_hudlib.c in Sources */, - 67259DFE18D2687D00F02971 /* lua_skinlib.c in Sources */, - 67259E0118D268AE00F02971 /* m_anigif.c in Sources */, - 67259E0618D268F700F02971 /* i_ttf.c in Sources */, - 67259E0718D268F700F02971 /* mixer_sound.c in Sources */, - 67259E0818D268F700F02971 /* sdl_sound.c in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXSourcesBuildPhase section */ - -/* Begin PBXVariantGroup section */ - 089C165CFE840E0CC02AAC07 /* InfoPlist.strings */ = { - isa = PBXVariantGroup; - children = ( - 089C165DFE840E0CC02AAC07 /* English */, - ); - name = InfoPlist.strings; - sourceTree = ""; - }; -/* End PBXVariantGroup section */ - -/* Begin XCBuildConfiguration section */ - C01FCF4B08A954540054247B /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - CURRENT_PROJECT_VERSION = 2.1.19; - GCC_PREPROCESSOR_DEFINITIONS = ( - "$(inherited)", - NORMALSRB2, - ); - PRODUCT_NAME = Srb2mac; - }; - name = Debug; - }; - C01FCF4C08A954540054247B /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - CURRENT_PROJECT_VERSION = 2.1.19; - GCC_ENABLE_FIX_AND_CONTINUE = NO; - GCC_GENERATE_DEBUGGING_SYMBOLS = NO; - GCC_PREPROCESSOR_DEFINITIONS = ( - "$(inherited)", - NORMALSRB2, - ); - PRODUCT_NAME = Srb2mac; - }; - name = Release; - }; - C01FCF4F08A954540054247B /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - ARCHS = ( - i386, - ppc, - ); - COPY_PHASE_STRIP = NO; - CURRENT_PROJECT_VERSION = 0.0.0; - DEBUG_INFORMATION_FORMAT = dwarf; - DSTROOT = "$(HOME)/Applications"; - FRAMEWORK_SEARCH_PATHS = ( - "$(HOME)/Library/Frameworks", - /Library/Frameworks, - "$(FRAMEWORK_SEARCH_PATHS)", - ); - GCC_ENABLE_CPP_EXCEPTIONS = NO; - GCC_ENABLE_CPP_RTTI = NO; - GCC_ENABLE_FIX_AND_CONTINUE = YES; - GCC_ENABLE_OBJC_EXCEPTIONS = NO; - GCC_ENABLE_PASCAL_STRINGS = NO; - GCC_FAST_OBJC_DISPATCH = NO; - "GCC_MODEL_TUNING[arch=ppc]" = G3; - GCC_OPTIMIZATION_LEVEL = 0; - GCC_PREPROCESSOR_DEFINITIONS = ( - MAC_ALERT, - SDLMAIN, - HAVE_SDL, - HAVE_MIXER, - HAVE_PNG, - HAVE_BLUA, - LUA_USE_POSIX, - COMPVERSION, - ); - GCC_THREADSAFE_STATICS = NO; - GCC_TREAT_IMPLICIT_FUNCTION_DECLARATIONS_AS_ERRORS = YES; - GCC_TREAT_NONCONFORMANT_CODE_ERRORS_AS_WARNINGS = YES; - GCC_TREAT_WARNINGS_AS_ERRORS = YES; - GCC_VERSION_i386 = 4.0; - GCC_VERSION_ppc0 = 3.3; - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_GLOBAL_CONSTRUCTORS = YES; - GCC_WARN_ABOUT_MISSING_FIELD_INITIALIZERS = YES; - GCC_WARN_ABOUT_MISSING_NEWLINE = YES; - GCC_WARN_ABOUT_MISSING_PROTOTYPES = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES; - GCC_WARN_ALLOW_INCOMPLETE_PROTOCOL = YES; - GCC_WARN_CHECK_SWITCH_STATEMENTS = YES; - GCC_WARN_EFFECTIVE_CPLUSPLUS_VIOLATIONS = YES; - GCC_WARN_FOUR_CHARACTER_CONSTANTS = YES; - GCC_WARN_HIDDEN_VIRTUAL_FUNCTIONS = YES; - GCC_WARN_INHIBIT_ALL_WARNINGS = NO; - GCC_WARN_INITIALIZER_NOT_FULLY_BRACKETED = YES; - GCC_WARN_MISSING_PARENTHESES = YES; - GCC_WARN_MULTIPLE_DEFINITION_TYPES_FOR_SELECTOR = NO; - GCC_WARN_NON_VIRTUAL_DESTRUCTOR = YES; - GCC_WARN_PEDANTIC = NO; - GCC_WARN_PROTOTYPE_CONVERSION = NO; - GCC_WARN_SHADOW = NO; - GCC_WARN_SIGN_COMPARE = YES; - GCC_WARN_STRICT_SELECTOR_MATCH = YES; - GCC_WARN_TYPECHECK_CALLS_TO_PRINTF = YES; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = NO; - GCC_WARN_UNKNOWN_PRAGMAS = YES; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_LABEL = YES; - GCC_WARN_UNUSED_PARAMETER = YES; - GCC_WARN_UNUSED_VALUE = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - GGG_MODEL_TUNING_ppc = G3; - HEADER_SEARCH_PATHS = ( - "$(HOME)/Library/Frameworks/SDL.framework/Headers", - /Library/Frameworks/SDL.framework/Headers, - "$(HOME)/Library/Frameworks/SDL_mixer.framework/Headers", - /Library/Frameworks/SDL_mixer.framework/Headers, - "$(HOME)/Library/Frameworks/libz.framework/Headers", - /Library/Frameworks/libz.framework/Headers, - "$(HOME)/Library/Frameworks/libpng.framework/Headers", - /Library/Frameworks/libpng.framework/Headers, - "$(HEADER_SEARCH_PATHS)", - ); - INFOPLIST_FILE = Info.plist; - MACH_O_TYPE = mh_execute; - MACOSX_DEPLOYMENT_TARGET = 10.4; - "MACOSX_DEPLOYMENT_TARGET[arch=i386]" = 10.4; - "MACOSX_DEPLOYMENT_TARGET[arch=ppc64]" = 10.5; - "MACOSX_DEPLOYMENT_TARGET[arch=ppc]" = 10.2; - "MACOSX_DEPLOYMENT_TARGET[arch=x86_64]" = 10.5; - MACOSX_DEPLOYMENT_TARGET_i386 = 10.4; - MACOSX_DEPLOYMENT_TARGET_ppc = 10.2; - OBJROOT = "$(inherited)/$(PRODUCT_NAME)/$(CURRENT_PROJECT_VERSION)"; - OTHER_CFLAGS_normal = "-D_DEBUG -DPARANOIA -DRANGECHECK"; - PREBINDING = NO; - PRECOMPS_INCLUDE_HEADERS_FROM_BUILT_PRODUCTS_DIR = NO; - PRODUCT_NAME = SRB2dummy; - SDKROOT = "$(DEVELOPER_SDK_DIR)/MacOSX10.4u.sdk"; - "SDKROOT[arch=i386]" = macosx10.4; - "SDKROOT[arch=ppc]" = macosx10.3.9; - SDKROOT_i386 = "$(DEVELOPER_SDK_DIR)/MacOSX10.4u.sdk"; - SDKROOT_ppc = "$(DEVELOPER_SDK_DIR)/MacOSX10.3.9.sdk"; - STRIP_INSTALLED_PRODUCT = NO; - SYMROOT = "$(inherited)/$(PRODUCT_NAME)/$(CURRENT_PROJECT_VERSION)"; - WARNING_CFLAGS = ( - "-Wall", - "-W", - "-Wno-undef", - "-Wpointer-arith", - "-Wbad-function-cast", - "-Wno-cast-qual", - "-Wcast-align", - "-Wwrite-strings", - "-Waggregate-return", - "-Wmissing-prototypes", - "-Wmissing-declarations", - "-Wno-missing-noreturn", - "-Wnested-externs", - "-Winline", - ); - WRAPPER_EXTENSION = app; - }; - name = Debug; - }; - C01FCF5008A954540054247B /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - ARCHS = ( - i386, - ppc, - ); - COPY_PHASE_STRIP = NO; - CURRENT_PROJECT_VERSION = 0.0.0; - DSTROOT = "$(HOME)/Applications"; - FRAMEWORK_SEARCH_PATHS = ( - "$(HOME)/Library/Frameworks", - /Library/Frameworks, - "$(FRAMEWORK_SEARCH_PATHS)", - ); - GCC_ENABLE_CPP_EXCEPTIONS = NO; - GCC_ENABLE_CPP_RTTI = NO; - GCC_ENABLE_OBJC_EXCEPTIONS = NO; - GCC_ENABLE_PASCAL_STRINGS = NO; - GCC_FAST_OBJC_DISPATCH = NO; - GCC_GENERATE_DEBUGGING_SYMBOLS = NO; - "GCC_MODEL_TUNING[arch=ppc]" = G3; - GCC_OPTIMIZATION_LEVEL = 2; - GCC_PREPROCESSOR_DEFINITIONS = ( - MAC_ALERT, - SDLMAIN, - HAVE_SDL, - HAVE_MIXER, - HAVE_PNG, - HAVE_BLUA, - LUA_USE_POSIX, - COMPVERSION, - ); - GCC_THREADSAFE_STATICS = NO; - GCC_TREAT_IMPLICIT_FUNCTION_DECLARATIONS_AS_ERRORS = YES; - GCC_TREAT_NONCONFORMANT_CODE_ERRORS_AS_WARNINGS = YES; - GCC_TREAT_WARNINGS_AS_ERRORS = YES; - GCC_VERSION_i386 = 4.0; - GCC_VERSION_ppc0 = 3.3; - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_GLOBAL_CONSTRUCTORS = YES; - GCC_WARN_ABOUT_MISSING_FIELD_INITIALIZERS = YES; - GCC_WARN_ABOUT_MISSING_NEWLINE = YES; - GCC_WARN_ABOUT_MISSING_PROTOTYPES = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES; - GCC_WARN_ALLOW_INCOMPLETE_PROTOCOL = YES; - GCC_WARN_CHECK_SWITCH_STATEMENTS = YES; - GCC_WARN_EFFECTIVE_CPLUSPLUS_VIOLATIONS = YES; - GCC_WARN_FOUR_CHARACTER_CONSTANTS = YES; - GCC_WARN_HIDDEN_VIRTUAL_FUNCTIONS = YES; - GCC_WARN_INHIBIT_ALL_WARNINGS = NO; - GCC_WARN_INITIALIZER_NOT_FULLY_BRACKETED = YES; - GCC_WARN_MISSING_PARENTHESES = YES; - GCC_WARN_MULTIPLE_DEFINITION_TYPES_FOR_SELECTOR = NO; - GCC_WARN_NON_VIRTUAL_DESTRUCTOR = YES; - GCC_WARN_PEDANTIC = NO; - GCC_WARN_PROTOTYPE_CONVERSION = NO; - GCC_WARN_SHADOW = NO; - GCC_WARN_SIGN_COMPARE = YES; - GCC_WARN_STRICT_SELECTOR_MATCH = YES; - GCC_WARN_TYPECHECK_CALLS_TO_PRINTF = YES; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES; - GCC_WARN_UNKNOWN_PRAGMAS = YES; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_LABEL = YES; - GCC_WARN_UNUSED_PARAMETER = YES; - GCC_WARN_UNUSED_VALUE = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - GGG_MODEL_TUNING_ppc = G3; - HEADER_SEARCH_PATHS = ( - "$(HOME)/Library/Frameworks/SDL.framework/Headers", - /Library/Frameworks/SDL.framework/Headers, - "$(HOME)/Library/Frameworks/SDL_mixer.framework/Headers", - /Library/Frameworks/SDL_mixer.framework/Headers, - "$(HOME)/Library/Frameworks/libz.framework/Headers", - /Library/Frameworks/libz.framework/Headers, - "$(HOME)/Library/Frameworks/libpng.framework/Headers", - /Library/Frameworks/libpng.framework/Headers, - "$(HEADER_SEARCH_PATHS)", - ); - INFOPLIST_FILE = Info.plist; - MACH_O_TYPE = mh_execute; - MACOSX_DEPLOYMENT_TARGET = 10.4; - "MACOSX_DEPLOYMENT_TARGET[arch=i386]" = 10.4; - "MACOSX_DEPLOYMENT_TARGET[arch=ppc64]" = 10.5; - "MACOSX_DEPLOYMENT_TARGET[arch=ppc]" = 10.2; - "MACOSX_DEPLOYMENT_TARGET[arch=x86_64]" = 10.5; - MACOSX_DEPLOYMENT_TARGET_i386 = 10.4; - MACOSX_DEPLOYMENT_TARGET_ppc = 10.2; - OBJROOT = "$(inherited)/$(PRODUCT_NAME)/$(CURRENT_PROJECT_VERSION)"; - OTHER_CFLAGS_normal = "-DNDEBUG"; - PREBINDING = NO; - PRECOMPS_INCLUDE_HEADERS_FROM_BUILT_PRODUCTS_DIR = NO; - PRODUCT_NAME = SRB2dummy; - SDKROOT = "$(DEVELOPER_SDK_DIR)/MacOSX10.4u.sdk"; - "SDKROOT[arch=i386]" = macosx10.4; - "SDKROOT[arch=ppc]" = macosx10.3.9; - SDKROOT_i386 = "$(DEVELOPER_SDK_DIR)/MacOSX10.4u.sdk"; - SDKROOT_ppc = "$(DEVELOPER_SDK_DIR)/MacOSX10.3.9.sdk"; - STRIP_INSTALLED_PRODUCT = NO; - SYMROOT = "$(inherited)/$(PRODUCT_NAME)/$(CURRENT_PROJECT_VERSION)"; - WARNING_CFLAGS = ( - "-Wall", - "-W", - "-Wno-undef", - "-Wpointer-arith", - "-Wbad-function-cast", - "-Wno-cast-qual", - "-Wcast-align", - "-Wwrite-strings", - "-Waggregate-return", - "-Wmissing-prototypes", - "-Wmissing-declarations", - "-Wno-missing-noreturn", - "-Wnested-externs", - "-Winline", - "-Wno-aggregate-return", - ); - WRAPPER_EXTENSION = app; - }; - name = Release; - }; -/* End XCBuildConfiguration section */ - -/* Begin XCConfigurationList section */ - C01FCF4A08A954540054247B /* Build configuration list for PBXNativeTarget "Srb2mac" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - C01FCF4B08A954540054247B /* Debug */, - C01FCF4C08A954540054247B /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Debug; - }; - C01FCF4E08A954540054247B /* Build configuration list for PBXProject "Srb2mac" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - C01FCF4F08A954540054247B /* Debug */, - C01FCF5008A954540054247B /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Debug; - }; -/* End XCConfigurationList section */ - }; - rootObject = 29B97313FDCFA39411CA2CEA /* Project object */; -} diff --git a/src/sdl12/macosx/mac_alert.c b/src/sdl12/macosx/mac_alert.c deleted file mode 100644 index 455e36509..000000000 --- a/src/sdl12/macosx/mac_alert.c +++ /dev/null @@ -1,45 +0,0 @@ -// Emacs style mode select -*- C++ -*- -//----------------------------------------------------------------------------- -// -// Copyright (C) 1993-1996 by id Software, Inc. -// Portions Copyright (C) 1998-2000 by DooM Legacy Team. -// -// 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 2 -// 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. -//----------------------------------------------------------------------------- -/// \file -/// \brief Graphical Alerts for MacOSX -/// -/// Shows alerts, since we can't just print these to the screen when -/// launched graphically on a mac. - -#ifdef __APPLE_CC__ - -#include "mac_alert.h" -#include - -int MacShowAlert(const char *title, const char *message, const char *button1, const char *button2, const char *button3) -{ - CFOptionFlags results; - - CFUserNotificationDisplayAlert(0, - kCFUserNotificationStopAlertLevel | kCFUserNotificationNoDefaultButtonFlag, - NULL, NULL, NULL, - CFStringCreateWithCString(NULL, title, kCFStringEncodingASCII), - CFStringCreateWithCString(NULL, message, kCFStringEncodingASCII), - button1 != NULL ? CFStringCreateWithCString(NULL, button1, kCFStringEncodingASCII) : NULL, - button2 != NULL ? CFStringCreateWithCString(NULL, button2, kCFStringEncodingASCII) : NULL, - button3 != NULL ? CFStringCreateWithCString(NULL, button3, kCFStringEncodingASCII) : NULL, - &results); - - return (int)results; -} - -#endif diff --git a/src/sdl12/macosx/mac_alert.h b/src/sdl12/macosx/mac_alert.h deleted file mode 100644 index 82a28d120..000000000 --- a/src/sdl12/macosx/mac_alert.h +++ /dev/null @@ -1,27 +0,0 @@ -// Emacs style mode select -*- C++ -*- -//----------------------------------------------------------------------------- -// -// Copyright (C) 1993-1996 by id Software, Inc. -// Portions Copyright (C) 1998-2000 by DooM Legacy Team. -// -// 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 2 -// 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. -//----------------------------------------------------------------------------- -/// \file -/// \brief Graphical Alerts for MacOSX -/// -/// Shows alerts, since we can't just print these to the screen when -/// launched graphically on a mac. - -#ifdef __APPLE_CC__ - -extern int MacShowAlert(const char *title, const char *message, const char *button1, const char *button2, const char *button3); - -#endif diff --git a/src/sdl12/mixer_sound.c b/src/sdl12/mixer_sound.c deleted file mode 100644 index 6fcc03dbd..000000000 --- a/src/sdl12/mixer_sound.c +++ /dev/null @@ -1,822 +0,0 @@ -/// \file -/// \brief SDL Mixer interface for sound - -#include "../doomdef.h" - -#if defined(HAVE_SDL) && defined(HAVE_MIXER) && SOUND==SOUND_MIXER - -#include "../sounds.h" -#include "../s_sound.h" -#include "../i_sound.h" -#include "../w_wad.h" -#include "../z_zone.h" -#include "../byteptr.h" - -#ifdef _MSC_VER -#pragma warning(disable : 4214 4244) -#endif -#include "SDL.h" -#ifdef _MSC_VER -#pragma warning(default : 4214 4244) -#endif - -#include "SDL_mixer.h" - -/* This is the version number macro for the current SDL_mixer version: */ -#ifndef SDL_MIXER_COMPILEDVERSION -#define SDL_MIXER_COMPILEDVERSION \ - SDL_VERSIONNUM(MIX_MAJOR_VERSION, MIX_MINOR_VERSION, MIX_PATCHLEVEL) -#endif - -/* This macro will evaluate to true if compiled with SDL_mixer at least X.Y.Z */ -#ifndef SDL_MIXER_VERSION_ATLEAST -#define SDL_MIXER_VERSION_ATLEAST(X, Y, Z) \ - (SDL_MIXER_COMPILEDVERSION >= SDL_VERSIONNUM(X, Y, Z)) -#endif - -#ifdef HAVE_LIBGME -#include "gme/gme.h" -#define GME_TREBLE 5.0 -#define GME_BASS 1.0 -#ifdef HAVE_PNG /// TODO: compile with zlib support without libpng - -#define HAVE_ZLIB - -#ifndef _MSC_VER -#ifndef _LARGEFILE64_SOURCE -#define _LARGEFILE64_SOURCE -#endif -#endif - -#ifndef _LFS64_LARGEFILE -#define _LFS64_LARGEFILE -#endif - -#ifndef _FILE_OFFSET_BITS -#define _FILE_OFFSET_BITS 0 -#endif - -#include "zlib.h" -#endif -#endif - -UINT8 sound_started = false; - -static boolean midimode; -static Mix_Music *music; -static UINT8 music_volume, midi_volume, sfx_volume; -static float loop_point; - -#ifdef HAVE_LIBGME -static Music_Emu *gme; -static INT32 current_track; -#endif - -void I_StartupSound(void) -{ - I_Assert(!sound_started); - sound_started = true; - - midimode = false; - music = NULL; - music_volume = midi_volume = sfx_volume = 0; - -#if SDL_MIXER_VERSION_ATLEAST(1,2,11) - Mix_Init(MIX_INIT_FLAC|MIX_INIT_MOD|MIX_INIT_MP3|MIX_INIT_OGG); -#endif - Mix_OpenAudio(44100, AUDIO_S16LSB, 2, 2048); - Mix_AllocateChannels(256); -} - -void I_ShutdownSound(void) -{ - I_Assert(sound_started); - sound_started = false; - - Mix_CloseAudio(); -#if SDL_MIXER_VERSION_ATLEAST(1,2,11) - Mix_Quit(); -#endif -#ifdef HAVE_LIBGME - if (gme) - gme_delete(gme); -#endif -} - -void I_UpdateSound(void) -{ -} - -// this is as fast as I can possibly make it. -// sorry. more asm needed. -static Mix_Chunk *ds2chunk(void *stream) -{ - UINT16 ver,freq; - UINT32 samples, i, newsamples; - UINT8 *sound; - - SINT8 *s; - INT16 *d; - INT16 o; - fixed_t step, frac; - - // lump header - ver = READUINT16(stream); // sound version format? - if (ver != 3) // It should be 3 if it's a doomsound... - return NULL; // onos! it's not a doomsound! - freq = READUINT16(stream); - samples = READUINT32(stream); - - // convert from signed 8bit ???hz to signed 16bit 44100hz. - switch(freq) - { - case 44100: - if (samples >= UINT32_MAX>>2) - return NULL; // would wrap, can't store. - newsamples = samples; - break; - case 22050: - if (samples >= UINT32_MAX>>3) - return NULL; // would wrap, can't store. - newsamples = samples<<1; - break; - case 11025: - if (samples >= UINT32_MAX>>4) - return NULL; // would wrap, can't store. - newsamples = samples<<2; - break; - default: - frac = (44100 << FRACBITS) / (UINT32)freq; - if (!(frac & 0xFFFF)) // other solid multiples (change if FRACBITS != 16) - newsamples = samples * (frac >> FRACBITS); - else // strange and unusual fractional frequency steps, plus anything higher than 44100hz. - newsamples = FixedMul(FixedDiv(samples, freq), 44100) + 1; // add 1 to counter truncation. - if (newsamples >= UINT32_MAX>>2) - return NULL; // would and/or did wrap, can't store. - break; - } - sound = Z_Malloc(newsamples<<2, PU_SOUND, NULL); // samples * frequency shift * bytes per sample * channels - - s = (SINT8 *)stream; - d = (INT16 *)sound; - - i = 0; - switch(freq) - { - case 44100: // already at the same rate? well that makes it simple. - while(i++ < samples) - { - o = ((INT16)(*s++)+0x80)<<8; // changed signedness and shift up to 16 bits - *d++ = o; // left channel - *d++ = o; // right channel - } - break; - case 22050: // unwrap 2x - while(i++ < samples) - { - o = ((INT16)(*s++)+0x80)<<8; // changed signedness and shift up to 16 bits - *d++ = o; // left channel - *d++ = o; // right channel - *d++ = o; // left channel - *d++ = o; // right channel - } - break; - case 11025: // unwrap 4x - while(i++ < samples) - { - o = ((INT16)(*s++)+0x80)<<8; // changed signedness and shift up to 16 bits - *d++ = o; // left channel - *d++ = o; // right channel - *d++ = o; // left channel - *d++ = o; // right channel - *d++ = o; // left channel - *d++ = o; // right channel - *d++ = o; // left channel - *d++ = o; // right channel - } - break; - default: // convert arbitrary hz to 44100. - step = 0; - frac = ((UINT32)freq << FRACBITS) / 44100; - while (i < samples) - { - o = (INT16)(*s+0x80)<<8; // changed signedness and shift up to 16 bits - while (step < FRACUNIT) // this is as fast as I can make it. - { - *d++ = o; // left channel - *d++ = o; // right channel - step += frac; - } - do { - i++; s++; - step -= FRACUNIT; - } while (step >= FRACUNIT); - } - break; - } - - // return Mixer Chunk. - return Mix_QuickLoad_RAW(sound, (UINT8*)d-sound); -} - -void *I_GetSfx(sfxinfo_t *sfx) -{ - void *lump; - Mix_Chunk *chunk; -#ifdef HAVE_LIBGME - Music_Emu *emu; - gme_info_t *info; -#endif - - if (sfx->lumpnum == LUMPERROR) - sfx->lumpnum = S_GetSfxLumpNum(sfx); - sfx->length = W_LumpLength(sfx->lumpnum); - - lump = W_CacheLumpNum(sfx->lumpnum, PU_SOUND); - - // convert from standard DoomSound format. - chunk = ds2chunk(lump); - if (chunk) - { - Z_Free(lump); - return chunk; - } - - // Not a doom sound? Try something else. -#ifdef HAVE_LIBGME - // VGZ format - if (((UINT8 *)lump)[0] == 0x1F - && ((UINT8 *)lump)[1] == 0x8B) - { -#ifdef HAVE_ZLIB - UINT8 *inflatedData; - size_t inflatedLen; - z_stream stream; - int zErr; // Somewhere to handle any error messages zlib tosses out - - memset(&stream, 0x00, sizeof (z_stream)); // Init zlib stream - // Begin the inflation process - inflatedLen = *(UINT32 *)lump + (sfx->length-4); // Last 4 bytes are the decompressed size, typically - inflatedData = (UINT8 *)Z_Malloc(inflatedLen, PU_SOUND, NULL); // Make room for the decompressed data - stream.total_in = stream.avail_in = sfx->length; - stream.total_out = stream.avail_out = inflatedLen; - stream.next_in = (UINT8 *)lump; - stream.next_out = inflatedData; - - zErr = inflateInit2(&stream, 32 + MAX_WBITS); - if (zErr == Z_OK) // We're good to go - { - zErr = inflate(&stream, Z_FINISH); - if (zErr == Z_STREAM_END) { - // Run GME on new data - if (!gme_open_data(inflatedData, inflatedLen, &emu, 44100)) - { - short *mem; - UINT32 len; - gme_equalizer_t eq = {GME_TREBLE, GME_BASS, 0,0,0,0,0,0,0,0}; - - Z_Free(inflatedData); // GME supposedly makes a copy for itself, so we don't need this lying around - Z_Free(lump); // We're done with the uninflated lump now, too. - - gme_start_track(emu, 0); - gme_set_equalizer(emu, &eq); - gme_track_info(emu, &info, 0); - - len = (info->play_length * 441 / 10) << 2; - mem = Z_Malloc(len, PU_SOUND, NULL); - gme_play(emu, len >> 1, mem); - gme_delete(emu); - - return Mix_QuickLoad_RAW((Uint8 *)mem, len); - } - } - else - { - const char *errorType; - switch (zErr) - { - case Z_ERRNO: - errorType = "Z_ERRNO"; break; - case Z_STREAM_ERROR: - errorType = "Z_STREAM_ERROR"; break; - case Z_DATA_ERROR: - errorType = "Z_DATA_ERROR"; break; - case Z_MEM_ERROR: - errorType = "Z_MEM_ERROR"; break; - case Z_BUF_ERROR: - errorType = "Z_BUF_ERROR"; break; - case Z_VERSION_ERROR: - errorType = "Z_VERSION_ERROR"; break; - default: - errorType = "unknown error"; - } - CONS_Alert(CONS_ERROR,"Encountered %s when running inflate: %s\n", errorType, stream.msg); - } - (void)inflateEnd(&stream); - } - else // Hold up, zlib's got a problem - { - const char *errorType; - switch (zErr) - { - case Z_ERRNO: - errorType = "Z_ERRNO"; break; - case Z_STREAM_ERROR: - errorType = "Z_STREAM_ERROR"; break; - case Z_DATA_ERROR: - errorType = "Z_DATA_ERROR"; break; - case Z_MEM_ERROR: - errorType = "Z_MEM_ERROR"; break; - case Z_BUF_ERROR: - errorType = "Z_BUF_ERROR"; break; - case Z_VERSION_ERROR: - errorType = "Z_VERSION_ERROR"; break; - default: - errorType = "unknown error"; - } - CONS_Alert(CONS_ERROR,"Encountered %s when running inflateInit: %s\n", errorType, stream.msg); - } - Z_Free(inflatedData); // GME didn't open jack, but don't let that stop us from freeing this up -#else - //CONS_Alert(CONS_ERROR,"Cannot decompress VGZ; no zlib support\n"); -#endif - } - // Try to read it as a GME sound - else if (!gme_open_data(lump, sfx->length, &emu, 44100)) - { - short *mem; - UINT32 len; - gme_equalizer_t eq = {GME_TREBLE, GME_BASS, 0,0,0,0,0,0,0,0}; - - Z_Free(lump); - - gme_start_track(emu, 0); - gme_set_equalizer(emu, &eq); - gme_track_info(emu, &info, 0); - - len = (info->play_length * 441 / 10) << 2; - mem = Z_Malloc(len, PU_SOUND, NULL); - gme_play(emu, len >> 1, mem); - gme_delete(emu); - - return Mix_QuickLoad_RAW((Uint8 *)mem, len); - } -#endif - - // Try to load it as a WAVE or OGG using Mixer. - return Mix_LoadWAV_RW(SDL_RWFromMem(lump, sfx->length), 1); -} - -void I_FreeSfx(sfxinfo_t *sfx) -{ - if (sfx->data) - Mix_FreeChunk(sfx->data); - sfx->data = NULL; -} - -INT32 I_StartSound(sfxenum_t id, UINT8 vol, UINT8 sep, UINT8 pitch, UINT8 priority) -{ - UINT8 volume = (((UINT16)vol + 1) * (UINT16)sfx_volume) / 62; // (256 * 31) / 62 == 127 - INT32 handle = Mix_PlayChannel(-1, S_sfx[id].data, 0); - Mix_Volume(handle, volume); - Mix_SetPanning(handle, min((UINT16)(0xff-sep)<<1, 0xff), min((UINT16)(sep)<<1, 0xff)); - (void)pitch; // Mixer can't handle pitch - (void)priority; // priority and channel management is handled by SRB2... - return handle; -} - -void I_StopSound(INT32 handle) -{ - Mix_HaltChannel(handle); -} - -boolean I_SoundIsPlaying(INT32 handle) -{ - return Mix_Playing(handle); -} - -void I_UpdateSoundParams(INT32 handle, UINT8 vol, UINT8 sep, UINT8 pitch) -{ - UINT8 volume = (((UINT16)vol + 1) * (UINT16)sfx_volume) / 62; // (256 * 31) / 62 == 127 - Mix_Volume(handle, volume); - Mix_SetPanning(handle, min((UINT16)(0xff-sep)<<1, 0xff), min((UINT16)(sep)<<1, 0xff)); - (void)pitch; -} - -void I_SetSfxVolume(UINT8 volume) -{ - sfx_volume = volume; -} - -// -// Music -// - -// Music hooks -static void music_loop(void) -{ - Mix_PlayMusic(music, 0); - Mix_SetMusicPosition(loop_point); -} - -#ifdef HAVE_LIBGME -static void mix_gme(void *udata, Uint8 *stream, int len) -{ - int i; - short *p; - - (void)udata; - - // no gme? no music. - if (!gme || gme_track_ended(gme)) - return; - - // play gme into stream - gme_play(gme, len/2, (short *)stream); - - // apply volume to stream - for (i = 0, p = (short *)stream; i < len/2; i++, p++) - *p = ((INT32)*p) * music_volume / 31; -} -#endif - -void I_InitMusic(void) -{ -} - -void I_ShutdownMusic(void) -{ - I_ShutdownDigMusic(); - I_ShutdownMIDIMusic(); -} - -void I_PauseSong(INT32 handle) -{ - (void)handle; - Mix_PauseMusic(); -} - -void I_ResumeSong(INT32 handle) -{ - (void)handle; - Mix_ResumeMusic(); -} - -// -// Digital Music -// - -void I_InitDigMusic(void) -{ -#ifdef HAVE_LIBGME - gme = NULL; - current_track = -1; -#endif -} - -void I_ShutdownDigMusic(void) -{ - if (midimode) - return; -#ifdef HAVE_LIBGME - if (gme) - { - Mix_HookMusic(NULL, NULL); - gme_delete(gme); - gme = NULL; - } -#endif - if (!music) - return; - Mix_HookMusicFinished(NULL); - Mix_FreeMusic(music); - music = NULL; -} - -boolean I_StartDigSong(const char *musicname, boolean looping) -{ - char *data; - size_t len; - lumpnum_t lumpnum = W_CheckNumForName(va("O_%s",musicname)); - - I_Assert(!music); -#ifdef HAVE_LIBGME - I_Assert(!gme); -#endif - - if (lumpnum == LUMPERROR) - { - lumpnum = W_CheckNumForName(va("D_%s",musicname)); - if (lumpnum == LUMPERROR) - return false; - midimode = true; - } - else - midimode = false; - - data = (char *)W_CacheLumpNum(lumpnum, PU_MUSIC); - len = W_LumpLength(lumpnum); - -#ifdef HAVE_LIBGME - if ((UINT8)data[0] == 0x1F - && (UINT8)data[1] == 0x8B) - { -#ifdef HAVE_ZLIB - UINT8 *inflatedData; - size_t inflatedLen; - z_stream stream; - int zErr; // Somewhere to handle any error messages zlib tosses out - - memset(&stream, 0x00, sizeof (z_stream)); // Init zlib stream - // Begin the inflation process - inflatedLen = *(UINT32 *)(data + (len-4)); // Last 4 bytes are the decompressed size, typically - inflatedData = (UINT8 *)Z_Calloc(inflatedLen, PU_MUSIC, NULL); // Make room for the decompressed data - stream.total_in = stream.avail_in = len; - stream.total_out = stream.avail_out = inflatedLen; - stream.next_in = (UINT8 *)data; - stream.next_out = inflatedData; - - zErr = inflateInit2(&stream, 32 + MAX_WBITS); - if (zErr == Z_OK) // We're good to go - { - zErr = inflate(&stream, Z_FINISH); - if (zErr == Z_STREAM_END) { - // Run GME on new data - if (!gme_open_data(inflatedData, inflatedLen, &gme, 44100)) - { - gme_equalizer_t eq = {GME_TREBLE, GME_BASS, 0,0,0,0,0,0,0,0}; - gme_start_track(gme, 0); - current_track = 0; - gme_set_equalizer(gme, &eq); - Mix_HookMusic(mix_gme, gme); - Z_Free(inflatedData); // GME supposedly makes a copy for itself, so we don't need this lying around - return true; - } - } - else - { - const char *errorType; - switch (zErr) - { - case Z_ERRNO: - errorType = "Z_ERRNO"; break; - case Z_STREAM_ERROR: - errorType = "Z_STREAM_ERROR"; break; - case Z_DATA_ERROR: - errorType = "Z_DATA_ERROR"; break; - case Z_MEM_ERROR: - errorType = "Z_MEM_ERROR"; break; - case Z_BUF_ERROR: - errorType = "Z_BUF_ERROR"; break; - case Z_VERSION_ERROR: - errorType = "Z_VERSION_ERROR"; break; - default: - errorType = "unknown error"; - } - CONS_Alert(CONS_ERROR,"Encountered %s when running inflate: %s\n", errorType, stream.msg); - } - (void)inflateEnd(&stream); - } - else // Hold up, zlib's got a problem - { - const char *errorType; - switch (zErr) - { - case Z_ERRNO: - errorType = "Z_ERRNO"; break; - case Z_STREAM_ERROR: - errorType = "Z_STREAM_ERROR"; break; - case Z_DATA_ERROR: - errorType = "Z_DATA_ERROR"; break; - case Z_MEM_ERROR: - errorType = "Z_MEM_ERROR"; break; - case Z_BUF_ERROR: - errorType = "Z_BUF_ERROR"; break; - case Z_VERSION_ERROR: - errorType = "Z_VERSION_ERROR"; break; - default: - errorType = "unknown error"; - } - CONS_Alert(CONS_ERROR,"Encountered %s when running inflateInit: %s\n", errorType, stream.msg); - } - Z_Free(inflatedData); // GME didn't open jack, but don't let that stop us from freeing this up -#else - //CONS_Alert(CONS_ERROR,"Cannot decompress VGZ; no zlib support\n"); -#endif - } - else if (!gme_open_data(data, len, &gme, 44100)) - { - gme_equalizer_t eq = {GME_TREBLE, GME_BASS, 0,0,0,0,0,0,0,0}; - gme_start_track(gme, 0); - current_track = 0; - gme_set_equalizer(gme, &eq); - Mix_HookMusic(mix_gme, gme); - return true; - } -#endif - - music = Mix_LoadMUS_RW(SDL_RWFromMem(data, len)); - if (!music) - { - CONS_Alert(CONS_ERROR, "Mix_LoadMUS_RW: %s\n", Mix_GetError()); - return true; - } - - // Find the OGG loop point. - loop_point = 0.0f; - if (looping) - { - const char *key1 = "LOOP"; - const char *key2 = "POINT="; - const char *key3 = "MS="; - const UINT8 key1len = strlen(key1); - const UINT8 key2len = strlen(key2); - const UINT8 key3len = strlen(key3); - char *p = data; - while ((UINT32)(p - data) < len) - { - if (strncmp(p++, key1, key1len)) - continue; - p += key1len-1; // skip OOP (the L was skipped in strncmp) - if (!strncmp(p, key2, key2len)) // is it LOOPPOINT=? - { - p += key2len; // skip POINT= - loop_point = (float)((44.1L+atoi(p)) / 44100.0L); // LOOPPOINT works by sample count. - // because SDL_Mixer is USELESS and can't even tell us - // something simple like the frequency of the streaming music, - // we are unfortunately forced to assume that ALL MUSIC is 44100hz. - // This means a lot of tracks that are only 22050hz for a reasonable downloadable file size will loop VERY badly. - } - else if (!strncmp(p, key3, key3len)) // is it LOOPMS=? - { - p += key3len; // skip MS= - loop_point = atoi(p) / 1000.0L; // LOOPMS works by real time, as miliseconds. - // Everything that uses LOOPMS will work perfectly with SDL_Mixer. - } - // Neither?! Continue searching. - } - } - - if (Mix_PlayMusic(music, looping && loop_point == 0.0f ? -1 : 0) == -1) - { - CONS_Alert(CONS_ERROR, "Mix_PlayMusic: %s\n", Mix_GetError()); - return true; - } - if (midimode) - Mix_VolumeMusic((UINT32)midi_volume*128/31); - else - Mix_VolumeMusic((UINT32)music_volume*128/31); - - if (loop_point != 0.0f) - Mix_HookMusicFinished(music_loop); - return true; -} - -void I_StopDigSong(void) -{ - if (midimode) - return; -#ifdef HAVE_LIBGME - if (gme) - { - Mix_HookMusic(NULL, NULL); - gme_delete(gme); - gme = NULL; - current_track = -1; - return; - } -#endif - if (!music) - return; - Mix_HookMusicFinished(NULL); - Mix_FreeMusic(music); - music = NULL; -} - -void I_SetDigMusicVolume(UINT8 volume) -{ - music_volume = volume; - if (midimode || !music) - return; - Mix_VolumeMusic((UINT32)volume*128/31); -} - -boolean I_SetSongSpeed(float speed) -{ - if (speed > 250.0f) - speed = 250.0f; //limit speed up to 250x -#ifdef HAVE_LIBGME - if (gme) - { - SDL_LockAudio(); - gme_set_tempo(gme, speed); - SDL_UnlockAudio(); - return true; - } -#else - (void)speed; -#endif - return false; -} - -boolean I_SetSongTrack(int track) -{ -#ifdef HAVE_LIBGME - if (current_track == track) - return false; - - // If the specified track is within the number of tracks playing, then change it - if (gme) - { - SDL_LockAudio(); - if (track >= 0 - && track < gme_track_count(gme)) - { - gme_err_t gme_e = gme_start_track(gme, track); - if (gme_e != NULL) - { - CONS_Alert(CONS_ERROR, "GME error: %s\n", gme_e); - return false; - } - current_track = track; - SDL_UnlockAudio(); - return true; - } - SDL_UnlockAudio(); - return false; - } -#endif - (void)track; - return false; -} - -// -// MIDI Music -// - -void I_InitMIDIMusic(void) -{ -} - -void I_ShutdownMIDIMusic(void) -{ - if (!midimode || !music) - return; - Mix_FreeMusic(music); - music = NULL; -} - -void I_SetMIDIMusicVolume(UINT8 volume) -{ - midi_volume = volume; - if (!midimode || !music) - return; - Mix_VolumeMusic((UINT32)volume*128/31); -} - -INT32 I_RegisterSong(void *data, size_t len) -{ - music = Mix_LoadMUS_RW(SDL_RWFromMem(data, len)); - if (!music) - { - CONS_Alert(CONS_ERROR, "Mix_LoadMUS_RW: %s\n", Mix_GetError()); - return -1; - } - return 1337; -} - -boolean I_PlaySong(INT32 handle, boolean looping) -{ - (void)handle; - - midimode = true; - - if (Mix_PlayMusic(music, looping ? -1 : 0) == -1) - { - CONS_Alert(CONS_ERROR, "Mix_PlayMusic: %s\n", Mix_GetError()); - return false; - } - Mix_VolumeMusic((UINT32)music_volume*128/31); - return true; -} - -void I_StopSong(INT32 handle) -{ - if (!midimode || !music) - return; - - (void)handle; - Mix_HaltMusic(); -} - -void I_UnRegisterSong(INT32 handle) -{ - if (!midimode || !music) - return; - - (void)handle; - Mix_FreeMusic(music); - music = NULL; -} - -#endif diff --git a/src/sdl12/ogl_sdl.c b/src/sdl12/ogl_sdl.c deleted file mode 100644 index 0790d5eff..000000000 --- a/src/sdl12/ogl_sdl.c +++ /dev/null @@ -1,306 +0,0 @@ -// Emacs style mode select -*- C++ -*- -//----------------------------------------------------------------------------- -// -// Copyright (C) 1998-2000 by DooM Legacy Team. -// -// 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 2 -// 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. -// -//----------------------------------------------------------------------------- -/// \file -/// \brief SDL specific part of the OpenGL API for SRB2 - -#ifdef _MSC_VER -#pragma warning(disable : 4214 4244) -#endif - -#ifdef HAVE_SDL - -#include "SDL.h" - -#ifdef _MSC_VER -#pragma warning(default : 4214 4244) -#endif - -#include "../doomdef.h" - -#ifdef HWRENDER -#include "../hardware/r_opengl/r_opengl.h" -#include "ogl_sdl.h" -#include "../i_system.h" -#include "hwsym_sdl.h" -#include "../m_argv.h" - -#ifdef DEBUG_TO_FILE -#include -#if defined (_WIN32) && !defined (__CYGWIN__) -#include -#else -#include -#endif -#include -#include -#endif - -#ifdef USE_WGL_SWAP -PFNWGLEXTSWAPCONTROLPROC wglSwapIntervalEXT = NULL; -#else -typedef int (*PFNGLXSWAPINTERVALPROC) (int); -PFNGLXSWAPINTERVALPROC glXSwapIntervalSGIEXT = NULL; -#endif - -#ifndef STATIC_OPENGL -PFNglClear pglClear; -PFNglGetIntegerv pglGetIntegerv; -PFNglGetString pglGetString; -#endif - -static const Uint32 WOGLFlags = SDL_OPENGL/*|SDL_RESIZABLE*/; -static const Uint32 FOGLFlags = SDL_OPENGL|SDL_FULLSCREEN; - -/** \brief SDL video display surface -*/ -SDL_Surface *vidSurface = NULL; -INT32 oglflags = 0; -void *GLUhandle = NULL; - -#ifndef STATIC_OPENGL -void *GetGLFunc(const char *proc) -{ - if (strncmp(proc, "glu", 3) == 0) - { - if (GLUhandle) - return hwSym(proc, GLUhandle); - else - return NULL; - } - return SDL_GL_GetProcAddress(proc); -} -#endif - -boolean LoadGL(void) -{ -#ifndef STATIC_OPENGL - const char *OGLLibname = NULL; - const char *GLULibname = NULL; - - if (M_CheckParm ("-OGLlib") && M_IsNextParm()) - OGLLibname = M_GetNextParm(); - - if (SDL_GL_LoadLibrary(OGLLibname) != 0) - { - I_OutputMsg("Could not load OpenGL Library: %s\n" - "Falling back to Software mode.\n", SDL_GetError()); - if (!M_CheckParm ("-OGLlib")) - I_OutputMsg("If you know what is the OpenGL library's name, use -OGLlib\n"); - return 0; - } - -#if 0 - GLULibname = "/proc/self/exe"; -#elif defined (_WIN32) - GLULibname = "GLU32.DLL"; -#elif defined (__MACH__) - GLULibname = "/System/Library/Frameworks/OpenGL.framework/Libraries/libGLU.dylib"; -#elif defined (macintos) - GLULibname = "OpenGLLibrary"; -#elif defined (__unix__) - GLULibname = "libGLU.so.1"; -#elif defined (__HAIKU__) - GLULibname = "libGLU.so"; -#else - GLULibname = NULL; -#endif - - if (M_CheckParm ("-GLUlib") && M_IsNextParm()) - GLULibname = M_GetNextParm(); - - if (GLULibname) - { - GLUhandle = hwOpen(GLULibname); - if (GLUhandle) - return SetupGLfunc(); - else - { - I_OutputMsg("Could not load GLU Library: %s\n", GLULibname); - if (!M_CheckParm ("-GLUlib")) - I_OutputMsg("If you know what is the GLU library's name, use -GLUlib\n"); - } - } - else - { - I_OutputMsg("Could not load GLU Library\n"); - I_OutputMsg("If you know what is the GLU library's name, use -GLUlib\n"); - } -#endif - return SetupGLfunc(); -} - -/** \brief The OglSdlSurface function - - \param w width - \param h height - \param isFullscreen if true, go fullscreen - - \return if true, changed video mode -*/ -boolean OglSdlSurface(INT32 w, INT32 h, boolean isFullscreen) -{ - INT32 cbpp; - Uint32 OGLFlags; - const GLvoid *glvendor = NULL, *glrenderer = NULL, *glversion = NULL; - - cbpp = cv_scr_depth.value < 16 ? 16 : cv_scr_depth.value; - - if (vidSurface) - { - //Alam: SDL_Video system free vidSurface for me -#ifdef VOODOOSAFESWITCHING - SDL_QuitSubSystem(SDL_INIT_VIDEO); - SDL_InitSubSystem(SDL_INIT_VIDEO); -#endif - } - - if (isFullscreen) - OGLFlags = FOGLFlags; - else - OGLFlags = WOGLFlags; - - cbpp = SDL_VideoModeOK(w, h, cbpp, OGLFlags); - if (cbpp < 16) - return true; //Alam: Let just say we did, ok? - - vidSurface = SDL_SetVideoMode(w, h, cbpp, OGLFlags); - if (!vidSurface) - return false; - - glvendor = pglGetString(GL_VENDOR); - // Get info and extensions. - //BP: why don't we make it earlier ? - //Hurdler: we cannot do that before intialising gl context - glrenderer = pglGetString(GL_RENDERER); - glversion = pglGetString(GL_VERSION); - gl_extensions = pglGetString(GL_EXTENSIONS); - - DBG_Printf("Vendor : %s\n", glvendor); - DBG_Printf("Renderer : %s\n", glrenderer); - DBG_Printf("Version : %s\n", glversion); - DBG_Printf("Extensions : %s\n", gl_extensions); - oglflags = 0; - -#ifdef _WIN32 - // BP: disable advenced feature that don't work on somes hardware - // Hurdler: Now works on G400 with bios 1.6 and certified drivers 6.04 - if (strstr(glrenderer, "810")) oglflags |= GLF_NOZBUFREAD; -#elif defined (unix) || defined (UNIXCOMMON) - // disable advanced features not working on somes hardware - if (strstr(glrenderer, "G200")) oglflags |= GLF_NOTEXENV; - if (strstr(glrenderer, "G400")) oglflags |= GLF_NOTEXENV; -#endif - DBG_Printf("oglflags : 0x%X\n", oglflags ); - -#ifdef USE_PALETTED_TEXTURE - if (isExtAvailable("GL_EXT_paletted_texture", gl_extensions)) - glColorTableEXT = SDL_GL_GetProcAddress("glColorTableEXT"); - else - glColorTableEXT = NULL; -#endif - -#ifdef USE_WGL_SWAP - if (isExtAvailable("WGL_EXT_swap_control", gl_extensions)) - wglSwapIntervalEXT = SDL_GL_GetProcAddress("wglSwapIntervalEXT"); - else - wglSwapIntervalEXT = NULL; -#else - if (isExtAvailable("GLX_SGI_swap_control", gl_extensions)) - glXSwapIntervalSGIEXT = SDL_GL_GetProcAddress("glXSwapIntervalSGI"); - else - glXSwapIntervalSGIEXT = NULL; -#endif - - if (isExtAvailable("GL_EXT_texture_filter_anisotropic", gl_extensions)) - pglGetIntegerv(GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT, &maximumAnisotropy); - else - maximumAnisotropy = 0; - - SetupGLFunc13(); - - granisotropicmode_cons_t[1].value = maximumAnisotropy; - - SetModelView(w, h); - SetStates(); - pglClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT); - - HWR_Startup(); - textureformatGL = cbpp > 16 ? GL_RGBA : GL_RGB5_A1; - - return true; -} - -/** \brief The OglSdlFinishUpdate function - - \param vidwait wait for video sync - - \return void -*/ -void OglSdlFinishUpdate(boolean waitvbl) -{ - static boolean oldwaitvbl = false; - if (oldwaitvbl != waitvbl) - { -#ifdef USE_WGL_SWAP - if (wglSwapIntervalEXT) - wglSwapIntervalEXT(waitvbl); -#else - if (glXSwapIntervalSGIEXT) - glXSwapIntervalSGIEXT(waitvbl); -#endif - } - oldwaitvbl = waitvbl; - - SDL_GL_SwapBuffers(); -} - -EXPORT void HWRAPI( OglSdlSetPalette) (RGBA_t *palette, RGBA_t *pgamma) -{ - INT32 i = -1; - UINT32 redgamma = pgamma->s.red, greengamma = pgamma->s.green, - bluegamma = pgamma->s.blue; - -#if 0 // changing the gamma to 127 is a bad idea - i = SDL_SetGamma(byteasfloat(redgamma), byteasfloat(greengamma), byteasfloat(bluegamma)); -#endif - if (i == 0) redgamma = greengamma = bluegamma = 0x7F; //Alam: cool - for (i = 0; i < 256; i++) - { - myPaletteData[i].s.red = (UINT8)MIN((palette[i].s.red * redgamma) /127, 255); - myPaletteData[i].s.green = (UINT8)MIN((palette[i].s.green * greengamma)/127, 255); - myPaletteData[i].s.blue = (UINT8)MIN((palette[i].s.blue * bluegamma) /127, 255); - myPaletteData[i].s.alpha = palette[i].s.alpha; - } -#ifdef USE_PALETTED_TEXTURE - if (glColorTableEXT) - { - for (i = 0; i < 256; i++) - { - palette_tex[(3*i)+0] = palette[i].s.red; - palette_tex[(3*i)+1] = palette[i].s.green; - palette_tex[(3*i)+2] = palette[i].s.blue; - } - glColorTableEXT(GL_TEXTURE_2D, GL_RGB8, 256, GL_RGB, GL_UNSIGNED_BYTE, palette_tex); - } -#endif - // on a chang�de palette, il faut recharger toutes les textures - // jaja, und noch viel mehr ;-) - Flush(); -} - -#endif //HWRENDER -#endif //SDL diff --git a/src/sdl12/ogl_sdl.h b/src/sdl12/ogl_sdl.h deleted file mode 100644 index 43c28fa42..000000000 --- a/src/sdl12/ogl_sdl.h +++ /dev/null @@ -1,30 +0,0 @@ -// Emacs style mode select -*- C++ -*- -//----------------------------------------------------------------------------- -// -// Copyright (C) 1998-2000 by DooM Legacy Team. -// -// 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 2 -// 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. -//----------------------------------------------------------------------------- -/// \file -/// \brief SDL specific part of the OpenGL API for SRB2 - -#include "../v_video.h" - -extern SDL_Surface *vidSurface; -extern void *GLUhandle; - -boolean OglSdlSurface(INT32 w, INT32 h, boolean isFullscreen); - -void OglSdlFinishUpdate(boolean vidwait); - -#ifdef _CREATE_DLL_ -EXPORT void HWRAPI( OglSdlSetPalette ) (RGBA_t *palette, RGBA_t *pgamma); -#endif diff --git a/src/sdl12/sdl_sound.c b/src/sdl12/sdl_sound.c deleted file mode 100644 index a4b3635ca..000000000 --- a/src/sdl12/sdl_sound.c +++ /dev/null @@ -1,1993 +0,0 @@ -// Emacs style mode select -*- C++ -*- -//----------------------------------------------------------------------------- -// -// Copyright (C) 1993-1996 by id Software, 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 2 -// of the License, or (at your option) any later version. -// -// The source 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. -//----------------------------------------------------------------------------- -/// \file -/// \brief SDL interface for sound - -#include -#include "../doomdef.h" - -#ifdef _MSC_VER -#pragma warning(disable : 4214 4244) -#endif - -#if defined(HAVE_SDL) && SOUND==SOUND_SDL - -#include "SDL.h" - -#ifdef _MSC_VER -#pragma warning(default : 4214 4244) -#endif - -#ifdef HAVE_MIXER -#include "SDL_mixer.h" -/* This is the version number macro for the current SDL_mixer version: */ -#ifndef SDL_MIXER_COMPILEDVERSION -#define SDL_MIXER_COMPILEDVERSION \ - SDL_VERSIONNUM(MIX_MAJOR_VERSION, MIX_MINOR_VERSION, MIX_PATCHLEVEL) -#endif - -/* This macro will evaluate to true if compiled with SDL_mixer at least X.Y.Z */ -#ifndef SDL_MIXER_VERSION_ATLEAST -#define SDL_MIXER_VERSION_ATLEAST(X, Y, Z) \ - (SDL_MIXER_COMPILEDVERSION >= SDL_VERSIONNUM(X, Y, Z)) -#endif - -#else -#define MIX_CHANNELS 8 -#endif - -#ifdef _WIN32 -#include -#elif defined (__GNUC__) -#include -#endif -#include "../z_zone.h" - -#include "../m_swap.h" -#include "../i_system.h" -#include "../i_sound.h" -#include "../m_argv.h" -#include "../m_misc.h" -#include "../w_wad.h" -#include "../screen.h" //vid.WndParent -#include "../doomdef.h" -#include "../doomstat.h" -#include "../s_sound.h" - -#include "../d_main.h" - -#ifdef HW3SOUND -#include "../hardware/hw3dsdrv.h" -#include "../hardware/hw3sound.h" -#include "hwsym_sdl.h" -#endif - -#ifdef HAVE_LIBGME -#include "gme/gme.h" -#endif - -// The number of internal mixing channels, -// the samples calculated for each mixing step, -// the size of the 16bit, 2 hardware channel (stereo) -// mixing buffer, and the samplerate of the raw data. - -// Needed for calling the actual sound output. -#define NUM_CHANNELS MIX_CHANNELS*4 - -#define INDEXOFSFX(x) ((sfxinfo_t *)x - S_sfx) - -static Uint16 samplecount = 1024; //Alam: 1KB samplecount at 22050hz is 46.439909297052154195011337868481ms of buffer - -typedef struct chan_struct -{ - // The channel data pointers, start and end. - Uint8 *data; //static unsigned char *channels[NUM_CHANNELS]; - Uint8 *end; //static unsigned char *channelsend[NUM_CHANNELS]; - - // pitch - Uint32 realstep; // The channel step amount... - Uint32 step; //static UINT32 channelstep[NUM_CHANNELS]; - Uint32 stepremainder; //static UINT32 channelstepremainder[NUM_CHANNELS]; - Uint32 samplerate; // ... and a 0.16 bit remainder of last step. - - // Time/gametic that the channel started playing, - // used to determine oldest, which automatically - // has lowest priority. - tic_t starttic; //static INT32 channelstart[NUM_CHANNELS]; - - // The sound handle, determined on registration, - // used to unregister/stop/modify, - INT32 handle; //static INT32 channelhandles[NUM_CHANNELS]; - - // SFX id of the playing sound effect. - void *id; // Used to catch duplicates (like chainsaw). - sfxenum_t sfxid; //static INT32 channelids[NUM_CHANNELS]; - INT32 vol; //the channel volume - INT32 sep; //the channel pan - - // Hardware left and right channel volume lookup. - Sint16* leftvol_lookup; //static INT32 *channelleftvol_lookup[NUM_CHANNELS]; - Sint16* rightvol_lookup; //static INT32 *channelrightvol_lookup[NUM_CHANNELS]; -} chan_t; - -static chan_t channels[NUM_CHANNELS]; - -// Pitch to stepping lookup -static INT32 steptable[256]; - -// Volume lookups. -static Sint16 vol_lookup[128 * 256]; - -UINT8 sound_started = false; -static SDL_mutex *Snd_Mutex = NULL; - -//SDL's Audio -static SDL_AudioSpec audio; - -static SDL_bool musicStarted = SDL_FALSE; -#ifdef HAVE_MIXER -static SDL_mutex *Msc_Mutex = NULL; -/* FIXME: Make this file instance-specific */ -#define MIDI_PATH srb2home -#if defined (__unix__) || defined(__APPLE__) || defined (UNIXCOMMON) -#define MIDI_PATH2 "/tmp" -#endif -#define MIDI_TMPFILE "srb2music" -#define MIDI_TMPFILE2 "srb2wav" -static INT32 musicvol = 62; - -#if SDL_MIXER_VERSION_ATLEAST(1,2,2) -#define MIXER_POS //Mix_FadeInMusicPos in 1.2.2+ -static void SDLCALL I_FinishMusic(void); -static double loopstartDig = 0.0l; -static SDL_bool loopingDig = SDL_FALSE; -static SDL_bool canlooping = SDL_TRUE; -#endif - -#if SDL_MIXER_VERSION_ATLEAST(1,2,7) -#define USE_RWOPS // ok, USE_RWOPS is in here -#endif - -#if SDL_MIXER_VERSION_ATLEAST(1,2,10) -//#define MIXER_INIT -#endif - -#ifdef USE_RWOPS -static void * Smidi[2] = { NULL, NULL }; -static SDL_bool canuseRW = SDL_TRUE; -#endif -static const char *fmidi[2] = { MIDI_TMPFILE, MIDI_TMPFILE2}; - -static const INT32 MIDIfade = 500; -static const INT32 Digfade = 0; - -static Mix_Music *music[2] = { NULL, NULL }; -#endif - -typedef struct srb2audio_s { - void *userdata; -#ifdef HAVE_LIBGME - Music_Emu *gme_emu; - UINT8 gme_pause; - UINT8 gme_loop; -#endif -} srb2audio_t; - -static srb2audio_t localdata; - -static void Snd_LockAudio(void) //Alam: Lock audio data and uninstall audio callback -{ - if (Snd_Mutex) SDL_LockMutex(Snd_Mutex); - else if (nosound) return; - else if (nomidimusic && nodigimusic -#ifdef HW3SOUND - && hws_mode == HWS_DEFAULT_MODE -#endif - ) SDL_LockAudio(); -#ifdef HAVE_MIXER - else if (musicStarted) Mix_SetPostMix(NULL, NULL); -#endif -} - -static void Snd_UnlockAudio(void) //Alam: Unlock audio data and reinstall audio callback -{ - if (Snd_Mutex) SDL_UnlockMutex(Snd_Mutex); - else if (nosound) return; - else if (nomidimusic && nodigimusic -#ifdef HW3SOUND - && hws_mode == HWS_DEFAULT_MODE -#endif - ) SDL_UnlockAudio(); -#ifdef HAVE_MIXER - else if (musicStarted) Mix_SetPostMix(audio.callback, audio.userdata); -#endif -} - -FUNCMATH static inline Uint16 Snd_LowerRate(Uint16 sr) -{ - if (sr <= audio.freq) // already lowered rate? - return sr; // good then - for (;sr > audio.freq;) // not good? - { // then let see... - if (sr % 2) // can we div by half? - return sr; // no, just use the currect rate - sr /= 2; // we can? wonderful - } // let start over again - if (sr == audio.freq) // did we drop to the desired rate? - return sr; // perfect! but if not - return sr*2; // just keep it just above the output sample rate -} - -#ifdef _MSC_VER -#pragma warning(disable : 4200) -#pragma pack(1) -#endif - -typedef struct -{ - Uint16 header; // 3? - Uint16 samplerate; // 11025+ - Uint16 samples; // number of samples - Uint16 dummy; // 0 - Uint8 data[0]; // data; -} ATTRPACK dssfx_t; - -#ifdef _MSC_VER -#pragma pack() -#pragma warning(default : 4200) -#endif - -// -// This function loads the sound data from the WAD lump, -// for single sound. -// -static void *getsfx(lumpnum_t sfxlump, size_t *len) -{ - dssfx_t *sfx, *paddedsfx; - Uint16 sr , csr; - size_t size = *len; - SDL_AudioCVT sfxcvt; - - sfx = (dssfx_t *)malloc(size); - if (sfx) W_ReadLump(sfxlump, (void *)sfx); - else return NULL; - sr = SHORT(sfx->samplerate); - csr = Snd_LowerRate(sr); - - if (sr > csr && SDL_BuildAudioCVT(&sfxcvt, AUDIO_U8, 1, sr, AUDIO_U8, 1, csr)) - {//Alam: Setup the AudioCVT for the SFX - - sfxcvt.len = (INT32)size-8; //Alam: Chop off the header - sfxcvt.buf = malloc(sfxcvt.len * sfxcvt.len_mult); //Alam: make room - if (sfxcvt.buf) M_Memcpy(sfxcvt.buf, &(sfx->data), sfxcvt.len); //Alam: copy the sfx sample - - if (sfxcvt.buf && SDL_ConvertAudio(&sfxcvt) == 0) //Alam: let convert it! - { - size = sfxcvt.len_cvt + 8; - *len = sfxcvt.len_cvt; - - // Allocate from zone memory. - paddedsfx = (dssfx_t *) Z_Malloc(size, PU_SOUND, NULL); - - // Now copy and pad. - M_Memcpy(paddedsfx->data, sfxcvt.buf, sfxcvt.len_cvt); - free(sfxcvt.buf); - M_Memcpy(paddedsfx,sfx,8); - paddedsfx->samplerate = SHORT(csr); // new freq - } - else //Alam: the convert failed, not needed or I couldn't malloc the buf - { - if (sfxcvt.buf) free(sfxcvt.buf); - *len = size - 8; - - // Allocate from zone memory then copy and pad - paddedsfx = (dssfx_t *)M_Memcpy(Z_Malloc(size, PU_SOUND, NULL), sfx, size); - } - } - else - { - // Pads the sound effect out to the mixing buffer size. - // The original realloc would interfere with zone memory. - *len = size - 8; - - // Allocate from zone memory then copy and pad - paddedsfx = (dssfx_t *)M_Memcpy(Z_Malloc(size, PU_SOUND, NULL), sfx, size); - } - - // Remove the cached lump. - free(sfx); - - // Return allocated padded data. - return paddedsfx; -} - -// used to (re)calculate channel params based on vol, sep, pitch -static void I_SetChannelParams(chan_t *c, INT32 vol, INT32 sep, INT32 step) -{ - INT32 leftvol; - INT32 rightvol; - c->vol = vol; - c->sep = sep; - c->step = c->realstep = step; - - if (step != steptable[128]) - c->step += (((c->samplerate<<16)/audio.freq)-65536); - else if (c->samplerate != (unsigned)audio.freq) - c->step = ((c->samplerate<<16)/audio.freq); - // x^2 separation, that is, orientation/stereo. - // range is: 0 (left) - 255 (right) - - // Volume arrives in range 0..255 and it must be in 0..cv_soundvolume... - vol = (vol * cv_soundvolume.value) >> 7; - // note: >> 6 would use almost the entire dynamical range, but - // then there would be no "dynamical room" for other sounds :-/ - - leftvol = vol - ((vol*sep*sep) >> 16); ///(256*256); - sep = 255 - sep; - rightvol = vol - ((vol*sep*sep) >> 16); - - // Sanity check, clamp volume. - if (rightvol < 0) - rightvol = 0; - else if (rightvol > 127) - rightvol = 127; - if (leftvol < 0) - leftvol = 0; - else if (leftvol > 127) - leftvol = 127; - - // Get the proper lookup table piece - // for this volume level - c->leftvol_lookup = &vol_lookup[leftvol*256]; - c->rightvol_lookup = &vol_lookup[rightvol*256]; -} - -static INT32 FindChannel(INT32 handle) -{ - INT32 i; - - for (i = 0; i < NUM_CHANNELS; i++) - if (channels[i].handle == handle) - return i; - - // not found - return -1; -} - -// -// This function adds a sound to the -// list of currently active sounds, -// which is maintained as a given number -// (eight, usually) of internal channels. -// Returns a handle. -// -static INT32 addsfx(sfxenum_t sfxid, INT32 volume, INT32 step, INT32 seperation) -{ - static UINT16 handlenums = 0; - INT32 i, slot, oldestnum = 0; - tic_t oldest = gametic; - - // Play these sound effects only one at a time. -#if 1 - if ( -#if 0 - sfxid == sfx_stnmov || sfxid == sfx_sawup || sfxid == sfx_sawidl || sfxid == sfx_sawful || sfxid == sfx_sawhit || sfxid == sfx_pistol -#else - ( sfx_litng1 <= sfxid && sfxid >= sfx_litng4 ) - || sfxid == sfx_trfire || sfxid == sfx_alarm || sfxid == sfx_spin - || sfxid == sfx_athun1 || sfxid == sfx_athun2 || sfxid == sfx_rainin -#endif - ) - { - // Loop all channels, check. - for (i = 0; i < NUM_CHANNELS; i++) - { - // Active, and using the same SFX? - if ((channels[i].end) && (channels[i].sfxid == sfxid)) - { - // Reset. - channels[i].end = NULL; - // We are sure that iff, - // there will only be one. - break; - } - } - } -#endif - - // Loop all channels to find oldest SFX. - for (i = 0; (i < NUM_CHANNELS) && (channels[i].end); i++) - { - if (channels[i].starttic < oldest) - { - oldestnum = i; - oldest = channels[i].starttic; - } - } - - // Tales from the cryptic. - // If we found a channel, fine. - // If not, we simply overwrite the first one, 0. - // Probably only happens at startup. - if (i == NUM_CHANNELS) - slot = oldestnum; - else - slot = i; - - channels[slot].end = NULL; - // Okay, in the less recent channel, - // we will handle the new SFX. - // Set pointer to raw data. - channels[slot].data = (Uint8 *)S_sfx[sfxid].data; - channels[slot].samplerate = (channels[slot].data[3]<<8)+channels[slot].data[2]; - channels[slot].data += 8; //Alam: offset of the sound header - - while (FindChannel(handlenums)!=-1) - { - handlenums++; - // Reset current handle number, limited to 0..65535. - if (handlenums == UINT16_MAX) - handlenums = 0; - } - - // Assign current handle number. - // Preserved so sounds could be stopped. - channels[slot].handle = handlenums; - - // Restart steper - channels[slot].stepremainder = 0; - // Should be gametic, I presume. - channels[slot].starttic = gametic; - - I_SetChannelParams(&channels[slot], volume, seperation, step); - - // Preserve sound SFX id, - // e.g. for avoiding duplicates of chainsaw. - channels[slot].id = S_sfx[sfxid].data; - - channels[slot].sfxid = sfxid; - - // Set pointer to end of raw data. - channels[slot].end = channels[slot].data + S_sfx[sfxid].length; - - - // You tell me. - return handlenums; -} - -// -// SFX API -// Note: this was called by S_Init. -// However, whatever they did in the -// old DPMS based DOS version, this -// were simply dummies in the Linux -// version. -// See soundserver initdata(). -// -// Well... To keep compatibility with legacy doom, I have to call this in -// I_InitSound since it is not called in S_Init... (emanne@absysteme.fr) - -static inline void I_SetChannels(void) -{ - // Init internal lookups (raw data, mixing buffer, channels). - // This function sets up internal lookups used during - // the mixing process. - INT32 i; - INT32 j; - - INT32 *steptablemid = steptable + 128; - - if (nosound) - return; - - // This table provides step widths for pitch parameters. - for (i = -128; i < 128; i++) - { - const double po = pow((double)(2.0l), (double)(i / 64.0l)); - steptablemid[i] = (INT32)(po * 65536.0l); - } - - // Generates volume lookup tables - // which also turn the unsigned samples - // into signed samples. - for (i = 0; i < 128; i++) - for (j = 0; j < 256; j++) - { - //From PrDoom - // proff - made this a little bit softer, because with - // full volume the sound clipped badly - vol_lookup[i * 256 + j] = (Sint16)((i * (j - 128) * 256) / 127); - } -} - -void I_SetSfxVolume(UINT8 volume) -{ - INT32 i; - - (void)volume; - //Snd_LockAudio(); - - for (i = 0; i < NUM_CHANNELS; i++) - if (channels[i].end) I_SetChannelParams(&channels[i], channels[i].vol, channels[i].sep, channels[i].realstep); - - //Snd_UnlockAudio(); -} - -void *I_GetSfx(sfxinfo_t *sfx) -{ - if (sfx->lumpnum == LUMPERROR) - sfx->lumpnum = S_GetSfxLumpNum(sfx); -// else if (sfx->lumpnum != S_GetSfxLumpNum(sfx)) -// I_FreeSfx(sfx); - -#ifdef HW3SOUND - if (hws_mode != HWS_DEFAULT_MODE) - return HW3S_GetSfx(sfx); -#endif - - if (sfx->data) - return sfx->data; //Alam: I have it done! - - sfx->length = W_LumpLength(sfx->lumpnum); - - return getsfx(sfx->lumpnum, &sfx->length); - -} - -void I_FreeSfx(sfxinfo_t * sfx) -{ -// if (sfx->lumpnum<0) -// return; - -#ifdef HW3SOUND - if (hws_mode != HWS_DEFAULT_MODE) - { - HW3S_FreeSfx(sfx); - } - else -#endif - { - size_t i; - - for (i = 1; i < NUMSFX; i++) - { - // Alias? Example is the chaingun sound linked to pistol. - if (S_sfx[i].data == sfx->data) - { - if (S_sfx+i != sfx) S_sfx[i].data = NULL; - S_sfx[i].lumpnum = LUMPERROR; - S_sfx[i].length = 0; - } - } - //Snd_LockAudio(); //Alam: too much? - // Loop all channels, check. - for (i = 0; i < NUM_CHANNELS; i++) - { - // Active, and using the same SFX? - if (channels[i].end && channels[i].id == sfx->data) - { - channels[i].end = NULL; // Reset. - } - } - //Snd_UnlockAudio(); //Alam: too much? - Z_Free(sfx->data); - } - sfx->data = NULL; - sfx->lumpnum = LUMPERROR; -} - -// -// Starting a sound means adding it -// to the current list of active sounds -// in the internal channels. -// As the SFX info struct contains -// e.g. a pointer to the raw data, -// it is ignored. -// As our sound handling does not handle -// priority, it is ignored. -// Pitching (that is, increased speed of playback) -// is set, but currently not used by mixing. -// -INT32 I_StartSound(sfxenum_t id, UINT8 vol, UINT8 sep, UINT8 pitch, UINT8 priority) -{ - (void)priority; - (void)pitch; - - if (nosound) - return 0; - - if (S_sfx[id].data == NULL) return -1; - - Snd_LockAudio(); - id = addsfx(id, vol, steptable[pitch], sep); - Snd_UnlockAudio(); - - return id; // Returns a handle (not used). -} - -void I_StopSound(INT32 handle) -{ - // You need the handle returned by StartSound. - // Would be looping all channels, - // tracking down the handle, - // an setting the channel to zero. - INT32 i; - - i = FindChannel(handle); - - if (i != -1) - { - //Snd_LockAudio(); //Alam: too much? - channels[i].end = NULL; - //Snd_UnlockAudio(); //Alam: too much? - channels[i].handle = -1; - channels[i].starttic = 0; - } - -} - -boolean I_SoundIsPlaying(INT32 handle) -{ - boolean isplaying = false; - int chan = FindChannel(handle); - if (chan != -1) - isplaying = (channels[chan].end != NULL); - return isplaying; -} - -FUNCINLINE static ATTRINLINE void I_UpdateStream8S(Uint8 *stream, int len) -{ - // Mix current sound data. - // Data, from raw sound - register Sint16 dr; // Right 8bit stream - register Uint8 sample; // Center 8bit sfx - register Sint16 dl; // Left 8bit stream - - // Pointers in audio stream - Sint8 *rightout = (Sint8 *)stream; // currect right - Sint8 *leftout = rightout + 1;// currect left - const Uint8 step = 2; // Step in stream, left and right, thus two. - - INT32 chan; // Mixing channel index. - - // Determine end of the stream - len /= 2; // not 8bit mono samples, 8bit stereo ones - - if (Snd_Mutex) SDL_LockMutex(Snd_Mutex); - - // Mix sounds into the mixing buffer. - // Loop over len - while (len--) - { - // Reset left/right value. - dl = *leftout; - dr = *rightout; - - // Love thy L2 cache - made this a loop. - // Now more channels could be set at compile time - // as well. Thus loop those channels. - for (chan = 0; chan < NUM_CHANNELS; chan++) - { - // Check channel, if active. - if (channels[chan].end) - { -#if 1 - // Get the raw data from the channel. - sample = channels[chan].data[0]; -#else - // linear filtering from PrDoom - sample = (((Uint32)channels[chan].data[0] *(0x10000 - channels[chan].stepremainder)) - + ((Uint32)channels[chan].data[1]) * (channels[chan].stepremainder))) >> 16; -#endif - // Add left and right part - // for this channel (sound) - // to the current data. - // Adjust volume accordingly. - dl = (Sint16)(dl+(channels[chan].leftvol_lookup[sample]>>8)); - dr = (Sint16)(dr+(channels[chan].rightvol_lookup[sample]>>8)); - // Increment stepage - channels[chan].stepremainder += channels[chan].step; - // Check whether we are done. - if (channels[chan].data + (channels[chan].stepremainder >> 16) >= channels[chan].end) - channels[chan].end = NULL; - else - { - // step to next sample - channels[chan].data += (channels[chan].stepremainder >> 16); - // Limit to LSB??? - channels[chan].stepremainder &= 0xffff; - } - } - } - - // Clamp to range. Left hardware channel. - // Has been char instead of short. - - if (dl > 0x7f) - *leftout = 0x7f; - else if (dl < -0x80) - *leftout = -0x80; - else - *leftout = (Sint8)dl; - - // Same for right hardware channel. - if (dr > 0x7f) - *rightout = 0x7f; - else if (dr < -0x80) - *rightout = -0x80; - else - *rightout = (Sint8)dr; - - // Increment current pointers in stream - leftout += step; - rightout += step; - - } - if (Snd_Mutex) SDL_UnlockMutex(Snd_Mutex); -} - -FUNCINLINE static ATTRINLINE void I_UpdateStream8M(Uint8 *stream, int len) -{ - // Mix current sound data. - // Data, from raw sound - register Sint16 d; // Mono 8bit stream - register Uint8 sample; // Center 8bit sfx - - // Pointers in audio stream - Sint8 *monoout = (Sint8 *)stream; // currect mono - const Uint8 step = 1; // Step in stream, left and right, thus two. - - INT32 chan; // Mixing channel index. - - // Determine end of the stream - //len /= 1; // not 8bit mono samples, 8bit mono ones? - - if (Snd_Mutex) SDL_LockMutex(Snd_Mutex); - - // Mix sounds into the mixing buffer. - // Loop over len - while (len--) - { - // Reset left/right value. - d = *monoout; - - // Love thy L2 cache - made this a loop. - // Now more channels could be set at compile time - // as well. Thus loop those channels. - for (chan = 0; chan < NUM_CHANNELS; chan++) - { - // Check channel, if active. - if (channels[chan].end) - { -#if 1 - // Get the raw data from the channel. - sample = channels[chan].data[0]; -#else - // linear filtering from PrDoom - sample = (((Uint32)channels[chan].data[0] *(0x10000 - channels[chan].stepremainder)) - + ((Uint32)channels[chan].data[1]) * (channels[chan].stepremainder))) >> 16; -#endif - // Add left and right part - // for this channel (sound) - // to the current data. - // Adjust volume accordingly. - d = (Sint16)(d+((channels[chan].leftvol_lookup[sample] + channels[chan].rightvol_lookup[sample])>>9)); - // Increment stepage - channels[chan].stepremainder += channels[chan].step; - // Check whether we are done. - if (channels[chan].data + (channels[chan].stepremainder >> 16) >= channels[chan].end) - channels[chan].end = NULL; - else - { - // step to next sample - channels[chan].data += (channels[chan].stepremainder >> 16); - // Limit to LSB??? - channels[chan].stepremainder &= 0xffff; - } - } - } - - // Clamp to range. Left hardware channel. - // Has been char instead of short. - - if (d > 0x7f) - *monoout = 0x7f; - else if (d < -0x80) - *monoout = -0x80; - else - *monoout = (Sint8)d; - - // Increment current pointers in stream - monoout += step; - } - if (Snd_Mutex) SDL_UnlockMutex(Snd_Mutex); -} - -FUNCINLINE static ATTRINLINE void I_UpdateStream16S(Uint8 *stream, int len) -{ - // Mix current sound data. - // Data, from raw sound - register Sint32 dr; // Right 16bit stream - register Uint8 sample; // Center 8bit sfx - register Sint32 dl; // Left 16bit stream - - // Pointers in audio stream - Sint16 *rightout = (Sint16 *)(void *)stream; // currect right - Sint16 *leftout = rightout + 1;// currect left - const Uint8 step = 2; // Step in stream, left and right, thus two. - - INT32 chan; // Mixing channel index. - - // Determine end of the stream - len /= 4; // not 8bit mono samples, 16bit stereo ones - - if (Snd_Mutex) SDL_LockMutex(Snd_Mutex); - - // Mix sounds into the mixing buffer. - // Loop over len - while (len--) - { - // Reset left/right value. - dl = *leftout; - dr = *rightout; - - // Love thy L2 cache - made this a loop. - // Now more channels could be set at compile time - // as well. Thus loop those channels. - for (chan = 0; chan < NUM_CHANNELS; chan++) - { - // Check channel, if active. - if (channels[chan].end) - { -#if 1 - // Get the raw data from the channel. - sample = channels[chan].data[0]; -#else - // linear filtering from PrDoom - sample = (((Uint32)channels[chan].data[0] *(0x10000 - channels[chan].stepremainder)) - + ((Uint32)channels[chan].data[1]) * (channels[chan].stepremainder))) >> 16; -#endif - // Add left and right part - // for this channel (sound) - // to the current data. - // Adjust volume accordingly. - dl += channels[chan].leftvol_lookup[sample]; - dr += channels[chan].rightvol_lookup[sample]; - // Increment stepage - channels[chan].stepremainder += channels[chan].step; - // Check whether we are done. - if (channels[chan].data + (channels[chan].stepremainder >> 16) >= channels[chan].end) - channels[chan].end = NULL; - else - { - // step to next sample - channels[chan].data += (channels[chan].stepremainder >> 16); - // Limit to LSB??? - channels[chan].stepremainder &= 0xffff; - } - } - } - - // Clamp to range. Left hardware channel. - // Has been char instead of short. - - if (dl > 0x7fff) - *leftout = 0x7fff; - else if (dl < -0x8000) - *leftout = -0x8000; - else - *leftout = (Sint16)dl; - - // Same for right hardware channel. - if (dr > 0x7fff) - *rightout = 0x7fff; - else if (dr < -0x8000) - *rightout = -0x8000; - else - *rightout = (Sint16)dr; - - // Increment current pointers in stream - leftout += step; - rightout += step; - - } - if (Snd_Mutex) SDL_UnlockMutex(Snd_Mutex); -} - -FUNCINLINE static ATTRINLINE void I_UpdateStream16M(Uint8 *stream, int len) -{ - // Mix current sound data. - // Data, from raw sound - register Sint32 d; // Mono 16bit stream - register Uint8 sample; // Center 8bit sfx - - // Pointers in audio stream - Sint16 *monoout = (Sint16 *)(void *)stream; // currect mono - const Uint8 step = 1; // Step in stream, left and right, thus two. - - INT32 chan; // Mixing channel index. - - // Determine end of the stream - len /= 2; // not 8bit mono samples, 16bit mono ones - - if (Snd_Mutex) SDL_LockMutex(Snd_Mutex); - - // Mix sounds into the mixing buffer. - // Loop over len - while (len--) - { - // Reset left/right value. - d = *monoout; - - // Love thy L2 cache - made this a loop. - // Now more channels could be set at compile time - // as well. Thus loop those channels. - for (chan = 0; chan < NUM_CHANNELS; chan++) - { - // Check channel, if active. - if (channels[chan].end) - { -#if 1 - // Get the raw data from the channel. - sample = channels[chan].data[0]; -#else - // linear filtering from PrDoom - sample = (((Uint32)channels[chan].data[0] *(0x10000 - channels[chan].stepremainder)) - + ((Uint32)channels[chan].data[1]) * (channels[chan].stepremainder))) >> 16; -#endif - // Add left and right part - // for this channel (sound) - // to the current data. - // Adjust volume accordingly. - d += (channels[chan].leftvol_lookup[sample] + channels[chan].rightvol_lookup[sample])>>1; - // Increment stepage - channels[chan].stepremainder += channels[chan].step; - // Check whether we are done. - if (channels[chan].data + (channels[chan].stepremainder >> 16) >= channels[chan].end) - channels[chan].end = NULL; - else - { - // step to next sample - channels[chan].data += (channels[chan].stepremainder >> 16); - // Limit to LSB??? - channels[chan].stepremainder &= 0xffff; - } - } - } - - // Clamp to range. Left hardware channel. - // Has been char instead of short. - - if (d > 0x7fff) - *monoout = 0x7fff; - else if (d < -0x8000) - *monoout = -0x8000; - else - *monoout = (Sint16)d; - - // Increment current pointers in stream - monoout += step; - } - if (Snd_Mutex) SDL_UnlockMutex(Snd_Mutex); -} - -#ifdef HAVE_LIBGME -static void I_UpdateSteamGME(Music_Emu *emu, INT16 *stream, int len, UINT8 looping) -{ - #define GME_BUFFER_LEN 44100*2048 - // Mix current sound data. - // Data, from raw sound - register Sint32 da; - - static short gme_buffer[GME_BUFFER_LEN]; // a large buffer for gme - Sint16 *in = gme_buffer; - - do - { - int out = min(GME_BUFFER_LEN, len); - if ( gme_play( emu, len, gme_buffer ) ) { } // ignore error - len -= out; - while (out--) - { - //Left - da = *in; - in++; - da += *stream; - stream++; - //Right - da = *in; - in++; - da += *stream; - stream++; - } - if (gme_track_ended( emu )) - { - if (looping) - gme_seek( emu, 0); - else - break; - } - } while ( len ); - #undef GME_BUFFER_LEN -} -#endif - -static void SDLCALL I_UpdateStream(void *userdata, Uint8 *stream, int len) -{ - if (!sound_started || !userdata) - return; - -#if SDL_VERSION_ATLEAST(1,3,0) - if (musicStarted) - memset(stream, 0x00, len); // only work in !AUDIO_U8, that needs 0x80 -#endif - - if ((audio.channels != 1 && audio.channels != 2) || - (audio.format != AUDIO_S8 && audio.format != AUDIO_S16SYS)) - ; // no function to encode this type of stream - else if (audio.channels == 1 && audio.format == AUDIO_S8) - I_UpdateStream8M(stream, len); - else if (audio.channels == 2 && audio.format == AUDIO_S8) - I_UpdateStream8S(stream, len); - else if (audio.channels == 1 && audio.format == AUDIO_S16SYS) - I_UpdateStream16M(stream, len); - else if (audio.channels == 2 && audio.format == AUDIO_S16SYS) - { - I_UpdateStream16S(stream, len); -#ifdef HAVE_LIBGME - if (userdata) - { - srb2audio_t *sa_userdata = userdata; - if (!sa_userdata->gme_pause) - I_UpdateSteamGME(sa_userdata->gme_emu, (INT16 *)stream, len/4, sa_userdata->gme_loop); - } -#endif - - } -} - -void I_UpdateSoundParams(INT32 handle, UINT8 vol, UINT8 sep, UINT8 pitch) -{ - // Would be using the handle to identify - // on which channel the sound might be active, - // and resetting the channel parameters. - - INT32 i = FindChannel(handle); - - if (i != -1 && channels[i].end) - { - //Snd_LockAudio(); //Alam: too much? - I_SetChannelParams(&channels[i], vol, sep, steptable[pitch]); - //Snd_UnlockAudio(); //Alam: too much? - } - -} - -#ifdef HW3SOUND - -static void *soundso = NULL; - -static INT32 Init3DSDriver(const char *soName) -{ - if (soName) soundso = hwOpen(soName); -#if defined (_WIN32) && defined (_X86_) && !defined (STATIC3DS) - HW3DS.pfnStartup = hwSym("Startup@8",soundso); - HW3DS.pfnShutdown = hwSym("Shutdown@0",soundso); - HW3DS.pfnAddSfx = hwSym("AddSfx@4",soundso); - HW3DS.pfnAddSource = hwSym("AddSource@8",soundso); - HW3DS.pfnStartSource = hwSym("StartSource@4",soundso); - HW3DS.pfnStopSource = hwSym("StopSource@4",soundso); - HW3DS.pfnGetHW3DSVersion = hwSym("GetHW3DSVersion@0",soundso); - HW3DS.pfnBeginFrameUpdate = hwSym("BeginFrameUpdate@0",soundso); - HW3DS.pfnEndFrameUpdate = hwSym("EndFrameUpdate@0",soundso); - HW3DS.pfnIsPlaying = hwSym("IsPlaying@4",soundso); - HW3DS.pfnUpdateListener = hwSym("UpdateListener@8",soundso); - HW3DS.pfnUpdateSourceParms = hwSym("UpdateSourceParms@12",soundso); - HW3DS.pfnSetCone = hwSym("SetCone@8",soundso); - HW3DS.pfnSetGlobalSfxVolume = hwSym("SetGlobalSfxVolume@4",soundso); - HW3DS.pfnUpdate3DSource = hwSym("Update3DSource@8",soundso); - HW3DS.pfnReloadSource = hwSym("ReloadSource@8",soundso); - HW3DS.pfnKillSource = hwSym("KillSource@4",soundso); - HW3DS.pfnKillSfx = hwSym("KillSfx@4",soundso); - HW3DS.pfnGetHW3DSTitle = hwSym("GetHW3DSTitle@8",soundso); -#else - HW3DS.pfnStartup = hwSym("Startup",soundso); - HW3DS.pfnShutdown = hwSym("Shutdown",soundso); - HW3DS.pfnAddSfx = hwSym("AddSfx",soundso); - HW3DS.pfnAddSource = hwSym("AddSource",soundso); - HW3DS.pfnStartSource = hwSym("StartSource",soundso); - HW3DS.pfnStopSource = hwSym("StopSource",soundso); - HW3DS.pfnGetHW3DSVersion = hwSym("GetHW3DSVersion",soundso); - HW3DS.pfnBeginFrameUpdate = hwSym("BeginFrameUpdate",soundso); - HW3DS.pfnEndFrameUpdate = hwSym("EndFrameUpdate",soundso); - HW3DS.pfnIsPlaying = hwSym("IsPlaying",soundso); - HW3DS.pfnUpdateListener = hwSym("UpdateListener",soundso); - HW3DS.pfnUpdateSourceParms = hwSym("UpdateSourceParms",soundso); - HW3DS.pfnSetCone = hwSym("SetCone",soundso); - HW3DS.pfnSetGlobalSfxVolume = hwSym("SetGlobalSfxVolume",soundso); - HW3DS.pfnUpdate3DSource = hwSym("Update3DSource",soundso); - HW3DS.pfnReloadSource = hwSym("ReloadSource",soundso); - HW3DS.pfnKillSource = hwSym("KillSource",soundso); - HW3DS.pfnKillSfx = hwSym("KillSfx",soundso); - HW3DS.pfnGetHW3DSTitle = hwSym("GetHW3DSTitle",soundso); -#endif - -// if (HW3DS.pfnUpdateListener2 && HW3DS.pfnUpdateListener2 != soundso) - return true; -// else -// return false; -} -#endif - -void I_ShutdownSound(void) -{ - if (nosound || !sound_started) - return; - - CONS_Printf("I_ShutdownSound: "); - -#ifdef HW3SOUND - if (hws_mode != HWS_DEFAULT_MODE) - { - HW3S_Shutdown(); - hwClose(soundso); - return; - } -#endif - - if (nomidimusic && nodigimusic) - SDL_CloseAudio(); - CONS_Printf("%s", M_GetText("shut down\n")); - sound_started = false; - SDL_QuitSubSystem(SDL_INIT_AUDIO); - if (Snd_Mutex) - SDL_DestroyMutex(Snd_Mutex); - Snd_Mutex = NULL; -} - -void I_UpdateSound(void) -{ -} - -void I_StartupSound(void) -{ -#ifdef HW3SOUND - const char *sdrv_name = NULL; -#endif -#ifndef HAVE_MIXER - nomidimusic = nodigimusic = true; -#endif - - memset(channels, 0, sizeof (channels)); //Alam: Clean it - - audio.format = AUDIO_S16SYS; - audio.channels = 2; - audio.callback = I_UpdateStream; - audio.userdata = &localdata; - - if (dedicated) - { - nosound = nomidimusic = nodigimusic = true; - return; - } - - // Configure sound device - CONS_Printf("I_StartupSound:\n"); - - // Open the audio device - if (M_CheckParm ("-freq") && M_IsNextParm()) - { - audio.freq = atoi(M_GetNextParm()); - if (!audio.freq) audio.freq = cv_samplerate.value; - audio.samples = (Uint16)((samplecount/2)*(INT32)(audio.freq/11025)); //Alam: to keep it around the same XX ms - CONS_Printf (M_GetText(" requested frequency of %d hz\n"), audio.freq); - } - else - { - audio.samples = samplecount; - audio.freq = cv_samplerate.value; - } - - if (M_CheckParm ("-mono")) - { - audio.channels = 1; - audio.samples /= 2; - } - - if (nosound) - return; - -#ifdef HW3SOUND -#ifdef STATIC3DS - if (M_CheckParm("-3dsound") || M_CheckParm("-ds3d")) - { - hws_mode = HWS_OPENAL; - } -#elif defined (_WIN32) - if (M_CheckParm("-ds3d")) - { - hws_mode = HWS_DS3D; - sdrv_name = "s_ds3d.dll"; - } - else if (M_CheckParm("-fmod3d")) - { - hws_mode = HWS_FMOD3D; - sdrv_name = "s_fmod.dll"; - } - else if (M_CheckParm("-openal")) - { - hws_mode = HWS_OPENAL; - sdrv_name = "s_openal.dll"; - } -#else - if (M_CheckParm("-fmod3d")) - { - hws_mode = HWS_FMOD3D; - sdrv_name = "./s_fmod.so"; - } - else if (M_CheckParm("-openal")) - { - hws_mode = HWS_OPENAL; - sdrv_name = "./s_openal.so"; - } -#endif - else if (M_CheckParm("-sounddriver") && M_IsNextParm()) - { - hws_mode = HWS_OTHER; - sdrv_name = M_GetNextParm(); - } - if (hws_mode != HWS_DEFAULT_MODE) - { - if (Init3DSDriver(sdrv_name)) - { - snddev_t snddev; - - //nosound = true; - //I_AddExitFunc(I_ShutdownSound); - snddev.bps = 16; - snddev.sample_rate = audio.freq; - snddev.numsfxs = NUMSFX; -#ifdef _WIN32 - snddev.cooplevel = 0x00000002; - snddev.hWnd = vid.WndParent; -#endif - if (HW3S_Init(I_Error, &snddev)) - { - audio.userdata = NULL; - CONS_Printf("%s", M_GetText(" Using 3D sound driver\n")); - return; - } - CONS_Printf("%s", M_GetText(" Failed loading 3D sound driver\n")); - // Falls back to default sound system - HW3S_Shutdown(); - hwClose(soundso); - } - CONS_Printf("%s", M_GetText(" Failed loading 3D sound driver\n")); - hws_mode = HWS_DEFAULT_MODE; - } -#endif - if (!musicStarted && SDL_OpenAudio(&audio, &audio) < 0) - { - CONS_Printf("%s", M_GetText(" couldn't open audio with desired format\n")); - nosound = true; - return; - } - else - { - char ad[100]; - CONS_Printf(M_GetText(" Starting up with audio driver : %s\n"), SDL_AudioDriverName(ad, (int)sizeof ad)); - } - samplecount = audio.samples; - CV_SetValue(&cv_samplerate, audio.freq); - CONS_Printf(M_GetText(" configured audio device with %d samples/slice at %ikhz(%dms buffer)\n"), samplecount, audio.freq/1000, (INT32) (((float)audio.samples * 1000.0f) / audio.freq)); - // Finished initialization. - CONS_Printf("%s", M_GetText(" Sound module ready\n")); - //[segabor] - if (!musicStarted) SDL_PauseAudio(0); - //Mix_Pause(0); - I_SetChannels(); - sound_started = true; - Snd_Mutex = SDL_CreateMutex(); -} - -// -// MUSIC API. -// - -void I_ShutdownMIDIMusic(void) -{ - nomidimusic = false; - if (nodigimusic) I_ShutdownMusic(); -} - -#ifdef HAVE_LIBGME -static void I_ShutdownGMEMusic(void) -{ - Snd_LockAudio(); - if (localdata.gme_emu) - gme_delete(localdata.gme_emu); - localdata.gme_emu = NULL; - Snd_UnlockAudio(); -} -#endif - -void I_ShutdownDigMusic(void) -{ - nodigimusic = false; - if (nomidimusic) I_ShutdownMusic(); -} - -#ifdef HAVE_MIXER -static boolean LoadSong(void *data, size_t lumplength, size_t selectpos) -{ - FILE *midfile; - const char *tempname; -#ifdef USE_RWOPS - if (canuseRW) - { - SDL_RWops *SDLRW; - void *olddata = Smidi[selectpos]; //quick shortcut to set - - Z_Free(olddata); //free old memory - Smidi[selectpos] = NULL; - - if (!data) - return olddata != NULL; //was there old data? - - SDLRW = SDL_RWFromConstMem(data, (int)lumplength); //new RWops from Z_zone - if (!SDLRW) //ERROR while making RWops! - { - CONS_Printf(M_GetText("Couldn't load music lump: %s\n"), SDL_GetError()); - Z_Free(data); - return false; - } - - music[selectpos] = Mix_LoadMUS_RW(SDLRW); // new Mix_Chuck from RWops - if (music[selectpos]) - Smidi[selectpos] = data; //all done - else //ERROR while making Mix_Chuck - { - CONS_Printf(M_GetText("Couldn't load music data: %s\n"), Mix_GetError()); - Z_Free(data); - SDL_RWclose(SDLRW); - Smidi[selectpos] = NULL; - } - return true; - } -#endif - tempname = va("%s/%s", MIDI_PATH, fmidi[selectpos]); - - if (!data) - { - if (FIL_FileExists(tempname)) - return unlink(tempname)+1; -#ifdef MIDI_PATH2 - else if (FIL_FileExists(tempname = va("%s/%s", MIDI_PATH2, fmidi[selectpos]))) - return unlink(tempname)+1; -#endif - else - return false; - } - - midfile = fopen(tempname, "wb"); - -#ifdef MIDI_PATH2 - if (!midfile) - { - tempname = va("%s/%s", MIDI_PATH2, fmidi[selectpos]); - midfile = fopen(tempname, "wb"); - } -#endif - - if (!midfile) - { - CONS_Printf(M_GetText("Couldn't open file %s to write music in\n"), tempname); - Z_Free(data); - return false; - } - - if (fwrite(data, lumplength, 1, midfile) == 0) - { - CONS_Printf(M_GetText("Couldn't write music into file %s because %s\n"), tempname, strerror(ferror(midfile))); - Z_Free(data); - fclose(midfile); - return false; - } - - fclose(midfile); - - Z_Free(data); - - music[selectpos] = Mix_LoadMUS(tempname); - if (!music[selectpos]) //ERROR while making Mix_Chuck - { - CONS_Printf(M_GetText("Couldn't load music file %s: %s\n"), tempname, Mix_GetError()); - return false; - } - return true; -} -#endif - - -void I_ShutdownMusic(void) -{ -#ifdef HAVE_MIXER - if ((nomidimusic && nodigimusic) || !musicStarted) - return; - - CONS_Printf("%s", M_GetText("I_ShutdownMusic: ")); - - I_UnRegisterSong(0); - I_StopDigSong(); - Mix_CloseAudio(); -#ifdef MIX_INIT - Mix_Quit(); -#endif - CONS_Printf("%s", M_GetText("shut down\n")); - musicStarted = SDL_FALSE; - if (Msc_Mutex) - SDL_DestroyMutex(Msc_Mutex); - Msc_Mutex = NULL; -#endif -} - -void I_InitMIDIMusic(void) -{ - if (nodigimusic) I_InitMusic(); -} - -void I_InitDigMusic(void) -{ - if (nomidimusic) I_InitMusic(); -} - -void I_InitMusic(void) -{ -#ifdef HAVE_MIXER - char ad[100]; - SDL_version MIXcompiled; - const SDL_version *MIXlinked; -#ifdef MIXER_INIT - const int mixstart = MIX_INIT_OGG; - int mixflags; -#endif -#endif -#ifdef HAVE_LIBGME - I_AddExitFunc(I_ShutdownGMEMusic); -#endif - - if ((nomidimusic && nodigimusic) || dedicated) - return; - -#ifdef HAVE_MIXER - MIX_VERSION(&MIXcompiled) - MIXlinked = Mix_Linked_Version(); - I_OutputMsg("Compiled for SDL_mixer version: %d.%d.%d\n", - MIXcompiled.major, MIXcompiled.minor, MIXcompiled.patch); -#ifdef MIXER_POS - if (MIXlinked->major == 1 && MIXlinked->minor == 2 && MIXlinked->patch < 7) - canlooping = SDL_FALSE; -#endif -#ifdef USE_RWOPS - if (M_CheckParm("-noRW")) - canuseRW = SDL_FALSE; -#endif - I_OutputMsg("Linked with SDL_mixer version: %d.%d.%d\n", - MIXlinked->major, MIXlinked->minor, MIXlinked->patch); - if (audio.freq < 44100 && !M_CheckParm ("-freq")) //I want atleast 44Khz - { - audio.samples = (Uint16)(audio.samples*(INT32)(44100/audio.freq)); - audio.freq = 44100; //Alam: to keep it around the same XX ms - } - - if (sound_started -#ifdef HW3SOUND - && hws_mode == HWS_DEFAULT_MODE -#endif - ) - { - I_OutputMsg("Temp Shutdown of SDL Audio System"); - SDL_CloseAudio(); - I_OutputMsg(" Done\n"); - } - - CONS_Printf("%s", M_GetText("I_InitMusic:")); - -#ifdef MIXER_INIT - mixflags = Mix_Init(mixstart); - if ((mixstart & MIX_INIT_FLAC) != (mixflags & MIX_INIT_FLAC)) - { - CONS_Printf("%s", M_GetText(" Unable to load FLAC support\n")); - } - if ((mixstart & MIX_INIT_MOD ) != (mixflags & MIX_INIT_MOD )) - { - CONS_Printf("%s", M_GetText(" Unable to load MOD support\n")); - } - if ((mixstart & MIX_INIT_MP3 ) != (mixflags & MIX_INIT_MP3 )) - { - CONS_Printf("%s", M_GetText(" Unable to load MP3 support\n")); - } - if ((mixstart & MIX_INIT_OGG ) != (mixflags & MIX_INIT_OGG )) - { - CONS_Printf("%s", M_GetText(" Unable to load OGG support\n")); - } -#endif - - if (Mix_OpenAudio(audio.freq, audio.format, audio.channels, audio.samples) < 0) //open_music(&audio) - { - CONS_Printf(M_GetText(" Unable to open music: %s\n"), Mix_GetError()); - nomidimusic = nodigimusic = true; - if (sound_started -#ifdef HW3SOUND - && hws_mode == HWS_DEFAULT_MODE -#endif - ) - { - if (SDL_OpenAudio(&audio, NULL) < 0) //retry - { - CONS_Printf("%s", M_GetText(" couldn't open audio with desired format\n")); - nosound = true; - sound_started = false; - } - else - { - CONS_Printf(M_GetText(" Starting with audio driver : %s\n"), SDL_AudioDriverName(ad, (int)sizeof ad)); - } - } - return; - } - else - CONS_Printf(M_GetText(" Starting up with audio driver : %s with SDL_Mixer\n"), SDL_AudioDriverName(ad, (int)sizeof ad)); - - samplecount = audio.samples; - CV_SetValue(&cv_samplerate, audio.freq); - if (sound_started -#ifdef HW3SOUND - && hws_mode == HWS_DEFAULT_MODE -#endif - ) - I_OutputMsg(" Reconfigured SDL Audio System"); - else I_OutputMsg(" Configured SDL_Mixer System"); - I_OutputMsg(" with %d samples/slice at %ikhz(%dms buffer)\n", samplecount, audio.freq/1000, (INT32) ((audio.samples * 1000.0f) / audio.freq)); - Mix_SetPostMix(audio.callback, audio.userdata); // after mixing music, add sound effects - Mix_Resume(-1); - CONS_Printf("%s", M_GetText("Music initialized\n")); - musicStarted = SDL_TRUE; - Msc_Mutex = SDL_CreateMutex(); -#endif -} - -boolean I_PlaySong(INT32 handle, boolean looping) -{ - (void)handle; -#ifdef HAVE_MIXER - if (nomidimusic || !musicStarted || !music[handle]) - return false; - -#ifdef MIXER_POS - if (canlooping) - Mix_HookMusicFinished(NULL); -#endif - - if (Mix_FadeInMusic(music[handle], looping ? -1 : 0, MIDIfade) == -1) - CONS_Printf(M_GetText("Couldn't play song because %s\n"), Mix_GetError()); - else - { - Mix_VolumeMusic(musicvol); - return true; - } -#else - (void)looping; -#endif - return false; -} - -static void I_PauseGME(void) -{ -#ifdef HAVE_LIBGME - localdata.gme_pause = true; -#endif -} - -void I_PauseSong(INT32 handle) -{ - (void)handle; - I_PauseGME(); -#ifdef HAVE_MIXER - if ((nomidimusic && nodigimusic) || !musicStarted) - return; - - Mix_PauseMusic(); - //I_StopSong(handle); -#endif -} - -static void I_ResumeGME(void) -{ -#ifdef HAVE_LIBGME - localdata.gme_pause = false; -#endif -} - -void I_ResumeSong(INT32 handle) -{ - (void)handle; - I_ResumeGME(); -#ifdef HAVE_MIXER - if ((nomidimusic && nodigimusic) || !musicStarted) - return; - - Mix_VolumeMusic(musicvol); - Mix_ResumeMusic(); - //I_PlaySong(handle, true); -#endif -} - -void I_StopSong(INT32 handle) -{ - (void)handle; -#ifdef HAVE_MIXER - if (nomidimusic || !musicStarted) - return; - Mix_FadeOutMusic(MIDIfade); -#endif -} - -void I_UnRegisterSong(INT32 handle) -{ -#ifdef HAVE_MIXER - - if (nomidimusic || !musicStarted) - return; - - Mix_HaltMusic(); - while (Mix_PlayingMusic()) - ; - - if (music[handle]) - Mix_FreeMusic(music[handle]); - music[handle] = NULL; - LoadSong(NULL, 0, handle); -#else - (void)handle; -#endif -} - -INT32 I_RegisterSong(void *data, size_t len) -{ -#ifdef HAVE_MIXER - if (nomidimusic || !musicStarted) - return false; - - if (!LoadSong(data, len, 0)) - return false; - - if (music[0]) - return true; - - CONS_Printf(M_GetText("Couldn't load MIDI: %s\n"), Mix_GetError()); -#else - (void)len; - (void)data; -#endif - return false; -} - -void I_SetMIDIMusicVolume(UINT8 volume) -{ -#ifdef HAVE_MIXER - if ((nomidimusic && nodigimusic) || !musicStarted) - return; - - if (Msc_Mutex) SDL_LockMutex(Msc_Mutex); - musicvol = volume * 2; - if (Msc_Mutex) SDL_UnlockMutex(Msc_Mutex); - Mix_VolumeMusic(musicvol); -#else - (void)volume; -#endif -} - -#ifdef HAVE_LIBGME -static void I_CleanupGME(void *userdata) -{ - Z_Free(userdata); -} -#endif - -static boolean I_StartGMESong(const char *musicname, boolean looping) -{ -#ifdef HAVE_LIBGME - char filename[9]; - void *data; - lumpnum_t lumpnum; - size_t lumplength; - Music_Emu *emu; - const char* gme_err; - - Snd_LockAudio(); - if (localdata.gme_emu) - gme_delete(localdata.gme_emu); - localdata.gme_emu = NULL; - Snd_UnlockAudio(); - - snprintf(filename, sizeof filename, "o_%s", musicname); - - lumpnum = W_CheckNumForName(filename); - - if (lumpnum == LUMPERROR) - { - return false; // No music found. Oh well! - } - else - lumplength = W_LumpLength(lumpnum); - - data = W_CacheLumpNum(lumpnum, PU_MUSIC); - - gme_err = gme_open_data(data, (long)lumplength, &emu, audio.freq); - if (gme_err != NULL) { - //I_OutputMsg("I_StartGMESong: error %s\n",gme_err); - return false; - } - gme_set_user_data(emu, data); - gme_set_user_cleanup(emu, I_CleanupGME); - gme_start_track(emu, 0); - gme_set_fade(emu, Digfade); - - Snd_LockAudio(); - localdata.gme_emu = emu; - localdata.gme_pause = false; - localdata.gme_loop = (UINT8)looping; - Snd_UnlockAudio(); - - return true; -#else - (void)musicname; - (void)looping; -#endif - return false; -} - -boolean I_StartDigSong(const char *musicname, boolean looping) -{ -#ifdef HAVE_MIXER - char filename[9]; - void *data; - lumpnum_t lumpnum; - size_t lumplength; -#endif - - if(I_StartGMESong(musicname, looping)) - return true; - -#ifdef HAVE_MIXER - if (nodigimusic) - return false; - - snprintf(filename, sizeof filename, "o_%s", musicname); - - lumpnum = W_CheckNumForName(filename); - - I_StopDigSong(); - - if (lumpnum == LUMPERROR) - { - // Alam_GBC: like in win32/win_snd.c: Graue 02-29-2004: don't worry about missing music, there might still be a MIDI - //I_OutputMsg("Music lump %s not found!\n", filename); - return false; // No music found. Oh well! - } - else - lumplength = W_LumpLength(lumpnum); - - data = W_CacheLumpNum(lumpnum, PU_MUSIC); - - if (Msc_Mutex) SDL_LockMutex(Msc_Mutex); - -#ifdef MIXER_POS - if (canlooping && (loopingDig = looping) == SDL_TRUE && strcmp(data, "OggS") == 0) - looping = false; // Only on looping Ogg files, will we will do our own looping - - // Scan the Ogg Vorbis file for the COMMENT= field for a custom - // loop point - if (!looping && loopingDig) - { - size_t scan; - const char *dataum = data; - char looplength[64]; - UINT32 loopstart = 0; - UINT8 newcount = 0; - - Mix_HookMusicFinished(I_FinishMusic); - - for (scan = 0; scan < lumplength; scan++) - { - if (*dataum++ == 'C'){ - if (*dataum++ == 'O'){ - if (*dataum++ == 'M'){ - if (*dataum++ == 'M'){ - if (*dataum++ == 'E'){ - if (*dataum++ == 'N'){ - if (*dataum++ == 'T'){ - if (*dataum++ == '='){ - if (*dataum++ == 'L'){ - if (*dataum++ == 'O'){ - if (*dataum++ == 'O'){ - if (*dataum++ == 'P'){ - if (*dataum++ == 'P'){ - if (*dataum++ == 'O'){ - if (*dataum++ == 'I'){ - if (*dataum++ == 'N'){ - if (*dataum++ == 'T'){ - if (*dataum++ == '=') - { - - while (*dataum != 1 && newcount != 63) - looplength[newcount++] = *dataum++; - - looplength[newcount] = '\0'; - - loopstart = atoi(looplength); - - } - else - dataum--;} - else - dataum--;} - else - dataum--;} - else - dataum--;} - else - dataum--;} - else - dataum--;} - else - dataum--;} - else - dataum--;} - else - dataum--;} - else - dataum--;} - else - dataum--;} - else - dataum--;} - else - dataum--;} - else - dataum--;} - else - dataum--;} - else - dataum--;} - else - dataum--;} - } - - if (loopstart > 0) - { - loopstartDig = (double)((44.1l+loopstart) / 44100.0l); //8 PCM chucks off and PCM to secs -//#ifdef GP2X//#ifdef PARANOIA - //I_OutputMsg("I_StartDigSong: setting looping point to %ul PCMs(%f seconds)\n", loopstart, loopstartDig); -//#endif - } - else - { - looping = true; // loopingDig true, but couldn't find start loop point - } - } - else - loopstartDig = 0.0l; -#else - if (looping && strcmp(data, "OggS") == 0) - I_OutputMsg("I_StartDigSong: SRB2 was not compiled with looping music support(no Mix_FadeInMusicPos)\n"); -#endif - - if (!LoadSong(data, lumplength, 1)) - { - if (Msc_Mutex) SDL_UnlockMutex(Msc_Mutex); - return false; - } - - // Note: LoadSong() frees the data. Let's make sure - // we don't try to use the data again. - data = NULL; - - if (Mix_FadeInMusic(music[1], looping ? -1 : 0, Digfade) == -1) - { - if (Msc_Mutex) SDL_UnlockMutex(Msc_Mutex); - I_OutputMsg("I_StartDigSong: Couldn't play song %s because %s\n", musicname, Mix_GetError()); - return false; - } - Mix_VolumeMusic(musicvol); - - if (Msc_Mutex) SDL_UnlockMutex(Msc_Mutex); - return true; -#else - (void)looping; - (void)musicname; - return false; -#endif -} - -static void I_StopGME(void) -{ -#ifdef HAVE_LIBGME - Snd_LockAudio(); - gme_seek(localdata.gme_emu, 0); - Snd_UnlockAudio(); -#endif -} - -void I_StopDigSong(void) -{ - I_StopGME(); -#ifdef HAVE_MIXER - if (nodigimusic) - return; - -#ifdef MIXER_POS - if (canlooping) - Mix_HookMusicFinished(NULL); -#endif - - Mix_HaltMusic(); - while (Mix_PlayingMusic()) - ; - - if (music[1]) - Mix_FreeMusic(music[1]); - music[1] = NULL; - LoadSong(NULL, 0, 1); -#endif -} - -void I_SetDigMusicVolume(UINT8 volume) -{ - I_SetMIDIMusicVolume(volume); -} - -boolean I_SetSongSpeed(float speed) -{ - - (void)speed; - return false; -} - -boolean I_SetSongTrack(int track) -{ - (void)track; - return false; -} - -#ifdef MIXER_POS -static void SDLCALL I_FinishMusic(void) -{ - if (!music[1]) - return; - else if (Msc_Mutex) SDL_LockMutex(Msc_Mutex); -// I_OutputMsg("I_FinishMusic: Loopping song to %g seconds\n", loopstartDig); - - if (Mix_FadeInMusicPos(music[1], loopstartDig ? 0 : -1, Digfade, loopstartDig) == 0) - Mix_VolumeMusic(musicvol); - else - I_OutputMsg("I_FinishMusic: Couldn't loop song because %s\n", Mix_GetError()); - - if (Msc_Mutex) SDL_UnlockMutex(Msc_Mutex); -} -#endif -#endif //HAVE_SDL diff --git a/src/sdl12/sdlmain.h b/src/sdl12/sdlmain.h deleted file mode 100644 index 1e497b10d..000000000 --- a/src/sdl12/sdlmain.h +++ /dev/null @@ -1,65 +0,0 @@ -// Emacs style mode select -*- C++ -*- -//----------------------------------------------------------------------------- -// -// Copyright (C) 2006 by Sonic Team Jr. -// -// 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 2 -// 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. -//----------------------------------------------------------------------------- -/// \file -/// \brief System specific interface stuff. - -#ifndef __sdlmain__ -#define __sdlmain__ - -extern SDL_bool consolevent; -extern SDL_bool framebuffer; - -/** \brief The JoyInfo_s struct - - info about joystick -*/ -typedef struct SDLJoyInfo_s -{ - /// Joystick handle - SDL_Joystick *dev; - /// number of old joystick - int oldjoy; - /// number of axies - int axises; - /// scale of axises - INT32 scale; - /// number of buttons - int buttons; - /// number of hats - int hats; - /// number of balls - int balls; - -} SDLJoyInfo_t; - -/** \brief SDL info about joystick 1 -*/ -extern SDLJoyInfo_t JoyInfo; - -/** \brief joystick axis deadzone -*/ -#define SDL_JDEADZONE 153 -#undef SDL_JDEADZONE - -/** \brief SDL inof about joystick 2 -*/ -extern SDLJoyInfo_t JoyInfo2; - -void I_GetConsoleEvents(void); - -void SDLforceUngrabMouse(void); - -#endif diff --git a/src/sdl12/srb2.ttf b/src/sdl12/srb2.ttf deleted file mode 100644 index 53f4c6a28a2adc0c97df4a7570ace24cf4949580..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 318280 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 z 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
^jfk{X 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%0A540{g^dk+q;+CRK+*t>;4 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

4LX)MYD(IfyIFCRTI$5f$EOb8?^ao8AR>kkn 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

xJXSw-Hjc^90K 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%0D@?Xpt>T;jZ_r?68}13l@S?dlHGHeK52l3*jm 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%0D=a9=YjY@s13MFSkLZ7p!qc2mh|7pRqGAF(8 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

^4faxtRAs{9*izw<7{~ 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

    %WihQx)-w3ir>~FysO>oae zX1oLei%zx6x6mXl#stp|ILA5EO0rx)QJQ{{UuFiI4F=2#cx2tHoj}@f!bc=tO^->ipqvx|O)z|1nrh zC2sJy!eT0Mqkj+ZTZSps%bUO*XjO)U@^7pQ(`f-Yma{o7*o5>@Q=b`y2vyApM}NLuCx5# zg2mLXv;FtLVrthp{$IjkYS+2`H(@cg>pcI5u-Mvlfq(J!-rDtP|531;+I69SBP^_4 z{_9Y?I1|Q1m~&*w%`p6l$&a^o{SKnguY+HyT}+_}0bB^PxMbqAOH;d+T81gr%>R!EZA+q7)=PB=T;nN4J?`3MTMMZmB)U7^^$|GU3dB~{kB`X ze&YWYET(q-R4k@;-R-{zjHzAs`2PTlsa-$wN5A9Nu6zAUU@^7pK7Tzdrgq)$?}NqE zt_S=hu$bEQbN}hEEQw48QCA)kH%lXj=fU!@xT%bMoqg0JVyTI|NXw)C%i*Rra=Zh} zWBwapSrs{)mdC~GHOPid$c8Z2TcUT!N{r;=XAtq2{CF$iR;JpS!mm_7W`YO-yn-N$ zis{!bO$Gd(WtbV7nY{x3+zK+IJc8Z|_^y><{$*qkfnoqs0hyVaF%|F#%P?n!fp`nd zrOaImoIoj7K<2UqcMxQ%n2p*~9_5Dnv&hiQJhkFqg*j8BJli0;My-$P zxHW1{pam9Fqvndm)TnuZ&0tK83I#5N#nh;9;6_+Xe-#Nl1dFLr`viUqi>Xo3zz49H z8Z|#K?|W{I$`9-hi>XnC;>OgdB5`ACRIyl0jam?>g&R|&Vu3bTOpRJ7UayHf7C==h z35>EU99t zXirTAO^~6PMP$WSTXB|-7MBjyj3(2TzQm=em_{!R5ktH<8h4yYE6L*19%UqFj6JWk z(k$N`X?XUqrCH)0n!{J-1n5kw%Ic%nV;z`lzq&qrHpztg0i8(4l z052fO_QcH8E=_y7$}-GZ&CK4OZnuKWb&sI8J-udSSQr@@L?8%2+7nAgGp0QqU>O#Z zFc4n}b193;0_~Jydt#AUu%94P#WK;Jn)WnJhGrI!6~D-evuw1uw>^Es(kvklZJN^0 zEX^|W&@&dH>T}8ByLRGc~~r_?K~2A0&Yy(c{K1kET-)|CSIGi^F$zUi)lML zBTUnIGOz@AOJ)u8slYk_DZPgIbYL4SIHNl>gp<9~r^+hlGl6pevKg&L28X$=gk2?W zI7u58%C5Y>Vp#RUFm(hPpw;oN8_q>ISvYX@m10PP@VRbPAx1Z?MI2lq=cH{7TU>AQ1vs1hcqg7}}*t=@QE@K+Skl zS`RdnQmV2YuBUQmozO+t!RD^DPUvaQyxZM`p6=`qi%ICG#9|V<$EgJ)hvRr;OhwOd z+5qH->Lw<}PF2w}#afJ555Vg%e8jqk?4e5v0+5Z#k2meFKolFT_?5IXY!L!DA7*jM zV6{t=_Jm~^z7<~$b0)>|@SaX=Irika53dvZHD}QsZeqXg91e>~>^H<>68lZ38B9d4 zk6-5;4@8i9v-Isg&j zxdBO3A;_5gc(dbA5Oth?;8(JPu@fPH`@<|Q88PkBWXCcxRI18YTJbi5?Clv#3vMRJ zhQqjOKgQIe&u1 zMPG8Nfyyq6JwWBMNb$>(A>4JLF5l>{ zoD`(j=$*k=oSm>V>dnAkJ6FNdqBjFyb$$X%iji-`Tb<)uG5XPmIbL&~1Jg;Sd0_kY zfi9fMP|@Ew{s%EGV$?k7Z=C~yt~Y5i#iXLIJ6ixBZ{V!4sfxbg{4dB&hV(3=sOayU zw?PeAck&t53&JY;rnC4VrA7?rSu0l2x119}jTx#-o`UEenB2*!;!04nmi( zRJ_5e=wF@tL0py_9~J#S=XDTQNC|tcw75RL=llo!m2^03w*1Xm^a$Q+z*Whuh{xbC zl!{0HF0JcY+?E+K$oqm^kBg*yfjIhs(+fv8FwpMFfgMv@sMb9C4`&b1n;4V_{ipLy zpg2~^lRx-+c&LAggWKs%@96NZiSbDk<%iD0kiV0@WWawre*kzlC2=rlcoKCPdzsGs zNAU;)B{Seh&c^^gNJ%+os-h~m0m!2iGl(zvDIibcj4=+PCgn;HR;7Yp1^BEhX7NDq zPTVeI7~pv2|FYs-p9Q3D7uRnQ`N#^Mfs*BjQ@0`I`ZQ9vFNC66+;(v(Sm)8=#MuM9xAl4t@lB zlep&nq3A)ulBe)_5qSX)mYOq?9Roe>QPCyAR!EO|0=LW|!9g$+o^UO5Xz+9}(=*)2 zLGFPa(}=`j!LLDN_YB7#k)^@=A#&PYeQ8zE!-Kzv$ez9W0+Azv`#g=$&t840SJ96J zS3%_bz4`)?%HSr5d`5iHhuqDxB+;ti1z;`_$JtDE@MbWV&2ZB+IefB;E(<;d_KF$q zG+PsV7wnbd7WGiql;y$DGx!vV6Bk?&OaQ#r7M^D!r=mv&Tfto~zGM-#!9fr=h)-F> z%HZiBZpwAxDV3w7;BLuv>XA5F%I)^O`GGQ7CB=5<-u!^XF;Z%G@68XC$Z9FH`}XDs zB#xCbdr-GYc1F@MsOXyD4M^jo8t<Zf}AaQ1TVNo z;(M*7`K{8lN$9-*O5b-;@mS`O#1Mmj<4*}SQ{WL?itdMjzsG-CL1}?JSR}!lvW3Lc zjL&lN_o4~-BXV<*%kYAG9#}21UR=L7FJ|*cgpEI3^mUvu>(B3I@ki2^iG_$5*WAf; zoLj8x12Bc~q}H8a$0Yi~8izcBgfk)5;rdw|WoYj-+B&I7WC6B*m1vxd+g6;tWMB-sfb8_VI$F!#3Tbk1) zPaF-M2UL>4iIc~5CKh5c>(2*UY0jx~rGI^fM7PJva7yI~Fq0`#46;dTvf@lP-I>2bX{-Q14&vze-eL6sN%tKj<=FmXG_uwS__?Ph3;~NXaavf{*>^7HTFNO z(Ce-cO<*+tq~#q+hJ0w2Pkl5OYH_^uT?#1*0mjOG`>BH7aJ@{$>}LZ};mN~rn; zN6f6`?rcd~L2IFYE5s?Dr{LHYAau5+In(pd^N{PHzhP-k`8@PTRYL#F(wzHw=>Mz{ z`ZY^)3aDwS<+i1XcMx<+ITQ5I<|f1emhN-ur?E>DqZLu(A}bPUg*XS)ei(kxGM{r9 zn&9Sg{3)SwDD<6H=!dQlO<*+tb<4lx@=_SILWq5U>V9oh;vkrm+YRcm-SYLvsI6bl(r<+_`Agla`NgCl+hU5pM6#EVk^jbtVhuJ zbGxNEk@e8@0&#xM(wx$2nnN`(f4256lQ zDn=`4ZhSe;Yp@i4cP`EVA6kH^SISzibiMg zMNXG1b+Pl+KZ?|9`c-oRrD${(e>1q-mAWo?;-5sShJLL)i&8W?i$6c-Dp%^VIhVgH zQv6-K`rDME(OG=!-1}UqAI^Q_uar9M=pd+r7CrR}Rfn!`ZlyX>D9q~bXhKmjH3;Lunlv?xdR%77G^IN5Kp6A|?@geG&-Oqi>)!Y@d8i?sjnBjY zns)!6w=a*6syg34leq~K2$>0l1Ozn#V^Fq)MG_Wel1!3;Y-S;#=n#?#iDWYii&{6p zLQ$)>*0puFZf&jF)~Z$NQmtLIYFoEftQ%HTirT7O{5|h`&VA?3hJOF~C7+pj&byuc z-gD1A=RHXUboB5}nv~0N!%b;YCPxfkrA{WF)rAwga3)eTZg?(DC8MLqxi_fHUJl=DFw&?jyZAixe}upz+oqeT%B~BdXmWEVuO#|L=Kl3oaM%G zN>Zg_~H6jpHO0hX@*!5m_B;2|jimVyhiZ5@&x=oNNrvjvZ2R z3R}R@fZ_Kzg@~>oI6h9rr{cx2Eivrks^Vgt^QIF`E|Q&GJ_;{T5-kt-OHRhuG2=v+ zl*}-B#8o)lC8-1@49D0d=|bg9hI*NV_4F{=uEvh6`kl~66oA;j!htQ`<@v~p0}XNQJJ%1m=)9p zsfVI*>&7@chTkas)eakTVq~0s2hCcWnHwWQhbcyD2dD2ib4fg10mVreRFXJSFkV3y zK28@*V2}b%@^R9g7egHA6UWj;j5B>4bUJWPrwQl!IOsTx&d_nTPduGs#`!*RWSvr+ z@e@xcah&kuBs&TTr~JfnbaHS;VjP*w;GD!*s*V(gCB~6Scu(wo6g^#={$(t^vDnZb zjiZ-Vm6nwTaZ*_|&Tpy+u5M6|#Ys?&(jkV%z~ixOIr`ABpNM6bl@~{w%C8c6I#EG>uG{7cGp{4@gaN-}6 zp*Z21dK}ahBkWe=DA9$-K0)bUM+5l6S??#LAIYyeRKl5G4llSkX^u}Up_a;Jh7>Rp z$N2^M;3<`+#!)Q_^n0Lc%G9i>`(Ccybh3Si*Ya0}8m5<;Ro9@xsLvfoJ^bR98#r0mYX?&R~1s zLl4fouw15ZgDPA~6_-m4&=Fon1u;>LqgV=$KMoeAg%C-uuW)(rZ%8i*Mgn~u+F@(c z$N;U+fhVlO08g9dz-1NQif*FiTOHaDSz#H?C0RLesu|BICys~8fY+6Q4G(%f?3isx z6;@DQve0{?RNF5%xIs#ePkS_81;}prsclkn3oE~ml>3ksl~q`MIVHT25*gwtuAD0N zoL;y>C#;OTr4_E^w5V~UQ&`gmm1(!Y()6Ojy1$Y>XIvH5lQET}v#$ypCJ?PIY8(mruepVE zE_GpPhX2~?Hxc)06qo+cT%H4G>22*@k&b5g zU}hoZzm8f|Lr!BqmMxLvb^rBrU2M*=oj3V!AYVMI)i{dIf8$FO^FNTI0{>0VA?6(8 z&O~2*{Wo*=ZK83^Y4}hA@*sN*F`ZB0zl&4jDjr9HA8_=p;zbnr zAxG&dro$=xKcYaE>)472RzqOfQ^zWJHSWh+*#5z-%76DQ;QAcgrmgT4)@!qWOzd3O zu~?vja|2>|_YiNQ>saIIt7fFTL;3Ih1i6@kW<+WC-}e_}!*_TZmJ<0NnEy5kR4>Ow z{j@9pgLM5-y45^Ht!9d0w+vw=nDYPPbF}m6hGvTSVam;nocfXBfstY3k=y?Wy_=pj zo*Z)f_fU-&jVA}*{$Em8SdgQAYx^H1)e<$1lH-5uW|XOARUl21UaH0X%!lY%v;1xD zeW36vZ-2x+>K&wycPaQ!b5B7)uR!+qa=^no1pTMGmxGg)RRCH4W_K6?ydrx2J9pA)?lyu$q#1ZU{kI~QOc ze>s( zPiWHWZpcJzneU1WA#mu*fvtcx|54#HqGW(gmj%nZ-4>z@+Zp&h@EEEY|26Iq5(GCe zpk!`E+p6&wTNl4;*VRJn2f(JT7F&-ZVCrfa2TWZBthY%;*Hx93{&%UX8tWJYOkFjy zwTbNL!@t@Jfis0xIy#)z)xe>i@~^eFfLAcOvKu~id-{j4BAwmK;Wo(Y==|;0_aQKS zbZcApF#O9I$LjuW>miV5jBak*7^&af2RBJw-Kgyz>lKh^*$!|VoYSrS;1p3JoVU61 zwt=?w-53heVnzQjj-;UF-&jfL6jJ^zRxud70z8&+mUSW+OG(4z&0gN?KiAp_)^bO- z4U1PQ`?oW@BI^w|Drcv)8?x29t$iOQoX20zR!Y;c7FQUzQmP;p0`Xp8ZlzQ=S~H=Q zK4r^Ll{sWgE8TCisS+J*XDb~8mYxI`nQ|Z`fbKDtHP_}33ZL$3{2qX(?(>KNLAq*T zQrs55R>T>x_J46jfy|9yP153L+u~I5cFuob6RFyDvPmlqv{z4h$$ zTS!Is*6rz!BVewqyVCa|V0!B}+1f-bTpsDw_XYHY%hSick6x?0@YU(F5hxhVz99Li zgwD2htkma$Cx#E{HDFKIrP2w*dHm&UzVw~|F8sjb=1VDNArJ?NNH0Mtv05{s`F`D& zp*%QbO!K|dW>c;lY-jU*+LjrGv}zf?j8hP)pbm%qU$#)82oVB@h7fq+g#f3OGVF-x z2_zrv`Jj%W>hj;5eiNz=3%x+e+z4j1e}2ZjAJ`SRDC0R`Q-Mn}-a)`r;0YWs6Em z2voj$(sKlMRp9cj8=CU($T$(qrTRL!D`O)9e9f$ZpX1oU<3$-ez^u^a|67z;9)CGo z8NFx1^$;7GE^E48PmEywAoZX4z{y(XM@GjtP~k;HxxuF=&Em7^K2n1 zCT-|vGl5JOXtmi?PMUpj9jkA$IX@H*-_5xt6Ai|x%UjkZwj`CAwsFcVAd`*w?m!<{TX(MOvJ`iIoQ@4!2{X)o=9s~cTYrbN38Ddz#)gq zg^55r&R}q#>8ntCQc5aaFtrv8mbG+hE3(Fq(#x|z(CTFq2q|H_j#CYJFZhg z%dm+8+`}km*S3G6)S?cYzlc3`Ta@b*(nr2azCqkD$*zKI$qovxBjL*tEWH$85C2c8 z@W)CmP8(LPB79r??Qs>U(p$j)0Q@s;elhXgqxZR0>0^d>MI3L|1XYTMSvBDcrG8|1 z>4+A8rJv(#G3ZZfx|Qx8!*m}~OZ3--eiYM>HuQf9eLm9{f=>3m$Oxr7-Cf1>1|wgn z>9F6(^wo&J6Y@)qeA*Ba(*ff7AT}5xGQ4C2v>QQNLIp(tt?%e|vDN)LejPuM&ROezh|-KQYtD3_Y+ATCX}l$r~o;s(W0 zg!(9oSE#-Cz&(wl`P323D|R#mV6TAkc@B%Evq0oIb=Ubl-3bu}ZSj>mCM;hO%ojtV+<`(KslBu{>QLM>xMicdODcO5xvRBM`@^9O-LUuKz3ni(12G{7#@v6c+&K zt6~`y*SSbGS`}J@`%|ULec+-Ulpo2zRs|`4032+_*B=lly&DSD=AQ>amjV{_C{_6j z(BITFmF6i>Oa2N1H5s++Y9MO%x@hhuaaGk+Q4_Y4T#BKexhG+xPh<-YKn|dQrn;zl z6&_7C(`r*XPR>PU6kEpp}B%GItgYbg6lfk^*_of z!O?uBCeJH1 z@hCfKo9PFQ8Q)nXq?UaFsprx7NeYy6SZotamYxaD=ivO=wgGDCH6TuLAu&iTsieF2 zL6(%#-LGlnNrPbJEfCBxLe%Y-jX~DvYC>8hp-Q_U(ga&2wixM+hgiraKyS%(Q_{;u z0M3TEj`r8E0ITG9I7&RgM9Z4K3Ku}0hnKEc=ip>~kxu_%7Kd&*-mp7Oj z8D91%SEK7+OzYUPp}VRjgttJeU36qH{w#~eP&{BEnV9WSZ-8(jw|rPZqu0+Pp}x+3 z)8uo>b+2qg*!GW4EmlZd)g! zIjrQ2ZQ^dyPhoCOo4GkXf^ewM9u~T`a9qzZ(L6F48l|dwjR=zz>Z$b_^^9R^&= zbqyEiCrE5*He{%Wd}h)>&AN0Bh}1)-LQyx>eK12QkL@8#sv$@{Z^>x@)HBqoFLYil z-9LVSbW{IWV=TEZ#h|NnD`Y6rK11bu>Qx|8q*oj&QuLl-9l5=S^hQ1s`A zgfy3JHxgPa%FX3UYQ@;5qQ12$yuKgj#0?K(;@$P94@08w_ zlsoj0d6w4jL1Q&_VEb?uc)-zJcgA+QS<$F7kMf;&I%3G9TasEs^6hj+aJv?@PUB8U ztuF815a2Iumaa(k>rcb(O)YxNVlqKZIgbY9Q6aj$)4MSv79cTdCLE=fJ&EGQDWnk- zYmbYDjXF)7hv48~|Da}O1Ss`1a?E=S6{=1qUH0za6q?E8mcBuAGEFq|7px@(a=9Is z{wf;b={VQYV3dZ2G|4`s4xdTmygVAFDPgUQY+c`vbJEnYQ)s{!$3=IS-Fh5Gt4k{DdN=h; zF5Wo^J>yO1Yw-4bsKT|8ea#0hY?wOan0*EEL+wmqn z40D*XGIEEfQL~~RA2p{D>1#FIQOpa0ib43+8RX%`m^-<(QP1xcF<3Yj&Fi*KXi^nWU4~@so&I>w$bVKDp zhUFSF1|nlz;Eb99`6*-ZHkD*CzcSwC&SrKxu}6;;b0y%8ft_sIdKP#lK)kUoS7sc8G(FLjPMF{-oTOvOOGgaYn>^l; zk%=Z(oa{+Qv%q1bLP?q|rkFh?-=TPTG)3_9YD}`&k@2jUHv>xrC>VNBJzB zgdrejGu z=q%2fL_Ax9YF>3UDq_k z(k5cm>IkCsEu5p<2(&`uMGudIQELu5RmUP2;CQsXk_A!ouvfb4d>0ydF*l~g-#Fi; z(k5P7hIp5Np@@NJZVfLln?#{ywuVy2&vBhF$<9P*d;yoy3DNj4R2+lO6hM?F1sK@O zflWy`B@ho4#hlfOF|L+;q68NZ1*xmlaS^Rb;!2OnI`OJa8KK6h$U-JQ3c|>W!x3X6 zOs^iZhHGS{DFVZ<8G`~CmqCVV9hxvyX9|^L)VZsVMumBYs5l0*$rAV-U8jwvOiTis z90@=)cxckuZQ*=_vP$P0w{8;y8p8>bC~vDJ7H$Dcxyh^%BBxXnPjV79>Et;oT3^)K z*NP0RX_-@;q|kVhIu-HiKa{3QQ@qs%1gjjG@R1nWM z`tLe$Uea8fM33(e;R9WpG#mZ03?Go_=K*}&3eULnFv47d4+rRx_9T4LRMB-E_}y$X zY%3>2txH>>pPAqzPfj&bCpD05C3>`O(n>a|7r`?$iGIGza1}*4%(@Nqqs>S@NyiN` zC60b)vt%p%P$rNuiklu0NrHZL@-x4<&W@JixsKy%pdWf3b*WXPMo|OWf_H;UMdTG%voGVfF8nKs?}DfVf%w@v1tIq+uis$%Htz&JQ#$-IQjVHtX)Io>er*lvV@pJ;pWB+@6=<2sH5XFm<_Jjt>UpPqdkA+FW~cLRD>s> z+RzxNMN+r0|8VP5$>>C*>5W2sj=^UgKGbaOKguAj@TAhR8wF+1{`<`EskEH*vC!$p zhv;)0^7nv74dMVkXClk?ABIB6@5yu-as4}cEWR<4r1Da(IdkR?4YtqSL`&1=ZpIvb z|K=ezcVuXAE}nJTdggW?S909!&Bra6ja981HqW0ox4W;sX9Q z#_h1iB+cP=gi#C>9-u>choa#KJxWD`gLr_8hKBSBU{S()to=a>Q_ta`?o}68|rEsFv27<+%*_!>(Fc}gh;1W zUyq|whKGm&TVUAP-+&c@A_V$|j&3c}-P@~yt_WbX6pFzVEqr|TZRi0RWlQA9hMq7L zA#yd+x3OZIz+uJYSP%rXY#4J8&}2aX2f&d6yBuMb zifNe67={q#&w+{6-Zo%3G^3|w2vLM>rX5h2)HIiqja3B*nKnVszC-=du*tz;6Mt>;IcWwYmQ@GL)e-o~y6 zXD{2}nd@2OIfc;z_cLnPea|^_M)>b~{p0+;PXAqh-E}t@c%3`@dw>Xnc>N9TtIl~~ zoBM4{z+H3BQukYGj{B~2hTU5ax?2veUfH!~Wc$dDKd)?cf6FzzV&%4ND?{$ygDX}( zyluPZ2c93!b#GejKJ2OUmkljjGkdN(f6hlM|2(^>)jfJn|8-qmOXhm=J)Q1Va~_<% z!JXgv(Y6O6lh?UpX7Ooh$BzHutS--so~IWd|E~+SMV4K#xX9gfi97pG?js*?uV3mu zVvalVX6;C;dyhKk>D=Ysy0mxQ*FWu=xuMHl*$I26eZ2C|Po~Wr?^)|!bbi{5+{Imy zo2V2^V0rG_o;CPMn>v2m_U+4-xHsL!<-0n=J=SyZ2Se`Dm%7Kjx#Q1~W!rbUe|*jZ z?wQ|nPk+FD%2M~VIqqA}x#ULo?1S!O9&oQ->Yg#jU4MyZnfr_to@LkufrnB1{RJ;% z(N30CMWl^RHOG=&g=cJd(<4X^;?Y+*SoPi<=^YqS=6w42LvZ!0I-XFZCwf|S8=@&z z@&C#Pgi-@!XJ%NTh&HNNlupDYWKR#l{T_9KLA8pm(Pfw^gVQ$5lr`$Z`cy|xPq+(b z()S>>u*W_O(JBW!=*0xjk<(5|OoU){v`$1NvPWx>+sqlm{NlF1$1M4$BnCS>arvWE zn1wfpUW&>baT+B!T)~#=7|cvEXELhCZeg{@J(4po$g~4My%eZaC%C?)8H=;S6~U%* zN&`C>*2|E4I+6Kqtlb4 zm2Ys^OwiL=4?mMwQ^bqYYx+0Cc`zx%E*1~L=_9RK=fdOl`sLLDdJ9YGk#zHPy`Aiy zPWBlps^&#Qe>--F^bOZ;7}Un>9VU+LHIzY4TZop?HFs7-b%vBa0FSE_$)cG>q|x4k zgdA2vcqp!sDo0ziMSD7fxaAB)C^4#HYhPP$cY9?ITpa7|8SF-u+Z@|7wPzm^Ut3=n zYOZe#S2Top+m|Vqmd46Jc~BQhHQcUp338EfE_Gq)JekTFQiwQ$9Pm~I>_e$UI^cYq zTPm#}K*QIrL%GBBbehf;YQepxe{-KcejB|gTpPeHq6$o_l{cF*qB9`uro!5Tkxu<` z4OE^NrXG&9!`Hnlguv!%}YPy6K|#!0k2@bW*94BcevE zdc!f}+DEK3QR5ZW^r}YQhlaPZ(TsKv;SRi2_n+PYbOF1yniX^^U|$HiVgnU{2JD#9 zb2Ph)J~*?liW+N8eFZWK4tg6l6L7V{iDblarH#)rFY0DvO@Z2m z8q@5kbtT5h6`k0;n+787BRCjB^$c)~C^cPo*{? zR6n+4K!}>!VD|uDMWonGotk2IZ1_=qk}VrS@aBdp=?d0}PQ;g7T*;exaEnW3 za0}KOGi5;sx)0OuR43$HkgK96{xKZgv;yenj7m;7=eaBS*Rw|911p(ZdFhJ`nI0( ze(7kAg6i+VjY7IBgw0EUXuFTGtwKXO`?~lB$jLn=7hCKUzsj|5@f@IKDXrZd!(BQz zrg@s1GrFM>W&&DT_GQ304O_plFE>szzRF#)6E|^hO*K$n3f;pvg ziVEfx70)kPIKQ}HMq~@FTiAkyTW-%WG)|`1aJ2K*rCeuuvMg&SM%FUB2HsSB>@dyC zIm7D^rpM?KeCTfgA6kqS$o5>27Rb)p<}S~k=zcD3baqzYv20J^SJ_t8m{x?!O(-}9 zTYL1My_U+U>q{$(YC??W3+Qhz;_%}avfI+iv$IZy?Z>h$RX|Mq*~^#=KR4}^(OM!f zMo}Kj|ln`5T?9g zHcM#5K-yk~&}u|(6%by5AzoTiq){i( z9H#XG(K^r!IFZKMV@78J6*Iys35CTd;9dwcpV7B~XlYM|x*BL9qZ@#ZV{{wPB1S&~ zqK2NKehO5|=odhX89ffPgwbz+mNI${h+fHNsF#3_XS5gS1V--wEobxrP=L`VKvWYM z>OVl`jNEBx6pTg#1sUZ6RWdpPsEW}HplU|*fI^Ix0@0h$3`OtUS2AhwWy^)r_aq1D`W;dTl4VxfHpNcWGMg?1OvY_{?; zkWTXyT&{E+M*(RKyv;K-yk|2S5g@vB=c>&>r!(3na^Dbi1<)XK{|z+6XcR769gGTq zbi7Lil>_M%R09pO+yha4@k=$F6dYwEmr}gbJPi>bM$LL`+&MQ^D}}pOXzhZ! zggY#>GXjlw-xaQJp6pg+Rl!emOv;st|(P}|&3mS!dXfBnNMpc3u1)VDBG(q1NbWl+FXxqv) zf<6#54R=!$hoDA52L(+<7t?Zc1hx8YTCbp~g*NS5GigA7Hg52mc9o!6^K9B8 zK^F?TO3=-M{v{}FzO9=r=r%$33Hqg=-wJw3P&ozyI#r(ta$!iIX=4S=7W6)b37Y#R zh6x%KSJ`NL$VQh6Iv{BO3Y+_Kt&QFi^bbK+oz3+Lnj&b1psj)~7j(U#y9E7Q(Bp!h z74#QD`vko&=u<)e738V6(>GSoL_voOnjvVmpb|mL1XT-a7IeL!y9C`Y=y5^M3VK!0 zK0zM~qM?$mtt>$k1x*)JBxtFiFHW>|$28g~U(hr`a|JCCR3)fMP*~7LL7N3_6ZB0% z*9aQMP)_ILTtOEKI*8$&<}SgoO{3poV5ZUi7?^1^YMqS^6Lhqod4dYtZMmSJiv`^& zXxjOonj_qhc^93yzR4eEtK^p`O z3p!8Gy@K2~*m3v-9WLltL5l=c2s%;Fse(2N+9GI&pvweZC+IFgKNs|&pr>xK)AvU~ ze-refp#KQUyxG>s6Esawk)UOQRtOpqv`f&@x7zmR3tBFyR?ta;HV7IPbe^D#1zjWP zHbKt|dPmUq+w2rvD(HKH?i6&tpeF=9C+Ian`vrX_DC2fJj`4yD1kDz-SWuOqWd_mI%6$?6E&`Lq81w{l63OYy7g@UdUbgQ6y1-&9@pP)|! zW!`0{bjA;Dv`|o)pn5@T1$7JBBxswUO9Xva&>ez)Cg^cNe-QLnLGKCrR8abl?3B(F zR3a!SXpNwbAKMzI3p!iSZb4THx<$}Ef*uj{TR|@gdRx#(g48{Byki9&Ca6%*0zm;m zn+07j=qLBt_8t}VjG$Kqd46Kc{aDb$f_@|DML}-~`b^L@KeesgCg>-E9u@SApf?0< z|Cz0Osi5x(x>L|=f=<8R);L?xZb4THx<$|jg8uk(Tla5*J`~jVfXzKq&`A&4v<-rW z1^xLUn>*?S8;uimq@dY?N(2Q3H3>RZ&_+R91#K5}si5lw-67~_f}Rlc++XeV{Y8-H zHJdhG(1U`0CFsn(w%i4RJ`nVopjofma*G6&3#u1%vY-uuzANZ9L9KtY?X4H|9YHq; zIv{B58@5K1pi>2%CTNqO^95Zj=o&${3VKG+%Yxn(6nfK+w^`8hg8nM#Jwg8xWW8nU z<_J1M(A9!&5%jpAv2WYDlLRdgv_ep;pbkN&3p!iSZb4THx<$}Ef*uj{CME!nQZy6z zPeHVuSkruh4i|K+phbcz1f3}8R6*yxYumf*JsaID=*NN{7W5lIFA91~&_O|82s&!N zZMo@v8$|>S3OYy7g@UdUbgQ6y1?>^^J3%iCn)iVn+b%&D98A4ko=tMy$3Hq9#3xRZguNHJOkk0w-B6p9V2L(MY=y!tN5tQ*y zJAIP{6$z>n)GO$GL01U6OVGnWx+I?x+6#jICfxl(+x;&)1$O`)&h6!AKss*^3HSFv z+VTrRdrQ!Vg8nOVvp=;hF9p)&cM_1cyiw4w$ZY}ADfkA^1WwC$1YIlK+kv!|9|Gz6 z{WXwI-!nqnE9mcnJ{7qyfOKpVKC|r|2BcH!7uvBvI*vucEfa3Dp!I?_0BMbFf^HY| zn4lL0{T)cB{$oL|&uuH?1Wgx2&U17eD+DzOY6H^tx`eh#Xx|0Wxx8Ia!M|;LbAdGX zctNKFP2&34B((E{c7f0?722(W9uV}1$XWlfWAgy%T9^o=<2Xvt(ZZcCv=X7M0Mcd9 zCg?06o%8dBcA=oFg?j^#j`x?s-3z2s@Rra%7nJp1+j5?uX+Sy!vjiO{s6x<5g8BuW z2c%QFThNuly+hDrf_^LLkAmI-(pKIV+807g|DT<{d>}1%l%PW4E)?1cg4O|f`Kr8A z&;x>=aN9lfkAgBFt$VExNS8|&xEf6a&5zF*Ub>@cGlVuvG)jcFRA|*gs}b6Eq3smf z-9o!hXwM4m1)u+wHoAqD=T(Yp6&zWUfOt|EM$LknA!t)E?c~ zuF1PfboiEyq8cPWzP)<&ud@X@;MFQo{1j@q+lot{xe@~#$Ho({v<|R=4 z36zBilobh-^$8U6xD*=~t>}uST%AC4>Z!*%0oAZ!#OVtzSPF*<^>X#n*;ygKd2q;L^wF#D;iJg5kiUjnX&J z>1UjAhArPo&PrAIOFX5<@DJ&%DNIg*qFzZk7~_SMDKTy_nZlc5*mq?#$bKfnPQQ&| z8b#Ur&yssC)FN0Mk5%t_n@ZHh+yDP^J%l5yu+96@@{IGe#W_syfyGp8{1#7FOo;bs zB}97*fc9|2WggwUPzL9Q9YZRPs$JS9=V6OkytwuX#Wt`j!MQDhX$>R21Hnz$R$$`M zjl}GcVF@RtaLu}i=rok;^UmVFkyeN*`1TW@sr22ujcG@zgO?LHf zb|wbydyQ*o&2Mb$9*QC02&V2{7Qu$iCElvRw)I*R+oEt7)K+IEM7y7ZshFDBf$oy?dR61eq!I_e-cg&J#;%IfanW+V@Bbob%lOq~R?ug=g!mdUoH_F1nD z+YDT#s%qFDY)$w2!8UBFPXkkIY!lGhu<`ogUxTxs31q%ua78K7fna}d;M%TFLc@q0xuGRZ`@bvC-KKT=m z_Dy_@XGG7X6oTUzdQ~ojGSsx(!q|AvM!fex?qwr~Y-zdUXtpc*_a3G1!f2Qf$GfOB zhBynM$(O{CAct~c7xYp39>6Ndy=mg5;V9(FT6VqFx~gg0{)xMTp4}r^PX-T=&hDMh zBK{q}9?pHzf*(Ak_7U}>$j2w28b0N*9sl%h??%FREtt;q-L;+_dv={iD&Fn1)oRyM z>CdLYjaJ2UkD}o4bZeJoWP=`%Eh?1V=aPoa*s;gEeLqoKJiE?+Tx(l3ARq*Y z+heZtp0tpz(o+sRj32dW`L463TZo6|rZ`7C_6)ydXk@_9?k8byFu31oVOMbf<~_TE z`y?O#9G&I*xrf*@16ms7F(yqUbMyDyXm5zk`$`e+P!vq*6wXwqkD$O*$I7;DI~M)aqHyA zF1qh%#t=uf?QWj#+g&p~S0@jdDMYR1QUT!ChvHYeYNltQ=si$=mlTaYl1h__Tw=w0 zz_blt^iUy*+3jum?o-g-e7l2LyYHvwOO0Y46w#)>_!d?F?r%|oslri<7eE4u7~I{O z`($wMjQ6iz@?`K$GWTSVW7^fSe|M_|8y+IU#;%qFyIXRRzO0K{_EHP^;@JnN_O|W! z!Ome)2G;a%Q>2Jor}#P4*{)}~&UE=9KeWlvaNpY-lfUQQdv+7wn`al#fuj$lZ>j}t zJ>&prYXRMSFwUd9+NzeCm4Ui&O{lCf(6~lz+UU47+XE3$X;&{hF-W*=LkL@R`9QN( zE5q=<6gEzelnHL;@sdr1vuWJ-dwL=r1tw7){gI)*!r_AM-hm$WG*K|z6)A|dRe(FT z9wq!A^*pu;^)=V|LV+`iHwtsf(ZSH%p`QMcjgh{&gWA&!iPC4@?0IvF z<}8{$)IT!V9+}(O-#>dxiM|KXy_^2hTp8`yMy}j+$`j5vNITO-4mH!PQ6m^4Zs_B} z1=&i6Uo7R`Ou{5~FFfHxEN#?K7fz-vh!^hZ@7sWSfS@Oxu@EeaUb9%%WE~4dI}ATh z6eG*TT5@?L%*jl*GFoct>#CG{($`=hqpZHZM!7eVv5c}c%|YbjGQt(DI1w4{!&yk5 z?e5<6CP!&?qAw1sj0QRe-F?PJ5H0IzQmScKRS)m-?(=S9+IU=fMrH89)9$ZRp=31Z zz|Ps=SQeL)E5no$Coe56U6+T>y3SEzw%BO6p}A36$FX6`k`6DbrieI?noz=7fLohJ zmHr47T?Xer{g*7*su@qvCTYvM2kAmCT5%$>O8+(ana`*W)K%03Rr;rtCwDcDeQv2~ zh660ut>AjX>`vd8kyV1`kV(!hidDu~icyE=sf=u@XN!6BRfd;B85~-mGJK@wQKPBI zs{zNH4lqh(u+@y5e^3HKDA9}+#2rnAOlRz{SenXcZ3w`ng%wWw~$rDGX%&0blOhsMaZq;34!VXgE$2-=6BSP%|9Qu)>q?h{BV$f@UlC zlmBF$r&y<=oaLX+$0a~V@U$&oQLfxiPX*nw{=>3WHH}*OH$jp9jV(<~<^D}0%hMiT zPj#pcE-dQcgNL&49L<#L7@o6rYystd?i;MPn)O!Ju*NHQipDFp#!9sNSANQ}m$0nu z{D-1=^;J=L)mAWk<$iTPYmsA8&v4rYcFp5+zf+14b!Jbb6TN&NH4c@D2R-F}m#~#N z$PQNAf9GbCxxRmR81pmk_b8a9GT4TD|3PE2p`QAd$NkwxvbjaMKi3AgD)+zH9J&&V zxc?J`#As@_I{~<19I3`4RW1H0td3PUqp?K%Hx19dkY2fEgI_OX5T~>Cvspy_HN=#;y_+@5m`Ho z1Nqr>z|g449GI9*``|}S;lQNq*GcDa4jh(UM1dnXFgcrsb)$~tgileUuZB_=@?i4k zmduSRuqfY-47aMaqo!IR%rxr^PveBEXojaV!DQIa0h8gQIbbqe$N`h#8JsGU;bS;p zGJGrtOonH2z+`w92TX=%bHHSH4hKwz=W@VgxX9Xq+)Pn+23ysrVrwfhZdv4yfa`ex zS>tl>;sQ`tfwSn#m1pWXpjy@reEX;(ZUV@mo}NQ`Idsv;`5L~cE7fw(%N+LzWVjb) zj6zYxkj4`pa&`CWHF%R7iO z4 z6wh8rj3un8yaR2Ro*Ry+tfkDfyk*_PLk*EZ_6Vl3mT_V|-mOHU=;_C^fuyTWnA^MsySTXtuo;dhmZ1>neYk@PxS^&cqNCY z=>n|b0-Wycqlvz(T2~jcGy}z%iAotwwMqo;_byN;fI5K+HmlA>IPY^{&)A}CAcXtH z*m+!cnOoJ^`GhQ$PXc2XoB@7b3+moCcKIttwoGIhS(%&F*m9zIGP?}QQu(Abw&GUO zr=<@|vx8S=A$oGLl3hg&L1j_hW>*uLY-ERQ8yaP04s;K5_aK%}S;=1eHn^5WHYVkI7vdZTofq#S z&KL6HEg?e|%EMbq2v?B^=2nNg!sH}Rc^4BgD~mkdc$ZM>a9yF;obPbFOCO~euOOL| z$S*=3!E1e?c~}mHq;G&HN8ie^xL&Bt?hfUvp~$VwVSZ`jtBpX|lSvbq%2#(;J)%QB z`|2rTAL?17T%^_4K(vWSt432Y;VC!_Iu~RChrr_y71E&k}1h z*YmKbk6s)2P9f5|%nfb5y=}^O>i>|(j?AI9O_7eUp@oUom1#eh``V}+dhBo*FA1pN z*3-3iAhUZY+||t&2ww+LhKbUl-`3D&!xtgy7N%l8V1Q|zL^~^UNc$f2b@d{Gb2GcT zhr_r84J+SiXZw`eE(F~meH*FDcV=?y^z~W|N?pip!PifWOEU39yGi*@|1osGoyi^C zH%Ngibt|c=vENX5e?SU{S>Cu@uLN5fcRMPs0~o=dSYNdB(v}-h=MTP=c0qCBA)Bm{j07{PiQgvF`utM=)6LL(|GxLfr&?lCIG?OG(fJ?SGRtKUq==%z3Hs z(pkoO^iZgBmOTogN$#AosvPw1L6uX%ck0Xy2DviV8-(Y&STp79X)q^P0L@9>oaQsg zg1IZ_tfCOzA@K7JeE1GwB{k91-i5g;mD9Q&a+9XytUYR+ozYV{qgfkqjn4^F8QIsJ zoOPVZOyj9r<+O3>WMXPfm&%aJY1h{v33rg)T%AHY&dyn&O+;B0;&-w_0&oZ}K}vI6 zeszIuxD%Xl*0_cTAU2*~Lel&3ib!W0)wzRI*4@`Oh*^+8&p;Q>CydI%)gs0!kyt*u z0(EY(#RZF(Ps)vvG+)7lrN*r}5%Es3#+_=7$CA$VIu7=sTMl2lotr#AAjMBr+>WDw% z=3?cZF)AO$hxx&#mh$poQ7Hm1 zmlzN%B82K_z+Mx?^ietsG&aJCF4V*ImEr1oT)b+7we^^)Jtu)%5nL6*W4+;@9p#7M zi8mCe37y2QTrq48)dVZl*P;SOvj*nXSy8gKL~e6!oin4%n!p9wP;^5;lUyJ0z5pV-d*bPTnO~yGfl><#>t8@2%`zA+u z)FDBug7mHxi(*hy;g+T#%YE^lk!xxxt8YMk2Wpu9-Zk&Ns;k*qi}c9F>~FsrV?H+1 zp{52DG0Q#qLX6xhR3&Us>FTNsqqx=AzY`-As$;QmQ+1$%>S>j_{^A$`)1;^jOq1cb zK7IBQXO?X!PZTuv%vPi=+E(LYfOEXbV{)09qYrbnFE5^M>^2y-V+F6^|)wH_yi#!(w;)^T!Q zkK>!}7O1JIM?OsAxX9uKwI6FEuZuQ=$}mo@3=K8hgo#ZwQ_ktABtn%znhSKM-IGMB zDTu2;bv=5lQ!+D&q`ts8rA8-_Lcun!;SLyMa7+@>vX;t9v|y*jtkhzwLc!J;*|AAv z(Lt+XbCR7>D#4&PiKyviaERQ33zjpfz9iBOp@v{hs1AaG^6FUeoI{D5STKDXmwN6% zag{HT;M&<7T#W`m&hg26acqp^4;7{Cq9)bm{#X`h zYz$%iI4g;yz7fO;&Q2m2Co(6ANKHMDw2}@n=BAc6BMoQ6EJ`9x=K<*RL>!Vl4BKZ9 zGUIOm7*Wx)29+oazMDd@!VERpoqxRbXKyk?*f{I9l09aQ*Zael=$VIxXzK32GkHX- zu{H&dSNhnH_*kyLH-%DpYMq@ACf8{Vtf`?6k}9qPk0#fv4dIHEB7HADom>a;G~)Gs zO1(YLCD+5F2VRb(itVZi9bZeV(R%E>tJ$XD0IKu9+rdI0*zS5Y)E zbDtokgDI6N=wSj6iRRizPg@DYMtZEeDSkwZi_2=Y^PUfqYByA` zX+lY2{@%<^&=89)m??lJR^Ro1R(GVH;{Qep1M=W%$}MRf?)i1{#0OV%mq}IRzf7SP z!dqL6T#cIUv*x*(8y;%wwm*E87?Y~ronqa^@ z19FpnDS71abtN@4kMAF!?)_?Nj+)VmpQTVtY=>I@^Az&B?ow&}JB3z!u41fkedt*K zlR{t50aRj?jVGXly!|(YR(!0cF(l~!FNMDS*v?O?sj~b<3g!67lNod5{M^@*S8RN{ zudE4FHQ9IU)oSm)5>2FjorBF_p2GiS2-8QP1Qy7rgjY3?!ucT0mj~4^(IL%j6Xi9|U zVr1ftE%ZjU=T~1+TK2Upe!dYMwNd>trM7eU5IfK#y+>2%ec7;sbZ`58suVlpOdNNR z?(HdbO(tWM;>!7sL#tL{swGBUTEv|x6l3#RSz+Im8r3C#N}fZLN{Gg#?b1UlP}-dK zFH0f*6^CC`ke~h~c@pE>tF*%C?7I}q-nWw5NTL&$-`7)WaubNg72n#QdOvxTrY@q2 z$*c12Pm-&fLH3ua|2Ty@cIX$+3+uNSvA5txbx#VNXk4jV-n}Vw6LRZp99RA~c^+dU zbZT6cLL{EvhxO)|EUw2}&>%{U-@?)(SfjfC+7u?t zJW?ZG@7337+3RmkF6)>FZE4{5oXtVJ&5nELz|rlzE4c|XDbP$Sabo5u>Q>oJcJgNP9xq5V~maWXc(y{ z(f=rgzI|g4)&+6QDxTY-$q(UGVG}3$;IhQ=2T*aO|Y^ZO=bOaYOu3PHUms5!AsRR9HQKUahC2giNm7DtFVA<@86PVB)&IBr&BNy6XscwKy!0r zs0@$qct;bRpP`D}x9cCtySV)}Q7W>jHFVNR=sgLqlBgP=y)=cHxQQCnQF)+IpO%bQ z`Y`8657pNFSEVpyrzg=uVuHxf&r=wxu4u#@N;8fRZVqro-1b!R81Y`Tk(P6q3suqv zNmsZl|CL-nzFOoSs_!at&pr2x)j&h<{&r7Mr_uGW`?|gOKcfrA=m2K`mS}FN` z_SuV*tD5`lp;Z5nLRIUezE?h%LN6w@&b!|I-$|avXhcrwpQn(HuQ$8mxx)0M&Wk@u z9+52?^YpA$UiuOhGZ~|WUrr$$pR`qh#t`4pc&`!7!8&ifdw!8Tm7)5kqz{_4t5&K@ zewSRQHc);DtxsP_p~Z{JFu<@Uts8?pcStLx^ez9&kH4a3;seW7DOBSN$$k}F8LFY{ zaBZlLRs%V@6J0Hy-ThJ0o?$EFN`QqtG+m$YK8w`)3ZB2P8xa4 z^hhe@KO9oo%+Y;G0-j4@Bbl0Rq0gt#h?x^it^Ps^_4vBeix=pHf?nq&%OsaS5`=plHZ1I{Bm1ZN<+iu=6Vd&XvIdNA>3ehUY{b5 z(KH!5yj&>7>KM9J@A+ABOL}%vulv%gPh%IaMHk#9dz0)~cvqa{MRVK&ya}}GF1Oh= z4hvn69Hu4PxvN~CpI}zkt-*qqTIVaWCMs5Ry)Tl8c;sSU^SIvi z#&TVl*vqQdVLDz*^76;v>R@>bKQw)bU_vfao5ag-M%yBh2FRHlFA}%C#i`uB^vMB|Jqq7G+I4UO0B=9YffH<{zo>EA zMj9jRlP=E8aQb>S(`B34EoR7Q3R{(fkw`QtXQtoEHtxcA!9y|ncH|*)Bi7f}6U|9o z|8RF_x6YNyJtzHLHt`{u$SjM=$r~t*9A{2!W0ZkW}u)=~Sp5Vo+Qv_nYZdJXu7r6X7&;Njl}; z=VWWWOVcS&xoQHXEcdeXB7{cM){eIUcyGlQc1f-3@9uCEZHB9yYIzjCkDB@*R_o_?}Fq zV_C#E%`BO}lid3Nd6@-7CK`2H5P}kRgXg+z5l~kOnX7HGP~M_ zhG<`k@-3h(Xt{d-*l|>}6IK2(6w|bJSkEJvj%3qC0eA9nP)(KYlzP7y*hWeyLABaSCCPX7GS4U|*pZiHh5wxWF7XkVZ&vwZ{(U;2g(aXS&GJ2w$- z=IuGkcL5b^32bcYZb#yF`e1UYE~{@)SuI!jKSUex`M-%AOeeU{?fcfL$fwE972Fpx z*?B5^OZ8oktr#eus5@2Ptr1W>RAO+;*FSGL( zsC=(J4o*#!!)_KU``brQnt!3U;AwaC)K~?wRbY)b|##2BIv7zf#}Z zUw}6pigd;kZ&V03c>aP#=DBYs08OOFF3KTJ$=eWefn!5QVah!fheQB<9K);{pbRigQ+f22l+b#}G0Pi8W@;ke+t=Z%H5CYG7wZE_!N2k7Q z7nRcsHZQJ3yj&tL+Faz(-c%U0U74X<`COA)m3q~dGFKnt^wgK*S_bZ3o10KhN}FjAA3;; zu?|&z1+FF}>{BlsrRoT5ucJ*P0|W5Dh5M_k3ljgCMi-1&5!@YJ)JTIOUT{+iwP%1cTyL*Y>P7doh>*VK zs$YxFL_!hN3vCtmo##3Yw7u?Wo%AT8m7YSg$G9 z!8FUezGoz2NI@ofylu3%+t4bRmgVh;3=DS}S{2iLUhOyA5UZJ(>m7n0#`f+WLk%%? zqPL@e1Xu5{@wDw*!Q?64w)S=mXrl>T$@Bt4cP7{N*rGKYiLPap8AipK^g8Cuq7)5A z`r)*L!$sa+Y-#Tvg8T6v;}#q(uz`6CoIEW7-igdBp%~z>kbID!uQW1oskgW7wEn>` z`Y^lc@ij4dxffnQoaAOESMbA>uZ08EUbs-CTM4=)9O?L0F}22v2a~}Fx-d%H?pbK^ zx*xW(Oap4RC(<^A;*4~)ZR)0>*=puAgEJHv4#Q_%;AB z19~KM5=*T0_VtJ13zF=e%#?MoH{8|@w~FEQa1O~%JJvF%!>h**VdE*(cM6lcZ1O+675EZ;Dj$a3kvOoM_PdbmL!qGT1&Sj8rs1k632F1t+3Ve}BX zI^^lm(6Tn#LiffBaZtV>NM2Vg>k>#6(Bntc9;lDlM(7D7%E_T8Ik5j|vuUuR+5FfG z7nL@L9z&v>9CmMGS=pc#&>c0(g1Om5rALt{HHR)`V3mW)S*Aw>2YVwDpA-89=~HcK zdTww?Q&z#g&}P%agM)3-ekZ5}G(dK+=tc?6r-?=5a0iQv-tgZ7i<5Z-M#2sm3POE4 zekSXSWI7;A()ipVNgi$>IoD>N9?Rz7Co~&DnT8-wELe56_%*TO9He^#ByRv~GI{5* ztgn$cCHaY1aSDR{8~k|42T9Y`p;kQY;0S~236IjiJJY_ZOn5vv1X;M=SwFNDSF>I< z;fa!AD0^9a!jY~s5u%&KT@)83fkvJ>qx=YNSrb9v2~irM$8hEmhwjZZ4v!WNtkn>Q ztkFn3%E=*NuscC5pn^(wM8cu7fn6gX%k6>{@ zj>p)_5hwXK%^@1%q}<}$mZagaLz3s`%*@h}U=`3PRr5`EE(d|*pwTIFU~Y{~q>*LR z95{W%p?f!t9&PcRM5LVl)F$RIGL7gVP$w^f9}>&@t}RKUMeQ!fwCyKB;8sypP2pBNtppm&!tB{A+}S_a3pcTON3gyK;Eh^%2v0gRYQw=9Js8iydv4y5 zBxQ*dnKAbmxSAS)qb(z@@(M`O6DtYlfx{6|80=p^GBnIirSgs<>8wLZ%N-_fD#`jX zF%XO12e-gAG(R8UhGRGWyqOnw(Dcsc4LumPJD)c5WR zo4X&3>BMk8YvvVYL}>m7WcZ{RjMQ`w;n@f!4|GjG}V!74HO3EboF0e2}H$?JAg z2%^S$;*6*5JMs%?G@Hr8+n%1VxwYj_rO~6xqFb)UmKM>|i7J0uYbVtxsiBr>D4##Q z8>B2IQDcEW#K<6>0g~^hR*X909GY1&m0vh{167EoHuSU&Q{xlvjQ3$|Vsb8JJAWn# zOd$c966}T>F$_`j=PZWN0-`oY1~GafPjC4}^&n2SZ8=Uo$)876KZ7{sTsP$=D+|ts z#w@0DGXA^aGY=!2;~xTNK~$wxJ0~*F*!j!%f?eWJG&Aoizv5wJWGQi+ zjVZs<>Y`aUkf~0~_~4l#l^-JM3Y*ODNw|zx9s%)cqMtYt8Qj{0wgZ1@`L!h=*AST= zRylV8ZdWS5el1uH#AXSb7w%(y}b}5^aL{&!Lq} z%=OJRcfBs9r?7lm2=aS9*(5QPcm|B1qdzojt2{5z4*Ni$xhFv0v?#Gkz% z;XH!Yq_*@^?R2&uTo01UXzs*J1}5`E9ct2i^1lj7u%jDIrhj91L`_;iG*76xv$+c$ zqN8@h;Hu&EJ*s5Vaqp8Ys)R`;Sz-KeB}^(k3RqXdq{W0iSr1Y+mjr;bvhF6lbQQ2K z>j+BjGQzo8!<6;o&jOy9wS({pHv&(|nm{tk9|A7O>ZZ5?dx58CJx+GY)H-zHtWu(v z&jg;8br|VZoCsW$^&_GOHv=!w4Iu-nIs6rE2$off^06$+4Oc&{G-`?%7m>{WfKQ%Vh$mQZ^DmdQ9H1#wYJoEM2ZkN*Rm9~D9bwEmZB2SNhdZq zx7i#j56xi@!oRO1GJv@xf&e-? zLg25&5B!(0R5371Z3NI#gup)?KbYQNsaD3@@I84ZiZP~f1-EeXT0W_EQ=8qq>MsX0 z&8y)KVAH%#By5^j1opcVcXR|uNH^e&>Yj$d;lbJ>L$#wtZbRZrn)rSw6YqDL*;2s zqv;V3&rvMnn`*_Z~5tc`z zE62=JKdL^fPRq;azO%zJx}G0_G>xwJY0#$8T}9euPP_OCW9T}7xmx8+MT)%Bk(R<_ zij6Qa!baYHLXbA{p#`R}mP(;&^yg0)E(8wg1pFArBVuxMq%u2c`DgNVoD_mo8h#{X zX2yzcxdk!{TAblSyv*WUZF5M0vl~B#@tj1uRp@a%=lva}lHoch|9fy??ivGP>YT;W z)#LfMbSc{=-1H&|!=Mi@FC}=9An!6j_{RvchGSzrgOlN zE}+Hn0FZ#{Y(GM6p;L}(mpgC8#}CHzDf|pP!)P=k(!B4KFGVhrwiu_(Tbh;J~!_dzopuGV+*lYnX<00%xL~-)Sq2}3o(Gh~@$IlTQz5Wi61~OA`A@=aKe${tE46E#v~Dw8Wn6{VHn_Z$wE?#9AYa6F}}fUdfP|h{-d2 zuRB#%KF1Mo(DoqCG{^h`4-Yoa%g$QNn;7yEd#!FJJ62gsD36}w9xMn$0GND`Ig+gN zi7$mPE(hQ>r){_*2R9e1tfgcWkRhjow{`UOcI;GH%Lo@Gc60fI#@aZaDse35VYTSl zOHUGUa1Bq}?)DK3_3K+$k?s}rzn;NrF`Sm&u3I6v>QZGDkX@3v3p1cte}S2*tit^R zW(U%~Kr3q%?V(C7=J;WFXkh8=?2l6z=cW%JCn{SO58)VNds?ppw>$+^_VxU>=#^6C zH8m>xAm1o_9C6})m#oE+6&_W3&^-HwH?HPK5)Gp;Pp(|e{^aywlpPjj?7+xL*RZg4 z#iO!s%mptE3l2I4hr1*eSvw>j(ej~Q44Ks8xMwWpP}!k!h-N1C_H%TpAN8X(JkY7K z4^tnx!V5}Irhf-~+FLx}~x|OAG}J+4fzyPfMmgvOh-@r3;ki ziW0&kX7=Z4q(x!WoQYA{Um&AcGkW_wRQ4Bnu?LD#r+H{_1ZhV3W#7iTMM?x`zYAu8 z`!8u6*{Jxggf5BEYXRoeyhHXYVj>D9-+OLK7O2I|H)6!LjfoVebrGbM7YRq~_pF*ew_3 zWPg*sM_O}S1)^N{GM1Jo*s432xKyQCPZtKXFW8L3LTLMFE)T%cJRkHv0 zr=h!d)0S{1-(*>4`klMMdOvMRb$@>i?n2<*EZO({7}$q`aq)(Ue)j}WH9JBQqWAv> zpdp|w3ix{;0(Q-oVj0C;A5PxS{yvrC(U@(@U3*ma4-zoS@3n+6#n(U5JFv4ucjU8w z$Z|{5T+DLfy0b9vLGscy50~u?$eO_j{*TDd)clUYfnBluhse*3jag;?hYKmn(|GUD zP&?yP*$)%VpN*QIHNKpdt+gnFMOmv4;d|h!YOZf7!%b2=QWSSQWnVOb3P~=&$-an% z2#*mWD*K}6!N-U=o-S;ku>7k0?2?0nsLG%pzjZBBcBx#;l-ScGH^r&!vgcvDSOU4b zx?E+KGc#EExLbGJvIBH`;jZO8Yjy>lX>c~<6;j!ibf&|JRX4-!x;m>GM{xMW>|vW8 zm9omNrW7v0*lQz~5Xr;MP!Va(-gqmLY8Wpe6WL7&!^pn$cR+l#<;`sYoKcHiN7x6< zMT;84uE~}ff1@A{k!tj}iYq}}<$(%6FF?as5QEF!bUQ-J@MLdYG=wa2d@Z|8hQmCs zLneD06>I355whE*F2`_CQ$>>$+xGY2IrEC_z6N;C@~iBAUhx87d z%5akvMrv1L!AEx2zoX7i>}ef972M6bPbGHO!@^Yd4jF?;913EwP;hhv5?IKnvU~Ks zKY$0jgB!PNu$Q1WvAc6O^k)t1XJ4gN53~s_1FRZAaqJ|9`$xJfpn8=(xEg7N-n+{N z`-eEXuCj-CztOdXQ2S}2t8O?YrHSVHdoMo= ztTt2lq0_Pd6i^CBPE%xHDi=xcHIj~b{bHE;aTU|D@xy&wCF!roe{H&)|z!wAGYVNy+xz;Jq`d54D%2MK7zb#)OE z=2?-r94s96rfTf2!xaJU2&}#dcUkEQTL;B`L2CB(4aj|lXZCTGd9d!Dzjwv<6nhv7CzW&_S1DB&)3V`W@kId(3dEE8(=QhOn;lnF_vU@E4r$=8K=fqeOJ;ALh>(%i{tn0# za>Nq^AgHcOA$rKUZuV{idR1&sHQowEDLx!9-jpMpC+DwOs;~> zs(S&xWrEXhR?`Ro?~iO%Tu80t+ax_LS+7Ihy7?MNAb( z*iG~TT1U@okY5ZL$5+ln7PQs$m{zmq12eWL%R`HBibb}LtJxy+qFfs#v{w+?I}2Ue1Rj(mmme77|Q;}~NGh7i!Rl7X!VPOD?g zRL3$&{{eQ(6K*yx>>bco4lBn&E{RCE*>&NFIp68Hf$Jj@ZuYFeyNzq6q)q3zkwG3r z1ls(^Y5re>bHztoSgahOFC&--AyS}w>hcwKeC9I}_~sSpb@O5w$6;=F;-Kg1+weGp zojufpegR<6E2)mvzXdDVRFTO_xOp=KU1Ini=gpq!YRx|&<-?uGtCCPw)M$a}Wtx*W zW#jcU@hTgyA-;CKiAR=zVSEx_;Pq0Ub_Hdo6ekGcMyOmF*yP(RW0)JXObzbKuGb4` zMe1A`C*$j_M>;QJK@gXATo1MZ1Bzn6Sp>T-ShBxiwTt8cMe6jVw zmsE(7LbG1gMiFn|T+X28m$Ry54UqCx5Gh>Sq^x9h^beV-`i(52<4dg*B#~Uq)N_5T zDb(lSd#o>YDj`q5nNbR;WR$7l<#O;RaYM_5m)ms zp{28wQ|whgDI8x+`9lfv<7Z+_ZAkBrMrL;Y=9e-rDYQ4d$|;V8F5gV2Yo05`kviQA zFdKK*OPr;B zL!cP)Zil1VM||eFs@k^#2o~!)lPIkPX4&4SQ7p;iB6509HbXO=-r0`xGIV$;(-0n; zEsk*9zI?=;iLXu?0!af>P2rVpQ#b`SyK4M;2Mn=LtfS~t*E>`~ z`pu>Av|2N$jx`_^Wl&F9;`k~?rZy_AxMnpnz6-SX&zEK}gbO25j%e0LhEnZYFPYr{ zhPue+Orth5=i*3ELnSr@t!c;~3DGNGH~g_}l%Q@litxMMr1^Uq{~c;mH}t{g1W0yX zzK8#m=I=uSH}L1jLT-8#KTl~AzU@C9MZq16;(7c}Pz87J_s{t6P!0THGzfPae|sf_ z2L7Jd9|lSIqk@i5Lgze#;W<3FNPZ2W9DX)9RrH)za=;2V+rb(-&r;G??MfAn9d`JM>A$Ku}z zUOK+?4%IprKP8%s z!JnN2iBljvu0aS1>Q#Dj{0()!1Al;7G|QK-7#Z$ZAw&OWD{Mrq7#$g2!SfFKR`jkZ zUbAfXnxbXs*zVZ9YUPUFfsVdWEJlRK2r@2=70Z`XWGZ~c@)hQ+O@boSaZ zyth_6FxIPykst=wO|MLWxI4gug6Y;b--g{Bbq>4CW^Wh}t%sdhZ*3tcM}}u!&bWPW zPlOaVg@>JbR9CxAP4p;Ol_YQP$Zn?GOr5DO4%+VM0}Opp3TyV-m)KyTR!RIM}mQO4Xa12#x+(HGwZ{mBCAK$*IlJ&9H=0y2_EXwtFRSX zm2n=YI&p#B9lkC8k&(fUUd-I+ZPE;`Rr*yD=&*`hn1{tj824=N=#rBw`np>#mMo+1%8v*O)U8))+47h?UQx!%dvBv{n#whF2!z%nI4O5I!2DsRMSe z^hP3?;|!~ZaSwA{qa4hl%B{K4E@ds%Qq?1RNu$6TawN5;cVN7vh;NaMzB2#SI8oz*H>&5#{gfY{Wcaqux!XkUgzS-I0t)EArpK>%{#Sac}SM?c1yR zhGd=JP_Rtz{^Zy{li7&cRas>rBD%U!ZNZ*i>ajYA1>YSaD>uRdVh3$!7femih}Q!r z4|G|E$%z+?@r@vB_OKiZ4V}VZFGgNQ2k>d=L}0D@z3uD1bQBR`GP1I)?1J3<%DR@t zxkby@EicGjSx~sDVD+lP+iMm_aF8D6ypAw&gG6MH$1W-z`xhvmyy8#SVCEnrz6Sb ze=Nzsfg}2l?H7(el_j~Zb|)D%GcQdt*b3y|5O^HgiHSSms}Ye^qO+(L;C~YSPseTc zO6B5znkvEbT%r2#oG;XFJhj|GQ1q3iZnv=~K;;QG3yIcpsh}1LcCL*rvawoF>KogVJ&fY%Jf#R@qpwjd6UB1(&8caHm6g*rxE+RjK$tQ+hINjZRnZ z;K^d0slJ6!<_h(SP0hrIQDf_Ds^6yWu&HNl>UOjpw2y~v>bOn4U{k-csdsGZ?>6N| zQgtYEY%0&D3T^5lo7!kopRuWL+tfogb=0O#+SKbd^?RH8n@zdUB++S^ZBz4YYK2X$ zx2f;h)EhRn4C>aQ+-6f(CtBD&HuXcBde5fZZcFYQn_6H~Ywa~_oBD=L zy=qgxv8g}X)TB+_gbs-g`F@*v(xw!KZZtQ~rdHV0GdAT(w&b2fouz#|kYZ62HZ|X8 zVf8k3r%kyqBBA~IY-;=>3;VoH{q154n^9s>Z`xF0sf9ghQ;B637O<)HsXY~z--9-F*rr_d7WW~Wde^2NxYXj_gSuJk z>WEEcUuI#Sy27G9Z&P>K)B`p(VN*}p)G3=b#|1VOu&GOJ>PnmHwW(2?y56P^ z+0-pI^;MhtH=FvlP2F!(KenkyZR%$>b;728VN-9|)bDKSuQnCH8fBfgOKobaP4(K; zs7>v+sY5n(n@#;MoBFOz{n)0C+tkl(>UEp?`Zg;q_u16LHg(LVPTJIKHg(pf-nS{E z-3rfZQ<*lEZ&O7!Rbo>a9hTpPHdSa-U+A&8FWA%r0~U72phf-OrW`{SHp`}xM=Y$u zrdlyKtIK21rk(_aiWFb4mu>9NpwfWN#PMntwZf+AY--r1c7xI(@3*l-pmfN$*woiS z>96UxZ0sjC^&6Y|t1UNaW4>LM-waSXWy{@XV?VN~ zCvEO?HuhgO=0LMbr^O3O>mb|4>TT*uo7)3QYq#IVcH7vEHg%g#{RouS+JA!5u^qLk zpW9sT9*dg;N~dL+OUW(sG41 zR%T<>Hr8rm(_v@$oWa)k)Uk2=O;hQ>vW1&zb2r-4 z`JD#X=~xd{{61O$u4FR}EIp@VKxZvRN>6JmjzmG`-S~)r=bPcMw4IJzJmbaInlfm{ zLFVI#%LL%I{>n@UjXB7?J!N|8Oc^xGAhX!=8uh!yltJSRG81?*Wzl~eH`jl#4I$Xq ziAK2YAsV?e4*6jm@>(47$2cUcAS?Dcw#qCdKMuJx3h9Syc_)sA*@3Y;oIPREI7n)^ zYnSE1xU)sJ4|7%gh~<>wDbo+;x7Bhnth{TkxyF)^Q)i@SuSWvHW5c}A$(pU@1bR*H z_Tl#7y($uqUh@&ji5R@G2Lwh`8^#FC)j`&}i{-0VuU@+*D%9xZ6aOz{zl~!f7+;B4 zNFY$`x&Z;9$M8A;kw+2zrxi8#cPY#tXsP_H+OYGAvh}w$Sy1>SW{G#n_En_ z$ZvDkIMDsUUn$lqv1aF-TV$O{q$CRiF0kl^f6#>$SNNZ+8n#8&o5GmlQKAYaBI{0y z#J}-M?W0^o{V8&Y^NO74KoMRECWoW`F1-tfSDuUI^3(Lo%q1x$%3Hdka7~n43o6|2 zKN^+QIM8fw<-!;3fJoQqaesZe}$M&kN7(a zy|hCv)r_|oJjj){9=bNqHTLE^le<4`8UJvU&cky@ZtoZ+6 za&i(p1UUKZ(Xu>pj+RMc#>>(|frrP=y2i_LLxCgXW#!{{90q&*iaZx%rl=k2*jdlP ziR1$d6W|@Z4|S-MEfes+K_tsElMhsAwiscgm?R8A910v8hi^%rBvHB)#TIzdREeV^f(y3hI@I;<-0$k&nd1Ah>X10ojj`TJ5#^25?hcXWz3NC_;W-{P2PyBsy zlJ0enCLf#uRiF6-fnDkll+>C&UZ07V;>=xOAXIvY3-!(iu#vdCyyE$~9ypSzNLKVh% z;90G{z)5(UL;>Z8$_mCG-Tww(i2Wb%nS6j&xeztJ8hhW7F)N3%So z(rp?$n;zQgg<)DoYK%XAs9Ysjg^Zf^Xs~WPh;*|M!*Zw$KfWAgDJ8;u@x@qy^ui2T z#Y-TtHQ|S9J>!0syq2~?3DvqnEuPSKPqHF^3A#qC42Ibre`kF3?CBT(%5vTlM4%-A zwf9F0Ck~zn799$_LuJrICq1O)9Syt#LQ91L@4!H2A&Nscb5YMaZ*W%OgsDlspYN3v zBm{pKy3R9JUyvXL!wh2q6Uy=>Vs+2>BcMa7`3QXJ-*cin>*C?{^eJ0J;P+bJ?n7fpH)7nHa(&1yrF$! z!6kSL&W0*I$=|7T9WoB)GXf)T{PFR?X&p%rnE()YN1XaY$yHiRl_@QpP$jD)CdYJo z;B-vb0Oe`FKt+J=+!!~UHs4GW#2-tnXGHreDw-K3Q; zdNzdCC^B_zo`;@<)^+|q(38)zP6Q7gtT6Fw*gV_3SYN_C1J*}D3fMHHLl2*au+*WN zJcG@jt9A3I>C&;Y<)JM`=zCJm|7vZ=@74c>+OFp#YCC8nJq1b9wcfFCt@l5x?%vrV zU()su`M&%QtGhnDwetNm>$^Xg_1*t(_04JC{}1XL^%v?lR9<{TI2aYK!L08U_{SfM zs9(eKd_n#dd3-QEQ^^^}A4B}8u9<+)t@28tH&G^^WF|;jbyhlnON3iLloTEM0bNn) zpZ{SPmKL0H#zWJ=(>}Mj~=ZopjWgdtcEJ% zG21v+wSqp#c;G2rr3aqL|YdowsR-g1PEsL)35;uq1MkhYZBkV3sHy^bQ}(SgR(5%xCNcsgb_ zo>0{6Z@?s;!WYoYcHpGhj5=CUfW+z6R9y9f+~`Iz>g2HBaBJ#_ZcUx(ggTD~o~2fG zJ4!6&&`%gL?1k+EPh|VR){@mV4P72x*zY~&KuN#+ua)$#Skj4);^V_2w!*d=ZXVr~ zh*oCc1NeG%#VB)%j?i!$oyP zx6*?tk>9L|vHl4MJBOA{*`+rUt*yU2PWy(!{`9XY>@6y6{Ds8Fb*~!+@*u2;C9FU9 z*FA7>GWoz45GJhXFOTEb5!#BD^GW6p#uRuUh+gQC{cj-y|2SI0eW!{|;m~L}t#-*m z2Q3pvOQeS3O9pcdUH1T6{h_T7>IOr)7a@S* zcqBNN4K^7|DV#urp{*Ytf6Q!Fp}D;Sfl0~QQjpQj_@5vCzmOgddH%EXw6em;WQ8HM zvxx5dc(F=8I7YQJY(97*`M}pfzE@V5kbK}Cf+bgQByuWulg6U(g8R$%ppUOCa_iq2A zoMAd$i*Jk7+?DYP$i8>P5lnpVNJ8?#ZLk3p2vTVdlprN}J)zIo@&_Jsit0j5E!M z4&^KQ^n^w|q1*YzKln=UN{+(tn@|>|B-`>L;Lyfgs_*#d`cN50+k*4pPbyiC^hNt; zS4j%%=nagAf0imB7}BGG(D94t4N4INpQg%Rq!Nx;?VTy=*B;ic>!8SQ;w^_2yaYvu zRx@~X-uW{=dgN}5xm*f->@_b(%5NBdBvh7u@OY>xGiGcJ?|usg@;0%`X*q_0i2%kY z@L}a=^;ry2pdw?_OzIu{N?FP9URp>7?SZ*&Vbr=9@wLszh$Mb;BStSWL$%K?e)KL$ zTXSAIxH60}*>Ys;YynQGzN@culXzW65KA+E!79=R?8CDvPcM?JNA>q2**f1P{Yh$fg0b8pHXoB zuke*aUGI#avU?fqFQ5(cx_9iaj*R#AzlGrU?Z>p~n!N-f+FONt@5VRfPiJmqry_6) zNr_4lbQ-oZ4yWnSnA)eT;k09Cu7OW^U+yyV5LEyOFqb%NFW(Z#Bmzdd`727HQCk9$ z+L=!6L>61%$Rs{wCs7=*t26(}u|qxH2DNG1`VZLm#x2r>x$dZh7nW zl(eN_Q=#&_%+RO!o+balyYGX9-Brmy*zD*%ahgU{A~v-1l}^XYKocA<;|<#X!Sgeq z!OgCZr-in7_J43vT%O?c(4}eP4c@UM9!}}2%O9hvKv1_FWT&OyiyuiDqzWf4e~gA< z_Sen!-R7ujP1mf{+lgQjhnF~-gC-cgjXparQRJIZ;D-ar61*sCZMYsCsN{pU0YYNMVxaJR(DK^iHx~sviC>Nx@567p`AcJ=n>NB< z+g#a}K!X*flB?|${SqXH(Jp})fl`}IS#PLN##%DD4XB2e&coy5E zQE^4658wQ`(ZjC6vZL%a%3t@`26@*<6ZI#b@9PxlLbaWP>5r`+c8|}Z{PD*S9qR%~ zm3Rekp9Q>qe?<94)yEu-NelT6-F3u=WLc<*WxVLUlEQtXOAcXdDR7!PJsLPm(;07h zhi{BI%Y%33{VkVoJ%sU#hd3H?Iv3R&0(kpqM10ow3gfS?nD77S-q4=S2PcEq>hJ#b zh#<82ii58tANUN&LtEcu-s8XfWs%Juj9{)Z#UegP_~`Q!k8(G?js|P)PX1P5U2_~@v-C~R(sHeQy~Jk4OM!P^IrEE`u9-7B`xmG1fpw|T>rhU3%kjn{f2U@# z5)cLg`*ZTr(RWAB#h1{<%2*l#QDLHq4{O^t{!a1_-r;*CR)D?%-znan&^5#vN}$R8m&uO~JNe+1$OF8+5bezxBW_aVsz$Y`R@JKpRHqtLyMeT;ApT?X znB2QCl)pHar=4J%MN4zVvcff3ic5mS)3QUQx;#+N6&g4mr>&{V-xz3XsNNi?X{)Gj zto1jmg+mOeT(+>-cP8d9<~Epk5MkmVm%h${^Mbh@I6yDhm1}M!QU0MJ>>!bSLAki- zD7OQ9qL?ZO1bcFklH7%z%NKTHKP~fArMgs~8p3lpDtFb$=a3pj4$CB;9jZrU(DxqT z$$+`RK`UZ?_CT)Qn37x8hs$G;yni|TS~Y@IWs#cwKgAKr$5o}cxMOc_R3akMI3?dq zB-E`FT{Aea1Db}rrhP9i!|K$qzEEHk#|napzfY9a-lf;4acu>*%;c8+^F1@U%liBK z_u#pz6ML`lJ2KLR=MZ+EVY^^g=Q12K(y?>db{xsmiIqJYR)QHE9q8JyqiX;=Z#v*? zAMWVcfZdP5-ck4)%w4u4cUk=^HRUGQ6*Mz#1|#|hJ4{z_&(z3@k-ovvom~SsSOjO; zj&xC!|5q+sxx8Tc+GQhhQrwE}!NFyFiuIa@Vi}#sDl^A)9Q8S@oID4y4Tq0>%)t{S z5{wz6IAm`JF2Bm+5Tjb0-6vUb+P*J~>Bj zA>CTvSgxEwrg3_?c8rRLikf=7jm}-~fRlh@yRefph}8Ti1#v1FSl8?XZ5XU8a8TK% zdYr1~-2XMfxME?(^cE5OB-J#%K|5}|7#y4k2nY%_^(F~UNSLNIq?Mub7@tuIw5_4J zQ5pIiVrEji*H$qi$+ZTGB_n01W7M>tP?^(3Bhwxc!B)-q>3m7?5lPoC@N|(xhFY5t z$+Y9oX;+zc{_I6Mo3+Dm5Z)>^Jy{AyTt#ZSm)=}zCQI%!AU#)un4zXi zsMAx50Zp$)1k*1ecP2}QCv=He0?N9<-{`MZ&ch$mdD5<%L*g=1>b!-{#H!Z1avsR& zy!-D6U>0|+JMXp*WCRbcM0|4$<8{XAZ>~qM-+2P@C03PIH`n?b#PiV$Afr7WwLELK zavrS~|MT#KpT?G^D)DlRdz`eFW40G^mGjug#7DjOC@&N7C%$5fKVgaE0(9pS-w@gT zB3oJ0sHLBL!j^v0k|t9*pL|i|zb*3BINDG`f93;Q{uxW2OyzuL2HJ@@Zd}XPH8uO| z$^zo&1P=Z%GjPK8V+tteiHpVGEIbpdHr9xbSGL(cUa@>^#LM~$k3+;&b0TZ)8)cci zdb91}Rm+3PSI$@O5?@#2IlZc^rLn2LQ8`~{MiOyyVNG7= zxp8N!a-Jb=xQFE!Rp)Q%a=Et;;k$H#h5J)Px1gc=ZM3b+yH}}F-PjL zwB(x^V!AkHCwGvOA&zsB^XO-;IOZfTV`%flk)F&NY(}OyGLnBpKUw0Ko6H%W8QJ2P zmwW?*&XI&?s+sq~lOK67^XIfPHzU_zz9TZ+s;-zZ-RGQ2<%uEH746Tr;yLUEWG zUL+1P!{>>^%y7P>%FOU$ahMriA`Uad=ZnM4@KSM@8D1t1GsDZpVP<%RILr(e7?&b9 znaavwtC~@0G$P|TLJ}&Fa;`?!L=VZRlIqGE8tcoHYyM`SxFrzJloQb7wIEVi_oUKa zDyy;7BY23W;H#|0--K(~@?E*kxrFna>kC{g?yUufd1N?Mv z&-UR`v|V-#v+aU)j!srznMlCMHMKa`Ubg7F7CYZTvT_BLcA#fFiXQ)`8eZ*q0Hzd0ab=O&(uts@M( zdI0BEtHk*db~vsDbQ?OZJjUg+<66kLyof6*#KcASNN(mKSeLXjM$w2VM(fX=$4~Wi zIt$m(y-2?2aIRWOryOf3Z0*jMwi4KDipXBvZ28viCGD^ypE2{MuOg;2HghZdHBAAN zZf`PE#@fmOsazsV!UgoU%PXMVqqE*t=ih}F!8 zuY}8Ic#6E}i%K-oL*sD;;j>O-aP;Q_n+ug=D!51`Oa&J!XAIl`3lEeRD`QF=$(}YP z138!;!|*pY`nR+c#Wj=go{?Kv{V%d7p`0dRWY>MHP{lR;}ey{g{C#7;mwVerIz9&q=9a>6dwWmDQzk~ z0tSjxXXB#WTv~}na2yPDv!(NhK>U<8RUQEY^`qH}d~JQv%9j*GT(%<6aHgU`znP~9 zG$Kn8DAS@d6b<^#{6wIV?&(Zm@59Maim&l+smIae5#^{gZ{n*^{HDoEeoeRte^IJ8 z@j~n|iPF7^11^kGzJ;$@9i@B|F2-M!_Dy_cVFCX|m4M08oRzv1?!7C`$|Of#^uWth zZ??(N?{-a7soHn_#ElWJcoe@@`1{5`f?p*5Z=5*%QGD@#gBjUDve?;7t?aBQ&O& zQ^X6OD~r_FeG?DH=Li`V-oA(8dGJSLKXBiv`=(@WmUrR6eYbu$o{ex#zxPkcwEccB zo=q+5peIgE5j41dlYQ$HfwMlbd`}TLOW5-Lz|?VDukwM3S3e?p*!+QsQ&WV_qzm)b zDZ*yd+UFF(GTGYa6nWaRsc@xw>E55-9P!b%-v2Evo7D09e|~?&=hu<%g>X?kDr%XoOCVW+&zW4aJQ_bFjhN9tF=y(M+ zop)Gy&U1VlZ5rj>p*;CQI=tJJXR(k8*pBa6BBWEDL!X}W9jqc}{~FCNuV=ZV2$L+{ zfsVnx!Qm0*DUic&(e5_gg~B(y)@fIsm5yVG%$59e#OPTi(jGL9nU-@Hq^HR78wS4( z^it0{$JjaOz;LCH=R)y`yY9`CsXXh2X?RO}gCh-H!*Yn0@@$aAy1b=(F(?~`FA_Kr zzB}cDAe^ciZjjY*UmC=rh6N4%MUVLE@5YS zaljaz0dZz|OSQ8?oY`K#c2O` zUZ53NBMQv(4q(rw^3*zRLzeQP&I?c|Gg+zxq(A8ZS^@MND%MlyAnh||70;Ywe(nNw z^|gUo%Ta+dn9I%2cc7xRu^OYIx}h4VKqqUX`K4~DYihw@MPqZI-26tP>)9M=Y{bCI zG~L>kL+?6x4ArcQ??Gzjc#?+e5$UYQ(Oypqawt%_<^G(c(GNizdgvu-7acA&CoO4U zAH?15Lm1-jR7pc@-z#^IO1fIcQ{CI;dSI2bI~QW`;7PjvK6>Ech$`s-X^3OUUL_r* z!*GvqJSXV}I(Xwd^)$zobmJ@Z#ZBFXDoHL_(yo;%DI_te^t7ZalQEN?@Xl@ziPTI@_=TrdVrdDJ|5N-nRae{LpS?+sjtlN)CJ5pv#2YE8{zZQ`vW%rLyw zRv4P{xQBR7oAO>l+zS_OB_C1VjZ{jSo5yF$#(!@efpj-7HNt$J_fm>yinC1%G*TcJ z<<~oeE7CfG%G<)c}<>quc_p$nU=M|#?ZF?Xp_FCgfd^#wdr z<;FyeHBeRNIf-)8UF!Pz2zcIIl)3EFAm@_&im&=Jn5lx^ci`MS-$t4))u?GrM?DY=`cG@Wx8=bYa4K}fn0HcCoY!u z9`YLLCtqCPiEF8trLT#JC~#v^G}zWX+SfON+1f7a20mXixkYYW<-pKa@x|IMm)j!UD?m`|r-6QS0aKE03 zwGr!aTUQzQ+Np;=%iV_S)~UAbtb>Q#y(4X?fw(K(*GVKu#GFkPw2SB-L2=IDkYL@! zu62*_M9^X7>v;>Cvi6}S3%22V9aO%nE<0DL12&-FCErdO^o?TNzW!^GrklhNe1pUf zyD?q5OZl!o1h1cS%g4|+OvkPG#-(omI&4?E>E_IOMN3UhQ(0pmP-lMOOuW7!P=`}^ z^>@ymh3D-xy02_PRn_I?@Tx~iOsrJ8>$vT`NqHlq!pu?iW&TpkdgVsKwbgaiwbhs5 zt2q&svReOU6W^!XzGm?H5-_w+OH1KrUsMV;ucE%JrAh6JN~jEoV(ox%qLLfdKwEjB zX=8JJgW4aJKr~SU)s=N>UsP`VH8oh6P*q)7#S6Ih#iX6XuWe=ihUS*WfZ7+G0e=nd zVL@=uyQf1-4JLU^8k1^C;HTx1B7QNRCSVlXCzXG>jmgDO4uk_f&a&mJ}-n zu*Xm-8pdrvTo>`%<4G%i4i2e#(=O289)0C0Dz>x>SxFmiv5K_yvr$vI^hc%^^=JEz zuF}ChrE)(ir>9lghT9R;9A{c-`h0v)hE-a*^rYN7Ov>TjZc>C~=#yL10)IpZ zJ|nHly}&H_TGS!_%0OxTW>{PePQxw5=vifBeG4X*wZX(m&`eFsjN_HIpvdalbp2%7 z$wvx>W71vHj}mMO)L^dEZu7^9p&CQ;e@=2*^L%8>ZFUCJHqnKS3AMEnq;yP-DK*p7 z(Sw6~Raz_cGAA?bilg||g?6PB+N_J6P)8ffTYtaPwn=fh&BMi2T07kyH;xR}E!>?9HBG0_in03yuyokW&+zM_t>F4Jl1y<-A!;kw(FBgqnBA}~k0rzp z8yh3#UES?GNH_v2?HyXo8C1%MscCmxp70pK_V)4aVHg;j!7}J8`!>^^y zGkeQl5P!Nc`^s-2{*3K94q4n)HX0o4?nY;tW|<+yz(8iVv%9S`6A@Yi4kqd!QM0%2 zMmTe?b0W{PyWR!umIlV`9n7C{%<|<`cfqx1U{!_RzLD#7&VZa zR|dXs{xHb7Br|>a&w&=R@SRVyP|{XM3vM|L#t;{pMdEVlEcptVJ&zlgmPva=`HI*& zNz-kMHB3UfnpcFdd<$M>Oe8(N3sx*b==#hcDI&CE)}Q6(a<{!+OmOAfFb8cF!;Ojz z#U7z+<-2GpI4;~F&V1xufDq@BEcadacZSZ}u$1o;Y?HF#x~HwPcLWF1@0E*?(Ug<> zhz(kIEN4HB+~tmuzy5ke=W(NTwiCTy2}SwF*kts&&8vA$@BqQQ$o8dfdn(@zRBJK9 z*wx#C#NBu!f?Th4CH>_RHSdcF$jw66c{o3grSSdxAAq>1G4qmS<-3QF$IVraS_!3`QHBz}pN0bQMljec@jX-qG%W&c z8R2q7%hONjDLsPCw+Mk9*#bP1B^cSG@IAE$aIRI_lz85H86z0fOw(muv#bLA-*EaW$ z_G{)TGS^2id0V!{e2L5w=3Hl@RBq`W(LP`Hu7>r6eb!t3h*wsCQ59xDUG0518BF_Ze9~?Y3!GbzS&)c{;LK37opAW#`fM38+(n|74BN|o^MO^ zb;8@+l3V*-Qoc6`chX#N|Fs>)uZZ@9Q>Jsu-qV}CNOND9BX6eMW9|DjSwmq~h20lZ zzPHA~3x;|2>RaXe&G*3C6V_@3>+}h*u8r_D+`e7;&M=;R?s6m<%TlfU{gz2SVA_)g zD_GH*!&|<$9c$17a<>d&aKX%H6#r}i_%}s|8YS>MMsV0&KcE8-@C<(C`#sUm>F!vY zzDGd$-epyKYdA}-wQ~2I?=QC?j<37Xu8llw&i9Xd0pCp+re$3NARW%h$HBSR3r_SY zbUx+aJAEHHx*jzTr&m6Q<2CqsfSlU)on7YP_{x{ym<0YHaaIJw?YmiO+IF3eoV7R+ zj6A%)O}pENs+l|VR`FeStOIYt^cT&W=3w=6MEt>%RTR@5G~Q!`%dr+V*kvbfhNB*V zJ*7GFc}I462qq-Dd(jVeIR+u{tk*o|ElN#E4(jQo#f#BMvS{R##YG;i&nDL3Shsch zypG!t{;QUh`3*8J9>kqnKL+RMFF$-Ucib4(!4x5~{s)iTAX(X>^1GtW7fb z(1bAo7{@%}o%P~=;$bw%_aI3_xMRSVE%-aY2Ztiy9D(2Uq6}iHk%Lt6HVKKA$y2_?QXn2j4ipu`TH=@kUtUDnJ`%$^Us9Te01-jBL64S& z!w)~{5|cJ1vm2v)g^tU?%5>y#fMm44AMKFU4mLG%9XTUf@ogib7>>q3^J|2g=g5ip zz@xC%%6NaiBgg!@11feTK{-nuIlHA@2xOgu-{}HJ&JI*J+cCDIIm&l|Fp4bEHgi1e zLYYx0MqJQJ+n~OKk;6ReWtwBXBZotnqBo4uP;ndN^1%|sfID_f%iresG@1kD5Z2dO zwC(6ayvnyjB7Gns0`CZ-Ro3I+u*`#zION-c7;E+QIwsLBdpME@Kbm)y@Fo&+%tN&Uq?0L>(OBO#j_wPTI_1pa#XuUm&hgB8yi648LbnJX$TfBf z%@&+tupN2ski+K}&3LhyplyVU;e2IcMVRoDaYl`m3ubt?_l(V&cRVs-fh;m?Gk}Az3m+xXwQZd zx>4|46OT-;HSwi=L?pUayyTl+B9mSxoTW_BaMvJ)bH!cY?MElAcci_4sL%Y?!T=kD zR}{(965w4bykf?Hj|0c1@v1ZmxZc~}e%0WxJ-qH~61c>R@!?3gS>W6BMg2n6CuvKIlP_nXNqiuUvPy4Q3w#+sQrx~1) zu3#Is`1E$0`+YD@EWFKLIaSswv*8`v+dA5ZbVKMek+{M;FxV!ucNj|+WE;W@w&OOX z&NkkDBg45@2&dDln+|Q*3DHS?Y!$f2g5?5g-<6Ivcxn1_L(F!YyrF##b*|Up8*n^> zm)AS>eL}t=5ha@!0Ex=uzK!?}V?0?dvhiIl@`hIuGi;}6SkmOOV4bEBNs}kXlT2X?43w_YV-rrr!8rABqF4lRj|(iDuJ;#5y3Xo zj#Wr%K3mKYEPgrRvzaV5%p+K$dXqm0mV|tFv<#i_{=f0#($(f?EJ-%lBSPbB2qb@G zvHup$7AHq7B-0R-kp|)c09ihNhFsy$Gqq5GQkM7^9XXTgefr^Rfin z@qo-7V9jS^RrAf4_%X{T8>zy9=t~yJ24*-oaDGn?KjCadTH-FylJ7MZm?{)A1V8J6 zx_*I?Jj2McB-v=xL)xZAR|1gv;mVrw;a(U*IU6k{8JTR`xU2k4ZLR3E_!~?0osDhg zeRCPv;@=kFw8jWJJZ!w7588)j9d_?!1haqPq$B@L0y5asK))j`Hl@(TCPM zYX1&g#fHz_h{{-ojer=)0Y`U_%FOR&#`1$;e#?=EDEa`6#>aC)^yF{qC1VWhA zMbHtwRgU9lY-jtQ7AmMP%k&^CRw9c`g=ZY~?OZfWI)Zw{P0pD($Z z6~a@~h8EESYHIF+X**b=^oCMqUv_TZ96%m{Xe?L&ue;Q97xH~Y8A%S!!7?@XyyFm0 zGtma~Qcati|7CE~r{*%-bI+$hCIvV$*o%o~G*#y=KMgdOXmi&vT2WjHFt_0E0Q0P{ zB8q}t;~ z`83$Y5gx63FXxu`A$9A?i8Q9U75BqK31OCLsVrI=QFE&)U2ehlu*KYsPeHtjxLiMJ zp8h_!_AS6QgkfAdciOJh+Bora+)YaWU15eQ2kfi4n^yzd21DyZ)sn@@s|M6K(0?Unxux1MjGx2O5?qFE&8q~D zA$w9yCzc=K$dK6iPlOj`c z9zjNS_716(_1gMmMa%{Ul_pDD5Y$EFq>Bqdi7Qhtd(lB%On$B)I;au?c@lPaKbFw= zxhN=K1jJoR_fmIIn#Cz)jI2N=p;F4}vq;Yz?ZlKyN`RmKV$1=iRB*CoJ>~#4wE=U0 zn!3o{Zc-QPX%a5-k%6_8$~36TXUtoQy-RwMuL;{|%IeEwHldMc-TOtxwFFts?@QX4M?+d}X*7r>F<8K| zEE)`4+Ja47YI!uul>(*Q@fT=TE23GlHo@W*MDrwxSf5&@3Zog=!GcZHWUP#4GzDt0 zr5PLJ)v9QQA3O4z8|xdY0;(vQgEcyv0%~cc53W|fhzHlGU&e!L)qll< z#p<Pm^)Fk10=FJ$kzoDU~x(v(2P^0`hhSyNv3gx{OgQD=v zI`B6!oC*wgpN_+d)R{PJwfb!wwnn`jhpkm-7TLJszd*bU93L+&)DnKXJXhj{<_LSWp2~7 z^Fwr{x_JuORqB>0&?5EODbUsGb5o#e)aR!_*Qzf}fflPTPJymd=FU(%z5W^$t{-2> z+hW9&NOf!P%a)Tl4V!t%NKN(_omHa7o!H3rp9$(8E%7`!RKb9b8IaG}2zIyt7{kK?FBi?!SwHP$8ndsMJP`oL456qpEwyFdzQ09g}8*Z+` zVrQIl&=gL;xh>EZDG!uYV?A$Jz}${#3*h{j#z0-!mX^BeW@Ta3p&p3`H^aCdjfeI3_OU4#fyOePA#x<1CF}ct8jn|E zw;Y>3kH@q8wXj*5iaHw4EHAAI^N+>zH=(_X_CgKU#UGDn!+WH}6Y&zd^YUaoLwY+; z#pAkb_Oo~f&O3WL9t~{9Su?fjnRpKN5;ozr4yb3RHegY$Ac zr@pKin*d&kXPEVgdNrO^71->z*uRKj*OWCk*5G2@=-0fasj3>=240Va@nukN#DX|M zP5mkcY?NT%j74>@zmA0&>|3!QgZ)hmSc?%awO{X^u&Wn;OF0_M93;MeDo#UVV3Qh~ ziUR{|PzR>sG~nn5b#N+o6jH2h3FOEh&j z9&Zd_BQVBAZjNW+(8P_k{>F_>>XsO0seD1|u#Z8Sq@VprHkz`Zi(!^mH?eG*TB~u6 zp!$3acVlUJbqyN9&GnTSg;rnq2)0D~#gAYj(pzI#flFAhx5c1MHGx2b`ce#vE?lAd zay+P1(dr9j*i&1`B z{b-z+iH~An@TCc3X4N=APggBbTzb>d=`BWRSVklSTjBzBt!RJhO-55N1311+Z!n5y zwg#+m?D#;NtP$-v7QZ%$Q>3)6-WuYL^1`Dk&7p27lSpP0Pt=leVwrWv3RNC^mbrli zqc?~QVwW&BKxAd=^#ClrIo_D+5NvG<*uK!d&5#1h1cB$ag@ zLvV2qamP+f%#Gss)U13?FqlcGWmH(8*s&99G%+`pwRjF9nR7Vn{J|{<-JI>xDa=~_ zXyg*=j2+KfGkPmVRx8oX(P-Ols9I%hChH0}mX-ClV|Cq7 z7gzUn;Ajk$wS|#x3;T*h zRrP8dxG>0h@#xTtRjNw^QnA`wTR>7$Z60(5~6BwY;#cN{w zx7>;q6BzW3G)NF?Qu4G3Z5Z@)_vMnQb+XS)_ZBqcu=80=1?UQSPq(3bk<@sHe__jJll`}oNC^ycxkfFIRk5)OVY?5N!W@e$ZV`n%MRWMlIBcf zox2i{Cwu!kvVRFUyL&s?v!2Adtn8h;K^wD9kRBlIQYrcH&A*Kq&wROtXN?Bto zrM?Uq!(f;x{|nL6r-%dW0X>hAW)HhS8pd@5{sO6-oZCRoC28bT-49yQn{&yDZ3te? z`v)F5xj&{1Nh4?E1zTqHRHw+yVmJ$42cAcA-Zzl)oV-8MO_FOpRn9`km2itZZ-mNO zltMSjc~8)N-nn#>oOd%4nv-8hH_3Us$zSG&doD>Mr~NX}I-MPr9e~vI=5BoHQU6wV zs+?6XAQeCYoxNBGGPtw1OXU<1ORR40ZtmfEGPOH~HwCx%sp6b9rEO**2ssy!cFp=Jvw7hcKzn9AM0))_puMwx#q4e%oi?kU^hM8sPM_69`r^NU&Ybl! z>5`Of_-4=Aj!1I+t3l_@;@#yrr7fWIXO$B#+Xs5-tR%{p|2yb{Szjd{cnWlpHiXL& zWU4&EhF}<$nneiU4uUkH!xorI3LGlZFs`-u%!K9XD;D@u3rr;i@h9T6vm+VwCq&Z+o^6PCGQt*90 z)MpqMTKu5R7sb#C_BHr1jQ1oVmxGp|z63%?M+*Eq@q-1LB6S03k(vOZrAUGQIDQOc zx@hfQp-`++BC0C#7*;Ry%w}-UYoxR+BB~%-v@1)*JUR`o91=-??Id9b%m<~=H>Qx zpzVp)N??!5*?JzJVzw{^?W*W&-!Yg5usG zNJC^cwNKL!rvVTSGi{0ISRiw$#Z8kavN+U*=9tD=XK|3*#Xq!Zoq<8mD6_}9A0+=4g|~TzXi1H8*Zj^;9fXopKvKp63ZE+JJZcA2<9R| zSjx}|fVny!Ohu}^(~*|KWQvV2F~UaP(m+ezFSWo_)>5fdjsE-zV=K6jZp9DQ$&1PL z$#b#gpUKy8QV3Gmx1~d7W~}JOERb2y;tU_+w_2RXZ4N1Lp280fCYR{$7y6fYx*Cz4 zIpw)?XLq3|sV|+86T5RWi70dzv3hfGxJvJ%$j!QW8dg23nUg5lg%FVK{W-d=YpxBI zwS>9Zze4D9Tp9W83|O|&sEoyIa>K>lGb&>VU4~w+&UK!t<{EbTNO{7*MQ8+h=>Zas zwT~)=RVSDBrjiRVWPx1RE0PxHPK(3Ey#iXChb+#AwjZHpU>&YLe_d9juX0HY2|!(v zPGc6yUopwXNh=Jl`qlB;oe3R=1Zl1WPlu2soeP1j&P)YpS$As~mxG+XvuAj4U~r@j zt8(Rd>~jxajPAvBEC$vqKTYK}^H!AkHB?HNrDrikoqTCm=d z!AbG`YQa4-MUm}T%I0n#wiIsrh(-f0M=Gy5dwy1H6kMr5++! z!w2I@y&RNga1nFr16rCw5;zwj>%hB7@qxgevDjRWENpxI9Ojpckt2NnjPXdG3}eXheZMV3 zAEG9S2H||plHsCb9geB62g%`k#&yS0oD-HGE<28hJ2H=FA+wMvH?Swg%mkMji{=5& z1HF(Q45I+#oSMAs?_7nNoM*e_<;n)2S=&%^(|xz3wU8fX4>cBs4sG;EK% zpL8B+@2qzzvvBz|R^>h0`&Hf|UbK?##yS7kQ2@E~s$HzdJ7ghvr^?G`A3ax(Bw}cSQ$r z8Ml$|zN@;P(p37gq&u16CsM5z!^&%=`qHKbE7%Q6p?7AtyO@L2lN#KY%<&~fQ)MYu?-(?a zwII(rr2ztGo{+ejBA7G6vj0t1qFP-93-`!(zk2F1aXkkpy_8B0CLaJ11`51D`mo+E9gWDk_?kx9()D#NRv&zj&-jP=*B^ zR4i(75j7I$G}ho_3U`dL65HQ~X#XfomttN<=zn}5q#yGxRaG~REWh? z7HrvKC0;>~aoVG%uFOijlG{X}*mRm@1~Bor+#DoR@w|CMHNf%^tPF`)k4J@Ft3&7s zv&3sSeC*W}M_O3XO1zdSyHUuRay2EFxcgIN`PRWILdd!$xrZfrYrN1{Ytc&FOY-&* z*<4X;C01p7o%r5OY!6OOLd)I>WD^f&3-?tNV-~?4H zL3|C2@0k)GpmAa}Csi4nb0q%$8VJW3VSEH!*IZM-v`o(iBtFP;i`TyR4jLP=h5R0( zUmxv0}035e1&KCe9dvr275M$i$E&CNXi&W-#$Hb1)SiJb|;COiEm&=G4@>vx#c9-mjJ! zNGw%dIi{3~rWC1CTXH$V^f^1R_EVhuW?6}K+@z^*iIrH-4VbK<*qcTbm%C8n2rJW0 ztjIuT6IG3!gRI0#c70Y<&E3t`t@$|95Kt>m7GpYWdrUtR-2rhOJSqr%YaPF5-R$`FM zAbW6m>#Shi%;qY5)@3CwW15CS%n+@VI@2DEl=Is*D{(m`QW&fdALuvXUL|qG%^W~% zY?y+^J{##%cS;T_2hEQy!NN_QxRNsJE`ft=Pc|0F)*6!It0ML71zUu%mchy{6g@ zNypC3|9T!p96idwAc^dgoWUdcHMM)^Ie0WLz|5WJ;4yUB zSow|%Lk}KHm(Mzh!3K}J7omFj`vm#rwRyf=GE*Ltcsae8Ymp@n+95YTH8u2n9qycI z+(K^3%T$nd&l&7o?n`) z%l1Am=vL3m^FA-~lH9K@$@~0~m*fGfPiCKIvmneh)U7@*9f8$`=@oJMoMO{MuUkI{ zNY$te>qLJ0-e-`_@8D0z5Uqy}z4w)!&6Z?e2I(_+(_m+-2fy6#%vRmFbvm9m2i=vO z)No^8&PxJ&)iMNmnsS$OVFw-ha)v&GcO3TR%*GkK;m~lnxnHo=rQ(^quC{kj%bCwo ze&>3?q&)n?{;3!N?5DULR!VZKWk1abldCQJ8G@AL<(93sZ%kfc0EC`5LJA<-q=nSg z*udLt`>*T}t)yB;r!w~s=G#h1)p7Z4M#c($i>l@W(Ho3FVRJPsZ7#E@och4D9#>)Z z1@;Me(4b9lLC6FbC=+mD68i!+Wu3bVnY%NUVOG;H$y`C-UZWtgqiz?N9SxA3btXFs z=)`1|pNCJvb$SY6qY^A?;uhlq`+6ou72yJv0+q`J%;j**`vom~0o(p?M7Ds_B*PJz z2KxHXb-0&(+I7Z2=3)V_p4>87sLZ4+(=joYU2mr>H)*J68W>r`=bqhAE@ZL>zd zuFn3^x8WS|BmeIi^AY~P3!yPz0r2*BEDo#pO5AtYC^la(Z)^gH|Ez#WEQo1H!kFFw z%>d&w;WcI;T-!*W4sbWYNPs^POa$Pf{1aG08DQokfc@e-&^GGdpoYP3)TaQ`2;KrX zpWrV5za{tsz>@?|0DKBCo(jhJVCzVjWlT4KAq0H@rV^Y6a2CJ>R?yXmaV=wPeU33+ z3~D+2My&$4il6~tKS3qHCj{pJ#KD-O<^WL9s3`#B$fS`07*CbscEaTg&QH4>G826* z#5l#+=nt&41&ElWKltdH2mrsY>tXW$a(Uk}dV~E1r#?iQq$kAi-gPodiDs+)Cg>Sv*1z4e&1j)gbGjb3Y=tFa8bV zV}m>mLxpOPV+q(GXA`hNRuQm4t|4H9yb@qM6{rSz04~)a-zQ*$jKw9tYLH_ARD--5 zF@Db&TNg1#Hpo)=sRkJ&V1wL3zy^5}0UP9F1Zd0t{7!xN{9wC4QQ@t*|*pq6?m)2B`|Qs-16}e~KFYE9?QNN4{-=scMX@ zvf1Mgz-9B){ow6tI|gpfJLah=z|F^POmc4wPwtH-xwF(hCJ4kOyQE^?tdjp7l8dT_i5<(n z#pdq4L%V_@v1ke2I<;@Le?T z@5B8t5M+MndUabbxwJCBb;+S2Qbhy#F0cmkk=@zr1lQ}_&R&VG*NRSF8EfIS*UC_C|oUHd@8s>;jIfb2!%au+`X`i)uHXo@%TugG-II>j*g3K19H=_6-7#wVx9( zXTK0|tQ~>ASdFy{5z$qQ=;CiSV(8*nI~RUxtgRv7Si6ouUHlSoti6YTW9{<*?bvGzRz zjnf_s8?RIz=65Ulc`wunN#%XPy zu@+*uI_`leJC=G8ADh{4+l>gLOFVY7Dej+rl4+D&+0#)MN-&d9RzX@34r*;QmiO&E~B_4}fk;xcaA7hLx@gV$E ziMJ83#IGY@i9bxh68|#+OPq>SiGNDK5|4~S8mLlA{9eRyyb}KeIerZ>o5ICe-T0(A zZXi|zmiSc=R3*Mvdvq%Co}LoN(-U*)^1l5p0t|%;d)IkV-0z1M_xq-}^`QHq8nqIU zku(PtnQ5|dE2a7n&ua4aXLcOCweDv{_h;d{KMU7=Na@a`?vX|}M$AH9FnE`xx4*J8 z;h&%q-upMEo_-as{Ht)~Un}Jcp-=7Hs!Pou?e(a% z%b-&m=O-0M8#B;uGBDD_hi9C8T5OE(^X-L*HqgfspU)R|Y3uWG@&lK)TEE}NYuR1Y zf57M;)3GVb`ucWP-^-Bt28ECEZ8v7>8XiSg6U8k3s2q>85s-5yyi!rwjP@~`4@x#; zR5E^|TTKmh^Km96wg+w)&%tG0G}>+>+f5JO)opm2VmY|+B*tt2ng}rnaHcFOM8{J=^&czXQvJu31nfUvB4GdVB?0>nUrzw`A1445v;RO0OMVBZlWVBfKYfPKeJ1nfH=0~k*Qs_%FcF4cGZM4;}>dI7NS z7zd#Gj&Bj;yNt2*$i+~?zGDgeRNt|TfPKfM1nfI*CSc$3I05?(DpGyNYXs~&z5y6d zmC|>xYYX)q?k(Aih&T$FR37SHP4^iegLgTYKYKl#s>`U*O5$NOcw=-Jg`%{w0`PZ& zc@cAsDl@}!*h*uuDODk^!!-n+q|~fbkLc}wzLyaL>No1(>`P1?>=#}K`$-*CFL0QU zVU@7Is)Rk`ObxhRVuK zaHqBFXt7a3$7b!>0mB~Q+Y7mL)~{WCFEd6R5gzFX6X}$1DLBH%<#^GiXN7hvB&&@a zqf<6YrR*U|*=UurzzMkNU847SvB&uM%pVh(+U#SM*=Iu{Pt8M*Qz16ejVaslKHkGW zN*C@^w97gXE=)^LP=2S=h52~xnhTdIzQO2R5?FjWzJF{neFzCvc55JpS(?+(?Dqle zyc9b0JnlRnCvtbge=cV%XFvic%P#kAf{<#5kHS;6!*2jEgT9iqPN(5)~pf^q$cpMC*rd;HKL}-^3 zyG|9#yU>7Yh1xY{tEpXe;kB#I)UH|B7zMYfbv~}-%ppV7wgy$(N?|Kqu^N5U)B<-N zpGMi|`}jDjjsA^DkKLro?OwPuk09~~k@r6!1+)yO60D39(bs;Y8Na&aac_KZx0jI& zzoV|SJLBMN3m{MiJmL^9)xg8bJR3wKOh42myEs+Irj=F!-U#8Yh;PR#6UiekkBQbQ z6Ez})HqnA@#zbqwO|-UyiPrj-rFcxVUYY1EG0_HPqJN2rHYyYO`xp~#QYIP>cjkIT zP7{6MW<#6kX0Tn67-XcAiJpMpsoKxX5or_s2_7Ru9+(*dK@-hz$u7<+WukAvi-}5j zNv5~I!Dldy+4@x|dxB%XhG6s6wA=)T*Dedx6~sh`R}iV{yG6@RcPN$gEdHgIp_iEA zaBNL2Ll@yf{U~j!qn;6&Cu?)H6Xi4htd70oRPN?uZ}(XkB{@%L@2c2tie-Cvv22%O zarfk4ICrQiVqwNW$2j&qJAJ88GO86^3Cup8}_826ByfCzNrF%U5cNXr8uTC#gX%X_FoXIJor3}Gknd~4Bp)9={$XT9=?H+eZ8*$vE2$q_AcKJQxMmO z7sU0ZAaoaTqZ)gX5Lw1n1b$(=PP=|AVP!lF?k$(&gNV$hL2#<%D^02fe%1#dVcoO7 z*5}T1%a(nznme;FCdIRmcfERrN#Dug7yBp6#r|Rrpaay!eLm7R^$TW9yRWDFe7X~C zUIl*zH%GpKDwgs6;6k<5u9if zO@GVfp#mizL(VGfXg;^owd{a%81iT$DEY;|HMWa#XuCk|bm&KR1DvpVjRES~fb$ya z@?fC4Jh%`ko%ARICm`@A2s#Zfb(SqvD@~{!(kwg4d7Z@{tWNtIY`5h3G5j-E{Oc01gl~u;s zAkNi<8f>zHAkc#~d4#eyYwjY$as1v6PNfwM-I{a|uK56ehlm=#zhGK8exH1bXZ(H> zVlNsk2$*&<8l7m#?hS7>em~|aXNwEJtT#KJ*-ISWg{2@onl!92=^7M^x<*^#mV-6R zylD?%eJ$kgpv~+-X;&+4nb7vV(pI|56moTVAy=D1p4HG;T2_O1%Mtc4QX;+0c@BG< zbYxr4Z!LAGY%bkuNUe1$;a&~**t?PRQE=p`ZKN!Fxw90mTi})PM1Q>afGoMjQRUV3 zkd^TX_<<1e@VcYdT|>5ORnQr6}A8;$m?95~h>Cdj<+>Xh!>{MnzUt%qyZ&_(A-j&Cq3|NLB`aHGq z60fm({)|}EKWj0?xFMS>RBO|IdW-K;_tCE2wqWQORy)3Y@itbQ zI;OFatSM;XIIT33A_x{JO6k} zK4`WW?K_3po?v9OVk0=WxdI6KSCd<-y%k@5 zOUsKDRW#+g^y=`*2sVh*O>eiVIP5G!C8MiQ<%HeiimV(fA0LcWShZFo{x?}AR*h9} zm0Jy%?wSVFXa%hnD;sZAwBX*fTFKyDwn@7u{HIo`|$FN|mwRy*wfM^!7OVhLVokb5WtPb&{(> zWxu~0sZxG&FGM=AFRo2hh%Uwu13XFRHLxdRa1KN&D5_MP%4{+Br}>R76+Z~7W2rjv z1dI8`JMy6(7*ePoiIid}SjMr8K6VzSEJs4iA&FCXgMXa)M< zvT2mdjE%PE_GT>O6a%mEWYDfphL%FW`OynhqSM;e+o;AE%P(GUTfRQqCPO$~liP_W zMZ>#i1eIlInlMwtR8<$VM4VoewIa;yg2vkpso-)#iN8`OJ~zqE=&PFtEvPf*`b}{S z2}Aghf~l@4=|mRtLS~|q3ro4JjKb4R!Z2mWgrxRTIm-7&7Z%w}oywh)`!b=k+>&ym zp6xLg>PG<$jn_DM>JN8eXRU786nO*ED#a`aT+ESY{II{Olk>EBF{S3!rHg!i$PVaj zLsr0x!aC8afEIcK8cVv#INLQ2ni-9APRN2!*6|U7w#eIhD$Yg z@YD;3_8=%LJH(!?p@|`m2h(h!ICCtwoGrj)pv)tzZF9 zrJ4;zR0IX;$8QYsaKMl}72rUe1!p3FR#j*u2f=H;lAIIronw3-fe$a|ZEFrsU*hmt zc)!{G;k_uV7OcE^a=l}`-tU7CSbUiri&5^O>q8t77?$ZKW+-Id8|W=i2z2+Fh(-v} zrG+G2eB+<5uKTQ1W#`+GF=C^{_(xbr{vK8D=09psez7;=wwkW=ns$lc#T zPPseEp%R;<0eXE|WRBIk)h5sdBqm~!YO0W@dL@bv0!;WC5d4b5W7XAg-lV8GjBpzc zl&J|o-(NGQ@i*o(X*TYTdcgmxIX(J*)tnx=Uo|J??!e)&qA_u;IFzGf%8qUDG_MPjy^os;n1BE5jA@IiZc;51spn|P=wOEjE1j{u)q^x0VUli3Oq_Bdwf~nOqeY8;N$ywxUX z!{KR&%Y-VV&tGt$g!4Uy&o?=^41POsAT&=bBUE2X&Qozpaoi1`ziL7H@|z8W;i(XZ zx5K7nN9!4`qxC#|nDsn-nDsn-nDxm2dfNY6+g^g)tiXGIFgH&Z;_zA90zBWUX=A$I zLGn=?FauA`%D04qZ5kTEtKqv_3-YvI!FfErpjjiBhH&XBYynT_DkwGiX*i=J8K1Pq z??4?@QUyFkDc>TV;&33{MzfU$_ax6lKvsGByMiTe;iN;Q$e_3wp~`VUk|$SbwNW|;++6L=({QC|9#2$;=oj<+xu$t? z6)ZLihJw?f3V52KC3)g2_Kvm8-b1ih^Cnac;##ev!^a<|w8lrAD%s?l*YDv#Eg6j0L2Ge%+ULpeNl?_hkgpWlY49DQ!WQs!5C>Xk z0VPkzL3}pO)Jbg8!*{S<*GRe4u4Na-ctsQ-ctsQr51^=78OX~-;Abp1`-vXYp zaCrMjN_MoD;X2yO!-v_+!-v_+!-v_6{I93|_}1im=W{T@0|Q@y(_0!ETW*2xRz=MV z`AU7?4&N(rz?>pQU)k^0WWG11=oZa9?RpLYo+RJbq?d9Ra?B(IZ?B(IZ>_z_9(|&wwzK^h9;qZ)+ zCeyue>p2j|F}$)t&pozRBj}wtJSEl)=f#SWPU!|X`BBR;bbk%{do9hAg=te&)CB!; z&yS{4ya{K1ib4Dk&QH78B%L~1An&uOZlEG<$JP}Z?eR9&0X07 zkE~dfeuHtqBzY#xB)H2}LZm&D%Ef_hB1hd>&@mN<=_ZJE7%_%=%^kG24=^0+^e=5D zKAb)Lx5wcR9fyCvBk!>=E#k2-V|f;bsu%<>;PCVTkHh(sqU5svB{=`0rFi;C!8tsA zi^FR*y8Eg4l%X%tkf*&kyp5fbOqtg(hU;h;4aDLmx zrdGb{DuF(u0<#&9t}!~4!zfV>qeVH4nj}PBivwzSdR)PIJiUa2)q)BcxyO9n;pL_| z)5M1~XPW4UO>D#_vONfQJq|?1ldB?+=SOfLVGpg@h^RKJ=n8qFO2vD1e4%s{@zfRm zNM+0xSJqQ5H^KXNO0s|_H-`Jyghb~Ur4;>0iI(u>Dvb|GN`o5-?tx8Bs^xf^s$dbn6l&1WNHX*YP|P*YlazM>B^PRFB-g`v zZD;CYP+?Ku0peaQ$J6Ty7X1yUqZ)b@J_U+V^Zb(XE}-P+8X8Hy#{3)(7=ou4aNu^< z&of`n_1LE;sDn6Q(2%e6EPPXVyz(ue?_V@Dv77=`DN0=-Ph)U6R@0h21XFQD;08V- zwZBx3)4`3$fwJIN zq%y2vk!aHgkS@a>- z?SKL!Z`>w~ad(UZ{Pqsvl-mWwkpw<1Butl)H*vj$ zFt6Z1n%~6fLk*2@kA8S`fdg%grwIxcO~mOO4J&a9YS@a?CJjyS+u(dpQy<~zI6t6se%#4H{DL6%9>%U&Gl&g)QVM8i(pH3Hsyc z*k2xnd@Oh<=7}O<{be?Y92^Lz=1xsKXMwvI2aL7_ryn)s>yD{7z#73u_-s_Z1r+?9 zh7^oYg3`0x0G}6>?>wG9)`C3!q*xm`FDh@to6Ni{m;R=9dM0ES~elc{t2mw2|jj zaX(C>a7K`Gy5`3T%9n7wje|3+U*h0o?7wkv5|;9dJ@TBs`@fOrl-Xr3%VO|yo`faaOP*m*RAO7+0~mL$I7)hcHrO`z7Ge7`{!|Rm{+ps?aglj zI@aYlF2KRQ+WfYnL4SwiXEt-R521 zQT*eQ`I1+QZ-Ki0`jmvPVDb8q%5YLOJ52Hwl^QR>Ha9KJ<>FD_qG1(QKo%hcs4A}! z8SDw!q#amGU4!NpEMD&hWeSwL41Opix*KbjSJXC#+!akt4b;fW z=2qs?O{!~KE}&jj3mUeiR7F+oBIehPlkbL?VSV*bIQ262<|0*3;wT z=tRvg3OX_P*XG2&w&%M*?=zYvJD0EdAdtMlIb`i~rtfp+9CUgeak>VQ(w*tIJHLSZ z(zmlz**%PwF}P=eCX8f+Yv}lTYz*Olyp6w<|IyZ z&TerMr#oj&bOt9m=j)ucs|o(3}oy)_(nApx4)5e;rtWf8V8V3=F79Pv3QpZ)kkgCYUpD2h!r4R_UD6 z;tUBSLEB9iPOSQ0vJ!L_uFoH@^09unHy_R)eG{Gb3z?S*w(~dN5$N0V|3%+lpl_4W z_m1yKRr>|%ujb7Ts41_ zZ%9AqNvCo`O3?XqRbYCRbA>a}`E1q1$x>#?PK|GnEk(9H^E=Xp&OpohN!t;7Pv=euy}{UTUNwIqV}IGHObG-(2_-l% zG0S|351e&Jj|kNd`lphp4L3ccSf&kCpj(ql)~K+!KzlE2c9sj&eNbCUEP9nQlRFH)blnvU44nRZ(@9{)AJzO=tL(W z$@%2MK!R^bUnhRIv)}e**iKL1THD@HoSc@v!5KE+DM@mMO?0Y^NxuuE&nVg8ESc}5 z?sH~OcT$s_cYJ~QGp5a`+OW6ju1V#Sk~7LOlAW%V&dQ1Bo*uY+LdweyK&qrmfB?N8-QRIH7u5;Kb82|A2bsH0`UNw=p^J zZ{M(9D@vWF`O1b)R7Ea=J+>uks4r-0;PBF<1_*cc296766R_IKJiTd) zA~`7MG+~qQCJW!%bkc#1hOoUfw}8lMZf+>6!B#i=)2-%~71#sYy9X-vdBpY**z-tz z>sDJims=dwazh6w)*Fj+BZ$(b7H%-epdKgo8?+X+RM#|X9@|bVZ?Ujfj^0IQPOzeB z#Waw5PbKJ}1`Kp=+QK(3w5Dy?fI>?hvRQeo+xv%L1#-fA6t z=D%Z6HY48b>e42B)MU+^J!={^G3JIQi_``K@WN6bA(K#nXDi5Ni(4?M3ZnLXudOTz zRUvINd`#7(*8Q)o%*B;hV}&Z@kZ~%O)u0l&CDS==YPnuZSt_f%ybzlt6=I(q?gxqV zYBT5$$~~#F%4?c&1-1g$awy$$d-2qNNq6JBrnX9$vPp=FG%JsL3hz zRbf@u@fNLUE}5x5%~#idDz~+jbApHnAJ9(C&YqAkbn2|R!xBa%jZaER7?F}XGG+A0 z)P$kj1FZ=gOQFux4&xOY?;MZfXIu8FK#br28(h=1(8K-lE&Z(6z-C`gOr$k6u8S{d zWp{Uit0J=EB7DK+*>R39*y23pi#m|?Y}Rv-$$BO`#vjOfF4mtDz4RDtR|EsE(8YIHhst^e z`OQJRgIsyDxG>^X^0^l|8~naP=8U4&I9DzK*X*x!*6ZBmCPzuPd)XxjJA|e->vqjE&3^od2(SIQ_<-S=-U%xm@KG zQ;6EzGV3!Q&)+PuX#CH1!zZ}m&2ovxKWBr}^vnTTGZcqe;?T&LG?=`a^$GvCyzV-V z%}n{4HRen_x_mE`@|84Wnq>mgXXLzTHfb_TtNm|jI`4l;lUYQ|6PK?vN?C|aLh7bj zN$PlVrp}wCjf|YB^N)M#{1hlQ@|+^N)st5vzrrKWidPF6^~019SH$_>^4;7y-?`CF z|IRG>gW@Mq({nvF9T5$6qce+@AU_*?*|G7ylBn3glmoG74U1v}*#IF~vowgwyDHzs zDkH3w%(gYk)oYf*FtR9PUyinWZgfS|0S3s5E-*mCnPn?N`OiW7T^_*>X_YU_G+K6o zs==B*!>lr4;xl&M=CN~jbh*cs6&>TIH3f|kCddBP`e#;EFuHU-o-7&7iT0f*j@;-* zsoPi%2Cpc)nSVW4S>I|y{1 z;$8*Psd`h;CqPS;?{`2t^+$oGtFS2%Cd6nUHlBEk%kXL~3xVns_gkQPgV-nC5#c|^|9pVEZ z9pWgE4zUXDSBJP0NQXEIG)sj|Mr+Zi1ZcM6HVgNJpl^V*=JPNEuWRvYARX`fKsvTk z%(?5>t_9MueFdb$PR9_T!)^xB@%|M^YZ-v6DlNAfs2ORAw_X6!AtLZzh}Qf&Ag%ci zKssKoQp*dlc&jJg)F=Rou+9LQqfi=9p+ZGKgB6+&Q~?xkm5T3bAg$$kAg$#QpduCG z1(ACnNNf27NNf2@e0$*;LQrWg0MhMzF;KD6QU^3yp=*JrD)gBkUp!taRa_2`_6-8% zDsC;1j`tFvd5U`gNLy$>kgiQ{0+lG=VHkMkE3^w}fkHO|X)P}Tou#o7kIy3GF~+#AAK{Y;u8fV93oK-wCK!lekB3ZzrdMeKBJ zi^aD_eCvU9yeoxUBivts7ORx@!ei|qP`s4~r0d^&pkn1)3#9AcWk9-yJuK*Tpt(w} zZ-3)k1*F^M6j{xaf_W@9;3UNeyd*kVq_8kVKLv%y$Sgum_Wx$~SAcW4*D9C9P z0h!ZrL|dQWe*%sO>oES0z!7bIg>h??LP>suN(F5d^td2CLDnHo?P5@|piP2W5wVur zDd>7ZcL{n_(DQ;`6ZF2I!-D=Jh~H}IIC={jB&b@@MS`{q+AHV|LHh(fC+Jl{9GP@% zUkdt3PynT%eYp#VM%*DoqqhYe#n_{{B#bEJ6XsV!M zL42u9%k333484Ws;?UwX>V@{E(J6v51Wgyj7O&+l7IcLmE-{LPRg7ypg zUXZiggoqW?SI}sn1dQwvT;f+vv_xBT1T7P^M$kr}6m>1IQ_%I|dz+xU#rI+1o)Ywe zpjQRG4W!fZ9*~aXu=xHU$hX3zG+I!+ppyli3Z%81A>1fI>4K&Rnhm5=Pz0pIE)n0Q zf-rCG+Ui0<7YVvd&{cx26Ld3>)_fn3j_shJcLn_-sLx6xH(XFAkk&F2=uA}}h2mQ! zXqBKHf^HY|w4hf6eIe)M4M^*IOSr>= zei77TmC0p4LCJ!~3Ca>QT~LvrvjtTMst3}g&;+Dyx=wsA7PMW^EL}7Kw8VA z!aXDCB|)zXdKXBi-~%8X_G|I|Sx}b?jSXT2^%j&MXqcc8g2n=A%{f3iw#9;02x=2_ zxu64rUIEgh%X@+j3py$&YPCsecOV_2pK!^7Mgi$mO%raGaP>esrE7t7E!iU6ErK2p z-$#Y}qo9ujby;Kd^%Ha^kk&j#P`3Ea7gQtYc0rE->Ad|x(BA}o0HoXHr^0;CXQi(as(|Bv{KM@g6b=2e z&J;8oNZapRLFbEa5J=a~EkN1^mkW1|a5oCNL(uO9Jt63zpg#-xJCL^NKY(;>Ux@E_ zf{qFbY&2=H(y+^b_thL1zjYEoc&uPQhd#9d?fR zo+YSEP_3Y#pw)sl3)(7ZCy>^BJ&=y=aY3&O`dH9mK?66N5Gg>qv@!(E60`tFm(jUE zI*tnkT_SSV2>P9%2Y__geLy)#^cs-X_a=}IYquE`2c)ewK+t4CGl6v2LgCI4Zi#Sp!Yu>R zajXQ=rP?lNhsf;_xf{gy3GsbexIYT_nxJ9K|cx#Tx`-31EkY(5|GZ(AVI?g zjS-X~C{NH#AgyJdaEk<03p!uWN+4~G)j&Gz7V*78&>lgz3c5$oK0yZry(s9JE%~}|{}k?H;f@IR6Oc~dQ6Qb> zUY8iuA4uyv4M@wS391m(0;E&5LD1!bt_3>N;vDkz!rdXGVAgq%HI(L2roMJ0kbJaQ3Ap z>$05_E;2J%Sz<^bbMb2^x2q(Ki)Hm*qS` zK|yPQbUro-w^g{kf^HJuyM=oINT>M)K_3gUwi@3af=&Y(jPi}Jh6%S&(0M>Qr7Hwo zCFlkqozh!{yHB_Sf)0xBUxa%DNT>8mK~dWbcbcG4f~ElJl;#V!97v~cqo5<=YhP}B z;{=TX((z6JNnG=f}RufS3w^E>Dc}y=x6cm zw%x>WlAu9?MhHp+(m9_3r1i}Z-wOm?EONgUbgQ8IfOOc0fOOuT1=4nYQMk7S9TD`S zpp$l(u%`p*RE-yuC#VQW$2MQMGU2L)YZh*upvweZE9f>s_XFwFKLn&p^?5yIIh)f_@g%=L(}G z1xSZIPq-#QD+OI9=r%$71-%5MwHy}iD9|X2Z6WqbgN6$l2c*j_9Z2VGzHsLP>0H(V zY0Y;E_ZX1Yd=N-$c}si`35vbSXc-`AB#_pZE@-p(?iB8N;qDi1pKu3-`%JhWfOM+- zzcs1q3Z(PVSI`h3oq|!qO%X0%xU+;?Cfp_<9mftqHwd~DNL%ARARX_Uf<6^=R8YUG zO^DM34F%F+(*?~Ev`A31pv{7I3c49cr{yj|kBaXf1-&Wg13}%cF)8Q|r1QH_xbuWt zA?O-GHv{Q-ZxinK!aX9~v%%@nj9XsE?{|A?Ru zfChoXh4az zM;PC;1T_h|SkT%?BX^acy9FH-)DmsvE)jI2phpGW7-Qrf74)j0LxQ;8n6}U=K|2K9 zE@(%0BX_%?rv<$wsJf?-TPx@)L3ayU*UQNLR?t0yo)`4yiAL^gLEKtMr};ENV^1>N zR6!+z8U(Eo#OLQ)%PoQ)6!e^+cLe=Q&{07sKvzo~P=czR@1SmI)CcZyIHJ`n+M3%c z+zueky&>FN!Ub#-7BAeoaw)=bD?1&wRye-Zsk!@wdq}vSg|krGwOoH7oxTL&CJL7+ z+}Xk{7H+L@8-?2|9NU|Y;}hZd4yoqiU?CkZUr*NDDB-v%tL9b-w^q0tg}YU_7lnIS zxSxgNr@~qv*B#gKrU=Jfi#4}bxP!vIDBL%~eJ|XZT})W6X0GEX7p_{ky~5on+}*<6 zFI-Y(4Za`Jzh92xty!Bm=rW-brWDlAMx2h43Hcdx9RNShP%?^q4*&U?1sN0tesAO8 zhZG^^D=_?IBE7=CgPVz}5p zKQIU}o5Aptf)KNt4Em)I^Ly$+4-{gar=Bq8pJ4dpc%QH63Z zc4fLLnM24sd!z7Qoh!qW&e0l|p`2#;zPm>)YaCwc0b&c%pM4EAx7pOz`>#I$x| zws&G~>cl+RiFvIP^F=4d=V^#KJ$*YdBRer!otRmjnCecKh5y{ zRP)o!KRYpzY{cqkMxs8Qm@_&t6FM<@otXKZnEFl(-*XL*{mM?vt(}-BIx&Cl#Qd`p z^Pf&kEITLlGkHI?6Emh0GrbeT?FYj3tmwpS?!;W#iMg#4v#%5Lawq2fFyOvB^Tr%}q?=UJ+*F#BYAtfNG1Xr!XpY z3#tu7!^0NWwBQmgoSTNtJv&e)iVk#9%}Nuvx}jA^qDAuXF}c@WSX$E@M$9Z-UQ>tQ zULkx|+=;`N(^_P5LlZv5#~0G!i7l*Xu31^S#AE`_7A$Mz)hZgM1Z!)X%djzQ$J|XV zt*a|7EUjzQy78sI4&Q+nMN^wfmuOLUgKKYeUW0eg=kA5Bb`L$qF5{hfZqBRs-t>x_ zUA2`V!Z){8)Z9i~%2e=Mcz5B1aEqB;m%~}Jd-DJ9^}bWCtwoD!>KYeu*VLTs%uybv zHgkSMeN{>3IK!hesuH5CB zsbh?yP$`B|C-t)!ALZv`IjNTFlH>S#t%6_$YR!p|tmKoLJT}#JnEe2|4790+U{hIz zCs{=m_2o15@>qyMQd=awKqz~N1N-AvR5djO>&tZsh7zD7%E=B>f^t_2ElBeVDa*ln z3M~~Ks>N}or!^~k)-|@Q2t_H@3$Fu(6?F~EDs)Yfq6ur>Ar;;xp1T~jM*w!;vdoBb zneDDa)fsCl1Zyku)Uq0$63eNm)OJDaWnN1ZR#eqAW4#cypSC9evXEce+@dz@4b{21 z^{}#6Ub0afzDs>5BPg5v(iQAgbpo+G=Yvr-GYcPt9;hR*Kg2iE0lNKU{nb#%(OvE#;!A3G)?VRT9=m=P(8Pe~awY7|`~ zMk^v=aa6v|yFKg|kfXmx#q5CXy?3Wy9Bw{2Ki4>(F8v*Gf>p5Cd;dAMD zIT;PX`x}D$u9Y2beU%(P?eYA6fZTP%Jp`bV8xC}&#|M{olt@d11k7!Khoz=0E z(PAh_vq|{<|Igt|<~`2o(4uvRhC;`dYrpyV=+Ua`9JHLG-t!1g7)$4SuySB z``dD#?*8CZ);$$^({~T6$ozwfp|I`1mMKTO=RDb#yI=e6Z=1Tf`^E;Cg!!k4NtRL2 zK6Nqr6SnE+GAHu1c1@J8`{vuw-K6f{5CKk$sA8il*ZmZ?w)@6Ez;@j)+K2xj z58m7kC`%RMCvSVO|_Pm%)&v)NA8NM6#$8kGpr8iTbRau$h@SJuF?9RfN4wuObH9@p(>6V>eJ-=DI@V3Ebl-Rn z1U5Vy$8hXsJGSWVn+B*vGKVUR{VeL-vE=?rML+qvZ(0w)T!g9e(_&mhEOq~;|AbC5wsI@d6`-4`-coUR z0lUyGr9U5#4mi{~>i)N!C9v@-7<9t{`_q3wrJJ=*Di9T3F0wwE#;9(9D~YZ&x^^NA zFSJyc&o{%bmaYNt`*ax^IS72`V|@}!qCyk%Nc`tV5XB%o<2}Zob%%DqSKDgS{`K0xM_dOW9$jthQ|onHq}Bz<)mG~khF@db-OoR>kz`5uE_8NZTyu4eeho-2*Ll0 z1W7-nDI(zuBa<*tj1)6lADG_L@T(;W?n@pW)9uZ z)9SG_DzJ!w{rA;f+N5Hcs zSYMG|RZ)-C6U*Q%Z7QoyhdEkmf(X};FuW>Z`0SCgguOBzmvyhJOAg)Cm08JL+_E{j zxwav=w4y$_Nv}*v5gsFkk4Q>M8arIi^dwg{Gz?!pPTwAI-&+2Bc0?JL-n1M{xK=D` zv3wV(<@0_1$Y6bQO;tS#4vThMK7SXUoK^}`>^_?dA^Log%_y3dgpR_sn9kDy16>pr z!tei#(fT79A=mmQR=(jn?0~pc0=xJlN@f@4SWXKgj>yrDU>#H8_gB_7l(txY|6_1Q zM$DZytJrcj+w`*|+-xWAuoH;MIuxQ%sSyp8K#}N`lVQ$gf{9-HeWV*ZM zm1ND!oi=OHBFi7y-##6~P^`P4DV#kZfomXF1}f|c5b$FyX%lkx++r2FA&1)?yw!Bq0cRf>TMUJwsLwfw= zS74?K(|~-kP;NzzRvrO(u&G#)W9%L@0o+q+ORJi#$gxTw4n%$f*H?`kr-*n&Ig3mE zMvhl0=o8yi0R_vbbAr;*ADQLLKMt*wms4m(rrC6NL&8ZRXW3Z=MI}~oAq@!4c$?twW z9dngqR`+k|n5V=Fkg{|{=;RlKB_y&$rK3XvN0e9_BWvx8aY65DeU>rK*qI!W4!_bXc!Xe&OT9E-IT zf3F;k+KM{GG~$Ey2&AlA3vD}PcHzvd;@tUG&&V(A%kd;QwiPq`SarG>%`fsxH`(>s zSU0*Jn|4@{|I%rXtuMl}H9Q6>sKCO_Wme>2l~{jleb%xn)dr2nSIQ$0TR$0d&P%gu zF{)URN0gSB*w)E4ElPz_W<`Fj_}JL8CF(I`m_!;vU+eZosyMblUtR$i;9>_^;Xww?==q0Aa?zqCyi_52&?M@eAe#wXF_dHZhq8@T|8on8pp@i zDyH07vuEbcG>$2Sxmh`ut$n7H6izG7wS2CtC^vV8`#pGud z73UTf&c>*sQ;MsMh9>SXVnt;z>Uh3R6_fS?;0c5$`lAng3`f+m(%N8!6@5T=-YS=+ zEe&-wWw1>20X{EvN~mP?jwl$ax}|b(^82}Xqw-PLOS-~Xv6-iY(b;&) zuml%AR_yh2q0aALi2pqs@lTni*8n1wlHR-;=@WZTSDd5p;Ng5L_CDni{gB_XOAPvW=+eC+S(j*M#7mC}lRkZB1-HI|lRFPbVV_942XAdiRJu@9dK zM@$qSgXjeAn+WxBQCO^7&oswA!orKU;+e46N10|{z+c`F?rR2;(5baBinFv+qVG0XyVbR!&rFL(|elOVky$6?Y{|D$mO;g4M0KtC{Eg zs5)%t)3k_<+lsrE8$=gG=?Y`T?Ja_{*mW{5*F{6s{3xw?(fPp&RL8g*7eMOlsA_I9 z1huzvBjUwT?n?D>zhhC9TfIw=y!mli_u#QaR1O{(mbp(9o2|I)dqG-Jyo1n1V#VdW z1DEZ}am<&lby!sDF+ zJS0VhQazj%H_eBn_93q&CkHF7xaqw?_K(UgZEOiPRq$b}Q8Qx*`!jU=GN2xhAbdCDryQ|i_nyQ zJZZ(vnSc@-2lFxWHCWvpts$yLlj5gBKaLeTsjSMhun)AP^ea%>Yih?EylsS7ym&ycd7IH zsWx6kasPWDqKD&}Z4o$i=V4p@@ut(vnTx`jfql@v5)vmDLXCZp#dpd8rl0w-U!)h( zz$_&EALiZ#KC0^4A3tZ#00Rk30s#X?86mt05D1Sz0tv|^JQ9e3018MD5=e!RCNn%# z6|D$pq_!5VRjSrY)m9Ly_(E&7{J-C|&)IV(gYEC$`}^GA zKXB%(z4qE`uf6v3?6c2WDsfDgGj~z}{Np~Lx%2lRzd$(cBqt9(>g=bI$w**6B99;e z&`uNj4%px8kMk+33`DUcOp&fqxI3WvI$u#`LJD)|9Y~|{c-_upK#gG@k(L0Wfsf&5 zE@%dMLOzc#U<`Z*h$=T?B>1d#BQ65s8W&>l4M6PZ1HXQJxFKK+RYJLjEAwW)QX7Cc zbLSBxRx;ge%QWmTA|Zm;(-~Xiw(jh1<{FvI`ziNPT(=9O>v0TSF}mMoG#nLy-3-IL zpS{Yn!%GBb0hQFV!#6-z*MqFCGB6r|XD0M~!+hv8+G{N^18KthGH`cf$`}sB{V3WN zg)}U96g7s;1lG}$=&doPB$mQTanqcnGx zp{WdCxo!=R>}sg-;o;JT6$tX#7X`fFL(;9~<049T!HW#7Q=!BQUU7wzMo3fJpmO&O z>i~8vo|#D*%u%Q{TjRDA)!fllQoOFDK+CCSCyz=|9V10`j1((kq_9J_6g7?%!8j=b zI4w|GDr-foc>=$hZ|@AHF5H zR*@MVobMm_IFR(tjdX@Ld~!oaVX#gZfR8bdC%-?k3CvN9m0zDnXcE!xflKNHKRc&3 zbnFK>MP;8VWNE0L%&r)oh9YA`8XYV=;}P;Qdn193fCZ7E>x_}WJ)WV_@Muok+{ zz;JuQ1(bO?NXAIBFih4+*7B;g)6oD8ll7WaSG^j&!Y1Ro3$ToFUN4`)#;RWKTF;oN zYRH156L6V3UpfbF&n1IY$p9^4-n+625t^2I;RrA z3IgQ-xZ9Fb1YkRWjGy9(a29Iu4@kh8RMl*^26L)0EC3BK!fqeZ2ooicB)=(UCRSWC zk@e+ZlTicUE&#oI+5CKSjg0GnWF}b(>9jRO4gNEt_A}wP0R9A^+)233YYZHRW_6`P z_@Eoek=ViFXap!pwbc}BT5h^Aa1AJLvy&=O&Cw)BOC7u&ag-^8C-W)C)9vKQgP&CB z;kQmsoOpsj{KclTyPix)&CrJdm4kUyBo0kR#!f_WXgY_{W?2X80$`1d`+#Og8L3jC zv!Ja5|1t2LuxCzt=imkn8yTGtMHUx3EN&K3np7tG`wn`9p!)+&&MlfV$44V0(X5%+KUqRB2|pT%;7>m+j#heq%v&czq2Tg7;xd8KB&Fv?g!oAE;KwUO~c zH{*qhvAyhweZn!9RHA6P$kN=If{}FcVHA87P`6S3rHgvQnz<9qJB~Or|8xBEOW~tC0gOHuEO2x30E2!e?#Pa zM2@v1Wp49gK)#9tG6!2@Fc-M8NE!AZS+NVQ+aw$sR2!2wbA^MEp%=r<4vK#16bH`^7l1mm3*ZA(CRBbi|ek zB3A6{C<}CI49g>{vxwb?>2C^PRaK8#-5P?B?HRNN@DTK%PrFDjRz$`>MHAzn66GQYwX6IEVmrQDh zX*%O@>Tg-y26dvd^K&x(bH-I0El;4`^k6?Qgtno!t{&T2)i(7M>4EIP=NW=#fWVvg!4h zgh9T?ukmBdV$OI|=^{3ghW6mZuO3r5ZKH7|n*)435-i`jc;M;YF$w+GlWrs=Oa=;l zqL*R$CMHbkFdd5?uOD~<@aCO>C(e#`q~JOY1T)`2gYlhvn3gXg0qGJ<1iN%qOh7jQ z$r9kEu?O*q7l3*sFkLl$2jbyZ+sTylegwNI85m6Rno-utgF%{xB~SOB=Ahn8+@pht zkOJA5NM!5T1A!d$%3eKOY0p8f-J+~gLF6M*Z#zF*+&(>xLBO8N43ykyBTzi@9@IM^ z1%!8=XlCapK(BqXbde1s5T&1v&4KP6^HOh}D#Bh6P3XZ8)6XXCz?@;$vo9I9nv6pxwUJm{nxF$)qdl7^Vm!N`>4xggW6 zX)?)}H^`*=rzAkh-7$UVWr02oZ8V<%^PMUHax73Z%(Kv)9z*>Io1JbIMUpKN6-T9; z(wn84Ho~0JTQ!71y>p}qO?RWF_fW_gpfzUd7&KHTrep*rVyE>Ii6P2Or_#@gMS%It){$F~1(S z4GMH(XCYW2s4~X#YjIPa@r8g7lKi+ADBgNvvhx~vsME}&1mz@10fA-UagG3~En~;~ z8=SoOAo!T##+yxi%1wMs6E8&SOK>4;-rf^%4sU-^Sl*^%!DSkAE=P;t8Wvz@45jDb z0_bE*PWR!WvUq}0n1;;?LCF1YZ8yhTE<&P0n1r}B!%TIMPUcv#%*~p<873} z@?*_hh2uJJbb016!g;)xK|hw!uxS?o>fTj_HpwNwDG0|M7>E`Sr)a53Qgy=s` z+O^1_1s5uVw{BQ{nBtsD2%K0diqZV;)ila^y91YHtlPAUzypFW#kKlIL6z}#4XzluxMKEU;pOU-ztbo!9~WpCe(;ADW&b(nnHb~~ zd^s+s0XsC@RA9qpMGZwo<>6w5Ie&98)_9Bq7zR!AA6W6=Botr>W0)gGjBKc1HgYL< z;MFlKV`R9Yek5MHEL}CSX555v8SBPnWvs@Vp><J27H*dT17R4@S4jeV=fY2hBzpRVcABE2Gv{SXm~ZgH(MVKs`r7>uqZMb z8PK7|wX(HB6(@bf&%ev9?zFD#& zEPrd)S+`vEdT7dyV>e7{oPLHsI78;~rTTh?1?B6jaRYq)!ynuaFY|q^J2v@pR{Hi@ zJzw0OyXwJVQ?hHar}%z6sd38(vwbsjt;@GsRbV=)@edE?PD0ED)~p%dyLq~2Ko4uh zRvSp!T4}9cu;IpKzVVk`)Z}|(ORguU=Vv&n<{RP5x!>yi)aBOqL-2Kf%SFQ{*Z9`M zO?!_!t*1AQu(EP?Slv8>%&=8A!b(|i&4anWyw)?Ir*;0;`MI8f$&)ALKGHV%O;7(6 z--^At4O4QrH2vsYm#2M{DJbZ>*tDJ!U<& z>2*X~=e_RhZPoj_Tfg1t+xocYHXMoCVfL~9YTUPVvhUE!#4aW{qgHaF zM7f&IXCIOWE^H4fC+h18oY(piITg>qcukIHU_MF}qm3GCl_U6hIP6HzHyC z+;qOaA&v*d;FcXPmKm~NVb;*|H($pZc+I&yyeuSa8!j)CO`Uc48dlDBWg4YRYs1w` zmyxtyXvjobv$1>~KDAxCI@1A0O9n~=dGbSq{#tbTI_GWZ|I~YSqBB0>-W`_{4gj8p zi+BFj;mSnkaJ;y}1Fbc{RKAfpWb)5>RpihtrCVCyhf8eq4UiM>c$IAy_pfc@dz#*R z12+9;bTYn$ap>vww#atJoNm)NuUs6O(k{%jAfejM+o9vmV~&egd%D3kKQ1MochOCy z7w!_c;eN>W_zUg}Y}x<{$NloCcippl$KGT)j&|X6Ts)4$+3po*!GW(MhqEK+lxw>3 z25x1TQ8}ElIr~Nqt@5zD+~r7DEJb1?0E1Tseif9Zp-CE=s-fu`;<8hv;L<}u+W-y4 z)zNquzrzH2Q$r^JvC=!Df8wc8pkaWx8{5&S&=9SAjTGEQK-i~3><<9t14=P|0|Wb=T3LjTe>M7LB71LsgEu zHAJf}L8M4A+5oXbbTm!?nkl${YPv+9leUkB`T|mE2WwomhG?HfxEx9ZvWZ0+c7v#eh_b%K@nr+W@H)zXGIM#7RI(SA18bV!^RXd`wGIo zhz((P!G`$2sAA`7h*p&pu1-T6HS`A!y{n;*HS~>!I-_uk3#}O`h!27a+Nz=JHMCPh zKhx0T8akk%=b%8ve8tQ_zw!$sbP_2d~MS;_LHhB_uYv4wzCzVkG+5Rgi-N<&*Ubhm~c0i^QSr*Us;s3T@@6`P`=ei|C3 zp~-+$Zj~CkPRHJ%p*SX8#@(lJhcxsz4SlJh-gv#H($ZhGg7N{WJc=}Kj>av} zxD^^|1%$x?^^0MgFXJ)iVL-C^@$i=7jDj13B$i8gg&VAKT*)ci1dZd$LE#o@T&2cc zsd1Y%?mmrsNaGG`+-n;5mBxLeaRErG#_iF#`!wz~jXR=o@m6N}9Oi6w zAY1z{Y~M{I0PB?wHum0vU;vlUNYu^vt&73zL5L4WQJSZKIU0lcJurOWiPHQ97(U)a zF`og$2bm~_rUUrM62&9|!v~WnrXMhToQPt^1H*>~g>lgG|;dg#Q(M0G*BLBXjR2VxJYleQCQx9=8P*Q z3f^PWBnr)tXoL%T(5C4sG+!aaJ{U*pE%6OILz!g z%1XL4l_0m!+zuZsZ_Obn8rBFZE=_<;xMno zVg43}@wwWf%6)*w1nk<$io*osFbm=^JX)sy96ndZVQz@S+#QGEb4@ItLva`$ON*uX zBo33vPAq?vCxFoZzQsUw{w3yEHw|CmoVc9Xwqf^aY#Ze|3+)iaeR*L=xK0o+(Wip* zM#I8ifl49=bOqr$D{CiqoyN2=v1hbwWX!4d|5s{^9wV|1)$xEPj;L{;GlX~IvDgY6 z2y%T??=re*Cljs5CYxS+7GBe9|23=Wwe2`bP<@;dWzP!5j`1A4Oj%Vm`_k{ln02H? zuFw7BWfcQ%E_Av2CVq}%M!*$imkw=C4*4j1iBZFn^I`53JJa=Z*OcNAdksJN$-{?! zvAScc$Q!LSs;mg=%-n|ml;rkjKFWMSJ6WdJigkjhCRCDkS=dtlYep#3tT4YjYKYnr zRNPb#Lwj$4aP3R;UCGdN+Na}sEP5hMK5%m%LK8&nNi&6VohB1R?BOv%#hw2Wtoyu| zLR76rYgR|I1kwJymmtq_(o68Jb6xDY-*JvhNZTFR8aXa&RKWG8t?ErUyH&k0qsEWU z6#A%Dy%}rN{wCgG##z_Xh;{=vx#9P(N)8oCO zQU_{CY(>oNw1P4LwJshw|MtWfgKVpXpz=8=zzT+9FpT|29K z|G@I_AF+#BMRyjfdZ){=0bi?ldK`Z3tm-`pe6Kl*#`%?e+ga6{3;A9KU5?F<3oW5* zXI1ZcMD)AJ;iT?DcNVL9A6(p?F5aph&%XCqh}~*CUpxXL-%(S=ikO&aqa-kWz7Y>?+LcX<&^(Qou}Q*}*5o7v zvv=KWA_rHN2&9v8u%t|kPbn7j+9id3JeE@g6RU4xmUUL5o1`N;wy#nXg8!NQq2KiUf~-`APOy;ZoEHE9@AH+hW_Eg6A8J3f;8MDrtTJiPMSPgISP^lB?k~KN+zBG z;CPTtaE%9379QC0^>WDKZ~7FG)!VPi-}3c(ghQ8Y`T7>z!}Th&8pNKsp?dq4uVD)T zB0Y-mman^zqD)cb0CRjbG_d9C(ZcXyAt@qBh9dcvBr`ywf*&(DNeBPP;BW-d!IGRJ zWx0yvF3#rM0LTr0b2<_nKMf;XO23M8AEY||XCSw$@Me%6eIramOw& zDjAJYx|}!N|KJ-f6~|~-?#w*2$AIJ*s$^~)+oi{+I&D!x&aeTKkg`C|y744>n<_U4w=x>Yn(A%bpUMG7n@WV7sakIINr;*l znZuEb18T&U{X)uqya+j}`b55s%=aLyFv6T2TZ@W_j*l`PrA0RSS{G9gr+#4KFs6Q# zfQ#bF7aDF?&MQ!pqaZZDI6XAKKs^ReV#HpT6q#Q+X=+ONckXd4Qe4@J!9p5`hY@LfcdU-THK|cZ5WnQNo*=4@FA1`IQ7W1l6)oJbIA^fxC$bR;+kDj|w7gQ(h*TXR|Ijr+v@-*fSH0z31BNHRHhaI?`0hVpQSx!x znrz&!%uQD8iOhom%F>@B;!$O4vZdm_NX1Pp!G~yK^FHJdnUBTRL9Eo6WlVdh*rwY< z#Wu(UbCr;~W$|xXmn60Y50W}6bYVa2LlI6fIJWl^v)= z&(b&3(bLf!5BQsTZd|NVMv5vk-+C4yqb-jojxk$EB^>Vr9YOz*bE2ZAGummo|3XwR zL?x{fb+gGt-z_TV^+>U|b@3j|OSXl_@(IM0-V?z>lmbg1~`@ zBBeC!$)~EQSh4`}$&v>vCx0`H$exJ=??PulB^KEWw%c@LE%rv33z z7c8Gjup&DCds`n=swmUf^5&BZkT=GxV=tUObA~g~10b?H&GBCVuHKGjCI)El0foD{ z0{=a>`|E%|aS$Oocsq6#Lyx10qe$^h98@RSWEX(yxPggIR+z_6W9rf4<8C?_Z0o?0 zf`4rt_(Y)~HRf=FZ|e}Su_4ZZjyBplFfsoc4|+etBM6rHG&$)LrWkWm&c>MR9M&$z z-Q&5UT-#Vm=Fq(FZe|9{wkQ!B6}6<3AiNipAYwuMH}6BgYk5J$aMQ2@gN8-q8p7}w zo{FP+1$^$Ne9iluxKNEF0@V;&)qFa%vJFFvZK1raz`G9*X>A25c|f%lB=I#~TR~bS zh}#MRd~eZKkj^o)tzh_3xlK4Mx12gO^R|L%pnwW}3okh!8Qsln?D-BlIOXU-gVf$0r_ z!kT()%Pj~@7%?iarar(g>FQzd5r!^T!NSlKLrz5oaKf_&Nor~XFf)Kxk!EU|ASeH)}%yNE52kBrpbw=`kK%NqsTUtAkt_Pr>IG>d|FX^8O(sz+B%Xg z<$xTQo){Rle!zO68PGucsMrG%Jt`XPu)((vCD)#r+|gom$Az%BtksU=1UDxK70Z8O zz+Is+6%Z>2cH|0R3bCqwX{csxRY}#_Djck(ikupv5v{;#__qmMT800ib@09v7yuKm zAQ`aSElEI$Vv9OenGkW6As`!`XGtOXIrMX8SIjCLQCLzEBj?0GHJSlhMQ9D$%hKh6 z!YG|9i(qYdHH%U;-<^#ukt?zt?>TZ7Uf2K9y1J^RXkBYmODJ40VT7?<>aIZ=k1Io? z;~3}5g#TYzk9CPFHe_94d_C~rwj>+w#&(almC8hHd&{www+DteZz_HqTeC3b$`%BZ zbFenc=je_uv$FXl{I8ppwNwuOWwWyF?8A0)%m`ZPKNLY+=3*sIYzkTfDW!zPrl2*L zrSSN^%bcvw>%A@$L$26;vaJmYY+D=b#JzN}Ht4;crd>KIYlGe&aeW{GSR3^I>zTN|`P%G#g=Vyq1c#%*m- zB$csD?80=I!mJa+6l~Hz0CpwV&D-(7IhaTM%GzMZ1E(PwC|F8uZLs4310;#pQ0Nik z0CpuPH0om!Sk?1oUM+>BMP19g5JX8rAd`#zX?W*6ewi3WbKDl2ew}}O9THgH8}QrZ zUi^rL5@r(;fs)@qhN+z&&c%%D7o&rne<2awd2prkql-Z4^)GWiP3Zg>#pvjFEDm;l zoZ(J>$Kqh;Cn$)|?^qn{{3OF&Ko1*hoqxFqfkZ#2DJ9)g4Pc+-*A@pm?_~w17>Sgs z^V1YKYH=`XY7uXAFrz{@ou`{*8I7?G3wHk0Y(jy0s23OVt%b4**hy>}8(n%+r=9S| zW9sbLB}SJOEOI9WUna0vR_+p#Ca%mZcL_6%HnZHRq>Sc~jV@Pxgq$odxBM*cuK^>* zPO?`{ro4oZ&{1xODNpGz3a+8A50 zUB55~Njdln1J~^%k1KRREdERLe5{o%Z#sUxEUM*YyYM7>#R9i&U9#r*nm*d_$Q|Eg^Io21c;!C9=)ilyMMg*73t`{Z z=tO8Lo0d;-)8~}s&n=i{bY@5yQ|%%o>=g-wAjkB47!prppkmg{S+nQQGP*KQ7%Z4x znqPv?C=r;RX(R~+fMf-XHo7Yy%jh8_6O0svm|*l21laac7(nL`l8%x}$Z7Mv8K4RB zJ_P3E7X|an%kwWX&SkJb!D)mm<^;C&sU&yr@n;Cg9Wspo=zAR z(uMZ`252u`LIW8pnqCr|JH0e$>=S)YEtx&lcuqiQFPL9y?6(86%kzta#sODUuyD!j zsWXBFbB%+VCW?DraOCGuy&#x^BBMT4KcO`y6ZCd#I1RXa7c}2)p;jIz;~?QQl5R6P0cCmFdXsm9Cb8S4 zlY!~Z6@Rzt6{PPzm+)m*0`_*t!q(_kOW0@hnSrrkKEMPrNf2lVdW_*+gs|nM0ZH!( z&{$sb?88s2nNrAsq)FLCX4UCjUJgX^rlG!H@qZGV1!5!?t@Z z>|n2{rH2P)8oQiNpZ=ecz(<0m>(5GXF9{Ms0E?jT1F=Cp^)wj%J&Z_FDW`!yACmJ| ztF30$vKok#+Ab0oB}kWbn|XRic<>zKv}*RY0}#UsYOnj z$TCHab&gxqxk^-#0f~wh6o}(ze}#zP zi{kYs!~S^^m6|3sIA78aPLnEJAc5f&F;)QoMP>u?x4dsT(zz6w=D*DRhn8-&Te?~$ zol@i)3HX#E>m*<+^82hzDiCAY2#b*zecNBiTluGTT8&aVC|CE!hseo^kjwIxjbo6H|dhGX$7d8uZY|Fh<9&?TmQNxFUJ zUIda-3&VA*YL;Q3ac{TzpEKV?Y)b0c_5uC-&A%fuHML;P>Nl4Z%#!_dKypH`(H2@ApomkUTWmLWDYY=np~8~ zQs`1-mmojUrI6*#1=jM?vY9M^r~@GavX)3LqF7*+@=0`#1g=h;MN*?fLp>-OPVY#4 zuMSs62nSXF&+67gii0ou&z}M_l6L&%!y%*N(_)29VDw&k#m$);%f+mHy}QyW7+Qr zq-Uk#@q>>Xs%O3BS;WT=)wACAd>;Y3XZ=Y6zBGPmR^ zDrmNWyX9TyP*NI|2Pa#^>~>-(nu@W9oV`GtO*5{MXOv$(GAaES)+>B`Qu;Bizan7k z$0GrIs&l!e}~he9DQTIwc0k*Bm5us>pR`O3)ApkApDreu$QI z?s*{XN-&Xc@RQRs5KbnzGI>ir4y^cVmK({ z-6a122T<|Qr@h@I@8HXa34X`hP4W#4=U`)Ayxk<<$Y5Ugzaf|8oA_F$(C_wklYA>* z5lnOA#M@2s9o%m(@x$kaGQWCZVI<$hPt)hxL6&9rB(PfGzf|6P+TL!G z@97AtMSk1cP4b?d2v&B#f#Uo;0A(QE?FcML&c6iQ{jnbzB^N9K((t=JMoKPh0m|!F zmX73OspQ}tK>2Kx?dm4Eh{#00>wBr>Vxp4#uJ59frxBIn=LGL|b(1{(LEuw~SMMOu z`Hkcm2Z2oU+asmRp+xe`_Yf2C$9xTyTteRIe*4oE$JI@8Dba)d?r*!2XAw8t&vk;z z&q$t4)F^+9tDEF9BD4H_s8)39Ya%20LY|qK0QJ#{iS6npxt!X|fdJp->Lz)?X{a~P zAM5HS`66Nq{qe4Dk}qb=H2=SFb(6f1Bqi-gY?V1>TSS^NKXyaD%hgTtVv@`?&bPd5 z7kwCN1dt#{(k{^%Pp=B$>wU-&) zhj7G8@vlPTsaj4#qx(>nFBMWHBID$ROp*M+hZI6AfF(afRQ(WopU(D96UTg;?ek( z$zUb`^*kt$J!?}nu?$>i7R(`a!egz&<683Y@WGNpaJz(dlhXnWyzv=eFuCw=Qn9WLpN&OrN znq3k!i)6M0%}RoX+U5An&@ittsqKCUvdNg+OtMhXvLJ}U&F9&%Dk^&1Y+&Ag8072{=FWpG z0H<5?c8;3Jc;p`tYDUoqAz4xce-ed20qyr~5A5+jaxRBE_!p{}w;SJ+%|bT!e| z)m)`3C%7P^4sBG@JE%oOjgCQ83YB3_vNK&SB+>B7fwbQBF^a9UK3BB94wEm>Sno!$ zEffVv15GRIH^4muT&j(O-w|W%-+=r8$bnNluotFc5)p$$NuC{xa7$6Ond;e5i4dLh zj9miS9+@cQI6T!C&XL0>hPj-5f~E*)X2IM!b07?^Mco%I=lGoiit%zxMNzjPJi$(0 zO#TCm^-h;j=1Wg-`HI==XvC3{*%)pR69X+turdPJXc0mLq@olL6=d#be%K} z)9HHy??J*3RnZ*pO&(PJz+N37BXWbpw!Q8Ec&Nd6H@(4omUtM3&hn?WB^7pVq*Zovk0&BG-I^9lBUFvw5(i znI~+`OlZIxvoO59$lDVrN2yBQpFnzBRq_f2C7U9udYW?(yYIkUaQ1*F3aJZ)<}k1d z_&)LYtm}YhR~ez=*i{DZ25yQ&yQ9(=_y-^s+6dbL5Z#s}lDJDJ_BdI*@@SqHLC$b+8I{8)Cv!I$A(Vd!SkDD!DxSv-^X?GT!mk1fLcmW3eh28L!Z(S^ z^C!%ck9=915q|@EOg7?CI>XE}vTgy6eSM*gLmLy#D*rL0_&F#Z1;r+t!rGCjJc22g zVr-PzkAOyv=Hdhj7}{QZ2dS73{ma=*A)S}wh%;Qf9;(bEGEVbw_r1^`ro9o)IDNz! zr-#WTa>R57>E({Its^Ff7mU)wL{*9vbXACDtE^B_EpN&?#Hae+ThjM9W)4?=w{Vhq z^-}2MZIchEbdfhaR9}O&tP}AkiP$a?ZVz7Xm^`)?z%^Vc{69@<{B|I6Wd(Lr`t&CV z2T^k4&EcS|hw>)AC7-Kp~hcINYsDMhzDcUZ zZtx|>z&emDR?$8+DAEPiz#jm;TA{g!$@(xsb%1M$|B&+o{D!D zoSs%zD75&d8@K_8AK3^|TOxA@*CghNdx{m_$$P35zK8cTbF?w`PNbsdv-zEk9y$21 zjK6HUBw{S6A^9Grih58p#(sqU&}}s8?+gI;-Y-@DhFM}{(dH=ACTB=`CmpKtLc|PK zSlcZd-6EE30~%xdBo*UBZH}cC(kx^!_7ecJnbUAc#F;g0r|)3#BQTLm{3~`yMht5#aBS6C&#;KvN9|8O8R)FGY;3L|Z#=IcN@AMphos8<5M# zHX{@xdx2Y#CrM_M+S3sCDwblX9c?-*;+XvibApGTfy_h-bLTvaFta$!5LHRkM9XXsoBJEx}wyrgc*mdd0t5u9V2Tj@P7tAUE#4DQi{CD#^-4KUZLM;gH_}9c#lvc?-(V49r0s(>qxF>}W#W z*&g19Ck05rPmW>;+z-VW7YYqOIf|jNpP%(}_=szTF8w>`+$=}FDx?9BR@m(U=f)k6 zVe>p4B-+5=yjc4z-c{yqbWL?id_Lm}tMJlI8Bgg^%%yq)_cx6NjLR3F@K|H2_>M=| zwEj#Q{@^KCO{$F(xH@aiR0;jqAskxmqs;r9&~lBfXe+?cMH_25 z#`}@X#;o21E--{pw!1D?0^`vj81>WDVF+{P@MP1d?6HZwW|=CHw??w(N#$r+Pf1fE__;9+4UUz|moo?|#qbG%9*U@W9E+uN_{ znZ-B}tsvfCS59T#lVNr}~i<5_K{<5{gl75m1isnlcX2s>x`=ED-l%@)g= zXtA6|Tox4-lXRRfwsOZ8+Z-1sY5jAFpmH2Ha23&_DQ|7_v==qBN#$5=zDB_(n?fyc zqZ~JF7ipw)6h(P4RBSAaci^^26Wfm7K(-s#%eY(~pf;h;e2xqLj=tgzgEYVnxcyXt zAeTSxbe$1Y8E^TR7C^|`R9wo{8lf*GqKvmLm=Hk2+Y$lG;+d6`nZu!cSCm7!!-1^J zcSV_$J4_nElTXHU62<#|l}B&1@L{;%d1@SPbb|)461O!93FFWzV40$1A4Z&2V7+}>AUZ#$g2_X{P5`8Bvbj0a1id4C2MypZv>7<`H5 zeTC$q%fLJyw)5cqWnA#awS5zFdDjULP+4Y5mSd2YQ1N*y*9lO9dvP%<-dSe)8RR|H z7J>IHfirjU?uh1;`D@72-^unC02InJF650mfd2S&NbeK?d82PLkFnNAQKsSonvAF6 z5)lc^ltAdZO$4ZPpRwc0&ZqkL*3&|U{4wKI!gU^RN+&zKPMOdsSd8vS3y?Qeq8(ml zR;19psRHdlM^JzChny;6&EZY?POI~Zf@Vk+&Ebt7bims7oaDG=Z zDd&yMV>HBgRxt|i-9>;IA~Ppn!8`L6OQ6LlbmGYPI)?Yxa z3T_Jwz=JQ-^Ijrw<}ThZ#03TN#%E)+bl%S3Vn61+GajUwk`LPa=$o)pU8MaM7lh?a zCEMY|8tiJAY4E2zhp-S7emG?O8rN@eaRA$g%Yd*f4%?^m#|D2FuEQuTE8l52PCU~w z&e5HN=Z?y5T=(F5+{KSu9lyr)GA^gMOHi~Gb`hQQZn{L2&-p9EJmoRYgpQ?*5=@uJDC@VQb2rp~<^ELwZ>!@bUZBDHA9A_C8=ebXBN_^?UQvQ0}hA zs@x+hj)Zv&AIY6=?cEgGVI|(@`@olLt$S)OoDiO$V^!a0^;ux8S>Va<<7@Ja?)AXL zDOU4UuU}Rb_KZ%k2Hxix(i7x!7g!0t_jg&L8NU2o*5wPV^L#nG=Hj1~u)vev%i7=z z?Xp%^@49T4)lj{wc9*rqtlnN|ZK%F{{MvP4-^CAKZFSpf)#q6L5gEDP^Njb`{P@bN zS6FkmzEPFy%WSj;J!M^-V+|Z(g+jSi_g|mu$?Lt>x(2Qiw_BZato7AbS{ri0m-{ZB zX$`&4+OQQa4VQ2I{2AY_3rB7l>HFMDo?%sQedGGvy_0gSHJ@4od<*u{!(esE%+E4L zj@?u~#Rx6xiCFEG)&>Pke z-w12of*pS^ePGuc);dpr(@GBkVU62rts61(!F|?~o8W5^i5so-*CB=Vt4%YkNjX{8 z6DJ!UJgVQgX)Evf{PE4v;5I@N`GX4fn%Vq8Ie8P(4TOgB zXT3zN6)skn84Mk|+ILaLNb4QrzKiBtm*N$b*JCwpdY|`k5?JqBz-Xxwmd4}<4okTS-Cy&*YIe88>`}%L1;>qsS=-XlS^Ncp{Z^#ASYrSPGu;%y{ zSkJ+^<9k;hxk9dW#k{NkF6P2LbbJaf%3W; z4#V%}<}0gxy{x5ADaJ^7yZ273Hpl8d!usNh98WilqwbGi?444hzN!HhxQ$hH>#En= z$N!gWpN+;@QcP7RD9V-XZvz{95he?sCP-*cO)!8 zEXVs$_IWwU^PT=Cv0=(@3h_1>7Kj?w)Empx`41j1(5dk$%rZENELyd6MS~G_ONq27 zZ3CC=j<>g4FTyLd5WwF}9V?LL=4hGKTYep?vT6@6FIZhQUOs^y~%q_nk3=^Q7Q zimm#tQSDLN)nMo6s7-{^#j+1F!tEvPUHngdUh1_uhRq4M9KVSn+h=3|IR53~nu^Pb zhyTgTZTFK#I`I74jw=tBLnFQy!%^3Z&U)Z5XfU4}0bKk$it7isoOIyr*=jQ{1fGA+ zIUa|`@t1i;jK9q3F(J?HsDH?SaEYE|0iQ-suv?nv+AiIE`3Jhe3#FW6Az3BXPCVby zKCeTu+zVa70<48}dIQhLJO$A{{R~%v`~*)+Oc3cuF?0MmX9$q~8c%+=#H+3RZb^;a z0!X{0TT;=1Zi)FXK>&1nhNU7k2>e!{A=;P54d`g7i< zg}V7FChAT_E%U2>k*z?OBFkfesqUNQnI{=#9TTM%U38 zqH%c5WaIWhsaXi67%u`EE6{O3;{;lWxqrMszXGJVe5s*-0OIE#@WY99hKlV9NZ|q+ zHvkX|lVW6OT$ZNG29zza%XREZ9ecILU8`|F)42OJ?n#Y%TH|QzPD%BW#vRqr$2#_N zKuW%^HLg1F{yYN$ffE!K3) zb?o;wv_aEt(R5eq*j5eQs_E|3xSs=3qs8MIdPYMBHT05(Ue(YaHFQ)%A864*ja3vTYYTT!Qh6wHxjDN!f`bI;vL8)-#HMB=V&uM5fvQu=w zNB>aJI~w{>L*39*RBRs&4b;$R4K-@$F%9k4&?g$=#*yN8VS)o)qM?U1^eYX$t)XKY z+60{rlafa?^sI(n($E_kn(lW}%+t^^4b^FAqlP}$keTG9&DYQ@4c(xjT^gb%5GCI) zHS~gpreShau@xG6OhfxM^g9i`t)Ye8owO@86xPs>G&Hn_LpNDNjhN|GzS}kQBMtpr zLr-YvpoY5OYh0D~91Xprp+BMXs#yB8RM3|i@}@etWDT9Kq0t)pRzqESJ1Nf5P`ZXP zH8fd6Gc~k8L-b3jWa)wKuAuWZ)L%m*H1tyqjm0WjrI@Or56^dS^Ks5z#on!=FXa6J5=xby;~(xz+NI8C=s$6gIcmG>qMJ*=Up0Vzp;4@mJlp`l)b9NY*EO#!6j z3u;`AhSuuX9U6BRASJ=G8hTqpe+8r@H~~mWU=4Plb2T(lLwOonq@mRsx*U*_??#O~ z3P?%tk;a*r(p0`30jYd1(71sbH&H{2G_+YmH)!Z34ZR6S<#t>{2}2!RhK42pQW9LK zq3>yEtA=jW&~1Pe=esp-4_UP4Sl0yJAkc{rJIKOYA79$ z;#aJpOEgrgp-q64?jss^o5tOvaeDwMnfC)y`M#u~!#ehl8uzY-PG~4?xFc1bhURN% zrH1a*(7hUZ6p)hiX^neJL+@+oD-CteaB>@>p&ShbH8e{@m4H+pYc+0@hIZ)KTQ%+h z4Lz%4pVzq8HSTSVJEfs-b!^56N76hE6#`NkFVVQI8v2ojc5Ax(HS{zK z#yt#3mF?Gn)W~{5L;g_?j?Tzb?4=so0tgd6M)Z#O#k7n*n1o+dwxJ#e!Xm=}OT==c zOvO&nI6lcL+#-#u)VL;%+oo|hY20lZ_oT)>t#Nq2XXon$r1D7DxWO8?T;o=1+&vn% zN8^rY+}j#A4W(3NE79ex)HwRARr#LXL$v!%&N9f2SC#V1SCaww^R)x*ZV`k7UcQi3 zmtp)I5D)G~G5dkZ!zFxhH;g~v+KwxV`4FMQF&O4}GzN1HFx)nbrlR2;9`K1`a)AjT zRW$dR!0<1M;pb=E5{#x=O&T4GTBq{qTIkqyVQbAr&&TVed)#Wo*Q5cpsbahAU-o2IMK+=dWL zceMMfw`q7&V3Um@p#tyJn1GGBKMwOu97c}wOKwi8cjIV2i^Fu(HSMJ89f#pQsrqwh zf^nFO;xKFCFimloopG4^;xGr|Fh^oA+(Z4}cN1)XJP`Zo_>!1U9n`xk*VhLz(QdrW z%=N)I%p}rh!;+ZqzcsSGtqv!`{js&i#eG7(#PuEU67})!h_R!`z^N!hYw8&ooozS_ z@RCcto5JfWjdXn;3P;fTYsoy=*>}>pJ_d{_xbxXYEK*6Swo7ACRl{X4i#A^lJLEy7e8E?Z3R6e?CFuHcL|K`S{aQqD?(aezg#P$L z5V2o)2rBj~j(_KsH_jh$yU#a-W!#4sf^Gkyg&@!JiG|=@A5=&<{sRg@xBqBDBV#|3 z=t70U#m&;Xnh|S81_A-?JvjU9-h;=DA3bUm=mLSL_uxmrFpTfZkQVPf_!O3eX&5Jm zzpTc*S8xm92(Ej!WlSnA+CrK4Iz#GYR-O^>Js9lb{x*}Y-Zg!LVl&3Ebnv^%=Es>Y z&!~*^9(>hCoWtseGgmepNBO+7cn|&vb6vl?VzU;ycHV=xV1F;^r)Qzd%8Wq<5ZdvS zVf^?rg+{h2-?4mm68#&6ay$$=_n+k3&U^4iO#gp=2It9aew=oNuATSbSy&}q^1Pdy zO?MXW!S@|%PZ#e!crN%I0o^`3-_erqsHvIz_WKOF;j+CSo+X^-j)yl;`0Gl9FVME& zSIjn20FRD7xb7Pef!DOJ=+6uew9b^n?H91?{fuAyO(ZYie=zvfp#z!w#AUGdCKly) zjNFi-3sSV@rBN}vAv92-Kx@TUk%jPPDLK-^r|rP(%wc+OD@YZd;!RBP)82wp;qx~w z!ljAPd??hN9_(Hb{%pr|tQN^jYu*>`EDWdy0>>F=d(#3x<)DlSAWDXEc*iBD6fL0AI`?z`EXk*XJIv1bh5T^)$xA2UCX3#+ycEGGYyt5!nIZ-qOZIKOqR z(ehcuiZo~kYAtED8_Lt+zqEB=YW^wD$s#tLsYU4c77otvh3lEt1zsmj<5y-lNxAdd z?{&(DNRpC^R6zT9#g4vp`Rryi?$e@x67E{b>2aoZyl1w;e`@3VU!7U^4OBP3YtyY9(JKi+KD`q*gb-h`Zi=~(lIDf zfbO=Y-ehd>B>aF2jS>zHB{5L=w>^l+#*L>;|4sWEHzt|>CO#yq9>V6q5PbBt1>XmN zrgYS9KVu?Sc>PawtOkpwolH@YSe@+&&ulr|^680=+pDvE;VF&#(U7{JIl(0<8`1i{Eeg$B7-0(nJUWSG~u2z&j$!f`Ul5 zXK#il<7f!_RxX0~CmJoeY(*z-i3Af*Y_SKHsJ>-`&Cr{$GT(xuXf!LjY}U;J zok08FRJ~{Y4AmZN57Mq?f#${eBaJ@Czlv0xJoaOFdX2yjv@?>5#@+gFJYZ%oKDMqE zS;p3bIBIsr^UQrMe*x=bpP>VA%fdKz9FRSVQ`dTE=L~k}K)n8_Jj^({M`F|&2u4gx ze(1jJ#kxz|IIyp+IDO*oi^-Zoo#Hbqd=NbW#D|lD^GyOC%K>Rnn9_ z995p`%v%ypso<76O5)NEqfl)Hfl6$x!CxgUZ?qK*4`AunR*(~5>6D{NOiwMR&^iyG zJwWhuBo-xTJdksM%sd^7=6u`|{M<%If}evf1Uim?LV4mR+fjrF+_s`$PiVX{J;@B6 zSD!<`6CTW>N|F9eg`oc&^uZCctRK#n$RVISTwlSedJ;SsAXk9A-~ zdN6t_<^~<YwxJVMDxD9T|v zHbhy{z}4!b0~w(FYW)@|z`{-W?-jBAPs~h2TK4!e<*Ijvdg1%K3IgN{yG7W)tjb=YgFwaj1UmvmV{ilD6<;jvt14)HC2 zieiFIYsIlhUXplEmtvr1L`m?foyh5w%RnmWLQEj3*!pboh1R0{7b=k_$A}Deq282> zezecf!@6D-iNGmN>9oV~0<1x$Oeg+Kii(pWi_R1JLFI>UJU)lse+w#4?2YPoe#`IX zNgFBjKauCdnxidvgk`b|iLC6=&Rz_)1&^xe_tj05qBK+bcFPOk-ZBBp4>%Bp3ZxO? z?&Eeg8*2)u1};aS1{ogsB!bz$b>p$f%*vL0mibCsQvs3MzipzBsCZ1C(>&W|c8N^$ zw#-DpSKat`%inYd>Jt#A;h!t$pZ=y|EM79toWT70&(I(du;m3V%|1rI%tM@#S*gWvQde-pnF1{8QUuo*KQ73B|pb-V;*)vp|5 zsomv$ya44zBbZYu<$SKS^k~b}fRe?oH7^?)Yt0e692tn%M_bCUO4VYw?1$j+s{X3K zp=@?Nia zX`Zo^{^qH&U^^!2u(dZ5sN)kUBV>S#9C~6Jv5n6`NtNv9M~PE4vU3!sN4Db|g}fax4MMGH2A3 z^xxi2xycxrv^NDRRT@ zw%+*uP9$@3LeWScgL9t$Wqv7%Y{U-5Yb0td&S?oAjucn6E~#u;{9>eTaAZMxB*>>e zRa!hbbU+5^ug!dsgQtxjFdUg(_!LX=B&BaY{eu;@?cA;b*nP1s_=$E3=!sj4%OT|8sJW{a_16<2gw<;s02emd` zvpKZs-^LeL$O!A{(j&*p|9<97<5y?=O`YwM%nuAeXEV0E%irw%{-(`{@IPMqa&=4i z=(f^#0sd}V>3fliqc+LmaEI(A-q7qwah9XYNO2)DYU0v1Qk;g`OF?P-;hyAwqBwwi zVx-uM8%CSrF1SN^#hjC+I4#9ln7}teag&Nm{MU>YCY*;^i&(3)mcFJY5&sjjqe~Tx z_*`lgsd;}%OvOUSYTj4RWis#E!wl75H~9D`=)3O56bZiOv@vN#O>3*4v7+sG{ThfhN01@id1UYa@RzzHvg~mmp_tK z`~I@*^Z)z(M#9H+x=yyU6Q!|au^Z+2mNJ^yT2?cm?eA>wjy3j&?M5 zS=n#lhQVC)FDNCFmjYF{1fO(fp6kCwPm;d&o7Un=j{P9Q^n^(&_?u|0_?za~GZQ}y zVx=(ruX|iJDgHY%)UPotVTO8%qNo|FBU!n6+`dTg;IU6m{i`1Lv^_&TeU=$&-*?VX zJdC1esE1JZGDFRm7VeA0^|+4^fgbnk=nVDJ*=DG-^tcjX`QPku9P6D~N{t559*378 zc;Gt>3Zr!~`kpL7++7e|@-WKJ*_;b6E-no0iX~zlq@GeRq1n%~Q#pE9LQ>UH8)BLS zCN{Pw{jBZkPK_I1GyKhuu+OoFrGAY*bPqx?y+rk=Utwg9{bxzU_DcM1E=->>OA)#Qcemc`DbH4^97{$VTV+Dc<@Q5?Ym@? z{O$R$BT`1^!>>f*xc;~RMDYVg6KB_GH=Tk|B>WosRMYPW7FYTotiz+vkxAjCme2gN z7bm@PY{)z5COQOn-2F|vQDN*MN>DCDRA)YY)hH}J%p;pOzGPqm^*8g0#3>CoENntF zX}+nrMrGFW4qjJqbAgY?F^{QDRiIEczdWYq{Y^^a-%YZ;2PCQQX6*xMhAm+oO)x85y00>VYt$%0gSz}xkVY7<4S@8 zOn|ke{5kn$(*q6Ry1F&>p#WXO)!-ZRfI9Zj5SUj3tKfk(^?_CJjaYA!PYe{SiGH0u zcu1gnY0WAaUd5lyuV9Tj0OEM`99&wej-EJ&W!BUWF_s!@At8=^K)O}(p=|zI9DFEU zt-dyg7t4D1RjjIq2sO(Z<{SBI%d6n)^}7h1yq7Jl9TW;6rMOxNh;fPl9Qf3&se#wd zsEmqkc@=Vi58$c*oUR1y&%|{(;%RDYR)<#yVBorDSyiA8!mV+aThT|4y4bldTUAr_ zFZ0G{>hNJCe)uz*-n1)sD}oS!@p-y2Vr)P(u81#ThnUItD_!v3f9ABoNEZ6t#XZ-B)tN6 z;P?4}$9>j-Mfarr=eM&q2UfgNw5RMSj!ha^m*FqT*vx~e6Mp!8wsUuQ`7`&wc>V`> zO}pov)J55get*t4_uceqQD$S|z0cnN_PzTn-z~ZSmuX+WHM->C_4~hAd9U@zwp)*$ zd(+C6yymO#7`kfU#m^u5Xvc<@tC~w2x38+pIa#^y)#dYkmU7G3+4mN`)B5 z_0H2H|8ix~4{{IAzhOrWPGEoc-{l(}D?eVdcveNAAdod8d&H=~=uw$tMvWbl85mr( zo-JrK+Q!mVLjoDASFc`=-!aQ;*Q~?6p`i-Db@f$f8ueAnGf>6LF3Y%-N2lN%J9ji9 zL*d%0+!a-|;Ia(CrS;2J=GK8-O&ICc1Tt0xGG>o4%n>6-HqKfh zKgzxYzN+H-f9{fS$@)U>3lEGMSp+FNhzJRgyd)6FMivNeF(d&ZA&FUtSQU#ETv|0+ zwZ9fYt=86+s&zrFR_j*Vy0z}DT9<08t;MCaTK#{&XYSnhg4Xu`KA-#UnX}EAnKN@| zyK~iyMmSa9jK0q9fsO55GkW!D5#-@Dd)n;jGp8Rh4F}5fwzkh$*WEqsr1|qC;eQJ@ z#n@JAE9$Fq=)%o7%H!)6H~iY}h=H!Yj`dw|2i88@P2tTMBs1A=v8IsC9?`df?a%(q zo!wpQwV;ZQsV(~X#2_fq_)Hr6kz zscTTq0kp<-IX|4*7++Rgrgt-hQswkhV``}m3^2;n^2(ZG#I<<>d>?0!tix$JIQHEgjiBr91BdH=CjV)`@B_M9 z`1Hj(xT>ZCdcSe8uxtQsL~2Df^lcZL8U@}VnQx^ASuZKK?G&BKEP+(=&6%yRo=uY& znm1Ru6YqdN+tV5O#oW|c*Ie6Br`-9HmRhkU<$79^DjAk?FAFABXK2cOd^n{_hNt{| z37J-Ft_R18{ZUkC7l*3gG&+Jv?dp1HPkD5l4#jow*OP^h=U9V9IG(B%6knEg-I3&8 zR$N_*CtJ!tX^gY1uB^VXvO%TT7O75U9NCs~u*FPuXplDQ2#eijM|?tK=3C4J*ZrR8 zzYhN+y_7QRT>xn#z?)JoI#k+cNN37Y(e9F`!pcD_rg@ep^Q;JX(wi%b>z0-^BeTnv zmenaQrPL~eNXDbkojIUVDkYYz2;xtvvSls+dfa{)(|LkQI)%6X<)$y|CX5~6h z-3MG`pi91s=sd-mM29jw%6W=k19RP-_)lF{Ra4psM{}O0RBm&5MP*q-MOB&doQQQ8 zR-OH}!OHGIB)Yu;jk|JkbfyEntYiI#1b$SI|4yjE$+g~;i2B6^=OCk9cNP9q2T*J0 zqs1ICK^hkZXU${yP{}xk=gek!GAne{^}h9eSdzz9zPz}yzAS(n>Ke)o)S}8bxl=S zl?jyBl@*sNOH;~M*Hxfxw1ZH6S=kEZNT9L0zOl9z&2L$$as^XaT;EVuS672}KwB!i zndJjUBNsF3F^iBr=?mKt?^uEdxM>f31Az#>88XnW(jEv3kg05uJ-Nu4v-QDuTs-{0HbvPos` zv;GX(17(Y^hy;W&<4`PF2aFhrY$iB{hpS{y7>#f~!428pn2x;_5qy0o`^-C_LPg}0 zrrBpPkB||8=^A-1k@=C}JEz&_?ZXgkZY2E9Y4#8ce}2S#=QR65h6|B7QlGOgVsObp zzknUt-(j^VjU<2PH2YGP)UsrpeCIU#drWg>BD_`>}y#RZ7RPOnb4G7%+pyT!{0{8 zj`O%y6-nBNpIyomN!*AYD#`Bo?6M1i@&Z)wsnhIoA~PaM+x)Ya5*3Lgy`+%6j3_^X zZSTWAb(&pq4e&AI6K@V=FTWee{7C!@?;~WdcoCF>$gp=EvMZ^3LS(;Bon}`NJvoy6 zrbBi$aZ@8npE}L1A!=r1*r!gjYl)m2`NGHTvRCp;J@b)$i6NNEmJ@~xVZeX-)M<7T zE8~*L@K2p)uOYTH^2JY`W*NNXkvQ+NJ5@eaqOO<^Ld1@oY|M^p=*~gNl zK^^S6^os(9`1)B){^&Td%?uKc1}Fp7%XLoy#(PH)bpS^*vqS*29e_oP6fCs>`CTGe z2UxI%^9IAoGEIsvhzi^C)EK&K_HnGpu6q>ZU6&^&yDra(cHK__XR|H&!dFkHMh<2j zIEV>|9CFNZs5$5a!sGr?1Ib7*UXF~vypA5N$F3?eVMT*(*7WC4BNG=l(ve%WBL=NQ zEoS5}CaWNVV>MfFzFxB) z-#5$1s-?f9yGuo;kYfTkIQDMt?C$GVk*`tDWF*x^YVz4-jbz`*LuDfJDb?&fEF1-y zzE+j}69(J}4N=)QSAxp}WfP9nYwqsq+@iAOk&vN_ryS%M|DgO;%DGfKhEZhS`ZvUe zOolynhAX}FpyhVmlc<(m>(rXcGU;jOToH7vfndiu=gOVnaotn#&)$tVho(-q57noNDWBjNS8e7(LwDx|(=% zeOcWq^mDEK(7K~uht5F2URe__t~A`P!46Zx{)i#el~vU=lo|erK?nSSb_f(03Wfr- zq;!_LFEr8MW~cUDR$h!D5hB9?q^SW?q1naphKg0i$W(M9ODY;n-kzRFM9493?r@F* z<&;8F<(y#CQ$~6@{dNpT-1wE zR9cC@OcDeBZ`;?BAJz@ocTrDeH#)UB7Y6oKb+j>fkpx{e&da&LewKQuEVHtkwq0z? zz$X{xmzKrx)#UAVHjd~?I~b#poE=*Kc-m+qxzu*P);6B;dB~-*ctsToKj%_W?Yfk9 zN~BU=X6srxk*HP0brr?c4b3vYkh9z77@Dz?wWPA91X*{Dy_HcPf;8p)C`dyOhgmA; z$MziXyIQlb=Ui)7fm>8)@muWsL-AXUcu8mXTCL)zp$f9++-6@8h{r1{YEjt5DkJAk zJCY;516{G5N;-H6S{*OJl8%K60RNKW}Z418*HNFPxSnw;7)C|Xel=lQpN zBm~Crjo?vv=K;(o=#J{U2Jk_AwSH9pG?`9!-7`qO8WCrVTKfl*w*wxvZUo5(U4p++ z8}k9X2Q4GqMc7jXr^1>40qz(z#soSRt)lWiMc8$1a`D3s7!d=jkm#q|xwPm60pE2FF|s6LObzf-r%goBLtLj*#o4 zjAEXkpvG`HFSqJKauIZM56QYA3;wz!(ZLo(GQy+P3H$?B7S{)`$m=fMEao! z`3Uvbb5xf5O!^WaVt%~4XG=r3%6%cd1L6F%k6EU#rk{a80TgqIL*>4a{#}G8pqXmj zSl7OuU69ZtKgaGqhH;HI6qFe;3{*qw=z*N7JZVp zqLhIZ?_@HCjH17eNP0LEsAZ(LNiU9Fg+K7zXLy)u&9fFsi6!&AZg`j%nujx2G5SgD zLqO2OeZLZyWRKWK&jDqsp)jMgbVwFyqoUj}G7~i;V}OcoLt%Cb1<11vlKH9G8DmWT z0>NE|=f#jmpn%MJ;JWu4rcXj9LZHx2*ZmU$6X{>MpQT?T5+hI?uFJYSfr}aWxld)B z2bA`^XELr~#nyiJV#eL%)qeK}33xu=*HyWH%y677}i(g5)QMkr(^fJk}(qtY@`u#yRZ2i$LXXh4Do(r+3H zZ80i&qKl|J%phZgz)q7~H;TYS=1T4d83zmIa9}WKL2fzq)g>zTn9MbT;lpx52RN7I z-kN#;Sd)KuWWESE$iI6s-$NkCzxyQM`FdH>G_t?QdvF2a+2u8amUXukfHc`UF~{ZcHY^>%Lw2rAdg8U%hOq&dO}(J5J%06mv&jfoe{ zD)gjf{St)vB*Z&g`hdyFdL5WTX_gYrWi-pdV_-?ph>Xn|hft|5EM{qJDYAW-&oI-) zXPC)CMnSzwBz=b2s%5T3N$J`yRbKvrD)N!xW`-wmOGEPo?g?NL-6s#{PB02YDlDPB zm?1VYQcRKtu}2_buVT8A1-Ba!mZUaH$b6{Bgqy<9eWzh$*(O<^h=p=s{G(xHxhFJ& zk`9CL!kpD*&C$(&xTBo(qw5t0`f>;C$b{v7GyO`nN0@9({uSh zgS}(8Ps=}`7T5^{UH|aZjR;6j$e)*b%QRS_#^8hS%AdHITm)VJk`Y58*QF!)@mFwt ziU*fJWhc1^y8iRt?IG6-Ue8?N`iQz_+)plouK(@y--lf1rT^jx;kpL@{@l07MbP!z zvK$;KsqJddN?S;-Z1$dt%gc)E>WbHt@E{O$h;}XkU!*mx?EYnJSXHF6Qr32rze|sk zQumYecQXRlJx2b^5OWSS_2QECk^Q1WyY%W`K#R1Nc5LcX{vTxk6j@i^j)VEpEmHn# z#MqJ6wFy&Rrzx0#kv^C5-(V24%$ubL@4xvPN+2WByS}d_F!fJs83X3ZO(K>577gMm zT>|xXHjYDZU0P!XH_CUciNLad8H{((=(^St;Ko;tW9E(Y{3EO`g#8}u{Alg&ZBzby zizWaAL`B!SZsi{-EH2cukj8m_y7kT>7_)VDu4?I2eugZgW$Hkt%wA-!6-t)H5oBhE z1hOqIBxbJb?3ZA~;%aPW+gdG`W6>2exnLsXQPzA6TQd7(Ndn)&lUH;7RRfZ zZRm+AKPs~#nQPIA3o*~)057u#-)WKXXp8;rtTBkpk6A3(%$}Cs-WCjb##qd>%pPs* zSc`+Y%pPs+0ahymPpJ2^KIq?B5T0Ri^$cdWYt1vQgC)~-XqLr=V-$goXtu>SP!QCr=UD98FsQ?GEuLD0 zd=GRVZn@)-*a9Yep0xlYnhbg@ypJB?x|{^Vz#b@cXXKx@jg0uI7M&*ECYo%S;ZMoPd{gs@g&MOOJG z7GriWKU9mQ8~>Z)^bQv0O3LbpIMX@}D!4#iE~9RLyR1WUI*;KM6=dNBW+F%8=U^UbZf?V9LD=&^?eKf$(km82;GOX@tZSk5omiX#bN)Rrt ztSGKmsX?f*x}v69jR-PpM%<7ka960z~eKvoye|4H$%L7{%OPttk|yYGKr zwE7Y!n@#2KwDJ&-@`GmfGVxr`?_DoVB%0Y>78}V7D0~nKB`I3j_ap_3p|-fLxQfWK zCN$fZTOH8ox9TsC_*aPc!?>2-QawKnx5qN4f2BACa;LI3S%H6*wH5NNI|={8v?IA! zTMtur4{B)3CT3LoNy`7BM5z41T4MDFS^R4xA(%%Bbu0fz)|r9Miqgs;1NT~46XDJ8 zGY{^vp0ar#1UXQ1w^3sx{ClkDp#&}Ulh$%bW_Gl7>JocOG_eKLrYZkvu~rgMR#_%F zq$2*~)&S&m87Th=o&Vzx0uFf*^7+3L^~?YkcX0zIzbpM`tyd3)EWe?p{O2q^kJQ=9 z(DT-}9X!l*N?wpU;rlqgsiQ64-Gvr>ptT=gvhiQEz702uX-X;k=K^lBh%E4b zZ*gLzz;9j4!N1uDsr)}kVNQ?GohaSp*U66DALCOW?@rK~$rM-=``fo~L zewvRq$p4cB7U+D1mKMbHmSk?BACwXGDF1CKC(NXT`Rf1K+K%jJUbD7~$JC>w-m#h{ zL38hV`0je;zbiq8+dBF%dB-`VwqkTAl>b-jIB>dts}BB6+HlWrO=5XZaI8mc2VGZM zv83qyzgzoIwlt!wDPC4vQC(hx68PLInG72SA3_GP=2b- zzKieotm{HOmOXvY(OJ=jM}oZ?HpVcyEk=4adldP4aIlgT{vpYO%p;fSaS}=NN7}^8 za!he$C1&?m!TxkRb{LxMcpU2o^$l2Gsnnr3rlBj*c!N+?AFnO02Z<{&@#bW>s@RYm zlIj~uMFZ9opszO6m?FeA)KQ5BoH}b)>lj7^p+GBE8bCy2J`(f4#!7#*-Ho)+^76*& zc<|(j*+aCPnC4X#bq$R$FbLLS9mJq4%~6fy228fbaDJ~Mj>nH^NIZR%6Gq}6WFLk& z7;#1Qs+tw%p?9#IHU)8MTr=5`Q$ff~FE1@?Kz{9qtZi(-FU1E~Wu9+*Sc0703VoGbR{K+Eg`RmYr z=qBYb$-xZ2qieH9Op$b9@)g@ETD!Y8EB|Za9=@-YpaM>{*#nLlL`@I8c$(nG`rXpR zOqWo;-&#+TATmP`2l>VxHekx1X|r`M@CO+T8l72E(PqMTNt1HWkHFdXfyi){0|o&> z`OmetATRQOXvTbgxCcvPg2J_g3|FsbVURT}XGeNNI9>!ACke3mY?*)x@5fi^L2f?s0uZDUg^aa}69eJ{1yzPsbkhFUMo0W{gluaFGL z@COkJ(!X5NpU+3QE|3+H#sV=_=R~Dg=(-%Xx-NSvm==R_SKfG@@CJ;__fu2vfI%`@ z=%=MV30O~d`Pr#&BA_R`{819{(sJ0u=cOtPku%cnW)nX)bqWHJwBM0ZklKWR?^kqf z?%s$jn4EeA!of@-b;md$88+*~*k#s-u?ZRWJxe5KeHf9JVaFJhcMN4hNMYAJ#^-E| zIPlB`kL#u)AUbGLQoQ$KXc0@u@EHN_nTGq~ked$!ZK^0|BOengi#7Ir@&!hd*RZ&%2SrM;jD8@FplI3VeLJAwq6m;c{8Ghpko?gxs)DrZ|Wh1V?YQ$Br z4BpHJfbD|vSC3eN)My9Sn5Gfs8q?p}y{Sj}Yew7&ManU1{G&!31uYY1qI`V6f5b@4 zm}oycX~a0rp2(!Mf9eRHAs+bI=@Rh#66wc$a|DkF&ybMrCwzOv)xbn_!BR<#aSn4R zMk5YIwL(VjPbQKMb%H_0SlRT#f|RWIlTdrW0uh#t>oOl)muH)c`0g(e7fBMpNNccN z27!r^?2AX-DhjRxX2MxuY4VTt&YER1qQ$!caF7w}yxR~6GNMBQo{xP}OnGsCKbnC} z-b>)fNIRQ#?L_Y*1R~^MvsfynG~gXDo4E}nnhK3O*;@i!j5v0E(8_N0I)KS12A^)E z{+e~BFR1+O-dUg)kZO=Yn{%#r4JZ?IUBAG45`oEKUBAQ|iGlpov;npXmwQJbFq1k; zJ3Gs|`g<||@FTAs$hk?;>iL#E-Zz1t?-#eVVG^mYW?fbLrnPuA$p5K#BM61T#Cf8} zdzbeV@JpzusvF;R^ndRC9f(pQ*k5YFj+n0XOjl*cTIE0Ftr_NiEL?Fv7N(Hl5Z4e%_j|%1V}w9? z1~<%dqm${ncN;DitkxX3)gKKdiY(U@X~7tTAZsQzM;WFC!p%k5r$fE@?KXu7k;(pP|;Pb{5TW9b~gRs%7S&6NL~cMqB@*KGp^I|aw&&iH*j=FChNN6}->ED4PD2T}Kfb}L&@`50ZA z$oxq9KwzP@vn>6VsO? zFu||Tn0Jm<_IbWG8+Ekl={td$YMQKuQ0b2Jn?abV-JfZT(PxIWSxmjOSxl{v zQRYVz$ySC5HOL+!*^n{8T9GtFLC@<ib?F^g{4!k39vw%}N_s$uam*`C;Z$i-{Z4KY#u;wrq~=a^3EqKUAg)@&!@S*} zN1prAzHz=6-2Gr0&CJ%EG#c0|ftW}?^S_l|D=D}G7))33$&->*ex&idky*`v1JBFK z>PH~(yc`K|iwKu2D!AR#k7k_*hKv9g$CC{Y%rS!Gx;+`WD@6GRX59cr@j>l*b5YioxZ6*GctWSU_&>j5gS{>JK8%jy)--PNMI(1nCfmF)BLQp zz)$sS2Mp)ptaE{x8Db1)x!|QIAUcD7NmbUhV4n{!uWIRU-4Hy(m0y?j3*ZY)vhbb& zS3*{0JrC@XVOVX*nyi0k$dZxko@^-0;shlYkiTQdlHn5BaVg>yw-^d@UJC~8{jUv$MW89c)`&kD3d=)N zf@+7)rE3FOE=gv{%CrnZUH1UP!!r6Zo>=faT5K3ubefS%C6Xpt?~Mf-HyB11nr5V> z=8-!@GGAe2*=aI!0QtFx6lM|2PbfhCl1OGUi%zqX#aQ(+uoEGTIqa-oqW<88MqseT z3_M&CU4@rTv7@QItzN%I;zwt$!g^_h50ikVqO;_Y66pzeqO-ZB21|{Vwb)Z!k2Qj_ zQtXE;E3Q(}x!sU<-8}rKa+(I?E^eSy(bBVkVvNbyNc2ZP1bX~PjNddhj)$KYE&mO$ z2l2zu(WT5pbG7W6ZbUYAhEDnV#A+u^%D6=|ArirVC zB2%fNYc_`>jg&d+sZi$VB$;FAD>@zs9sA=@s2p!tdeP&&B9jZvNm9pi;ZdZ>7H#=M zC{|j+$kr|n#affZ+PFR`Vq}Z9N5Q4Dg1d&J>jpxp^+{42xK=4r;EHxshC;GA*^8cV zeJHjuNvxBLnmRIWVvcV5MkpvdbG>NS8=+u#l3)*;01*_v=!tuW3F>{i(cW>3OwRNr z3HKAtB_{6Tg=d93d!qyIC)Ds&V=ub7JybE6q~av5a_jiX7u~V|Y&x6tUVSfm^6pUb z>q(NQ$V?)m)r`?o`$Ey=dg4V-dnHt`HA%tgMAP~K_%+ld3q`+iW2kHytlu_%vB`il zl2m;2Xg9EanTnqINhs1tneD4XnH@_yKxKa@K+N$y+a zn2i!S%^3Z5Ym%tEVC+TDdn}YaKS}n2B?(#Kj1KJzg~Qi2z37E$OH48^N)rDLPq>q) zL*D4cFNO-jjnH27k`l*x^s-j)nT8V6{&+7U`U7^#lX0_E^s4=Fb5!(d;tutqdmb#sSMOv=J^B-_ z+)t8?3elT?2KppfTaVtt8RbcOp*?yl7xX8|s(SRNBhds+(o62q+i2>fV1Ye)J3E1p z(d+HeJJ?~Jw1MmV(L1?wbkcwh?B!m~Nx>e6=v~~dF)7&L5WSnbH71$e8qs^WG(Snt zqep+nm6b_)gG2OQZq=A1+Z&?yap`{2IxOnQj^yaix$$XI&j9=X(fgT&lX~!85;sG% zsOSSMmq}({NAwq5Gm_w1Y@!!yA7s^@#Gr~k#NGCjdiqWl%EPOe`kuic_z2(fMMQc_ zNc2&TIVW>RNc5MSf1MOQ03YK6kU_osF#0QQHJjA4|HCx;Yd%XSVHK78NTR>_luBA# zT2=IMKHvZjz@#Vm-~!yCqEGU9L^R;1_?!WZ?0%Y$526A8mX8I%8&vdntk6UQeufnl zFp5D%pXEaU0hEG@KF6jV0eQzb`aGL3gn}}7f$b84tuXIJw&s*#FERQO8)<|R#qfJp zEMRmw{DB@$$*>?^Ua2uG3Ke~YZ8hi&>8yWsvW}~>M;QLdCISqd$bJgE#%hl+-!{PH zyo$d5Ci#1`W52;i|0KNyC;BFz>67#hoamqUutuS2M}Lct;YoTsPV{X)UqRBY{%1Zp zAr<)ZUpVD5xj>+`zQ^4xa3)z7 zivFFAIqa3qN6~$J2!d5I^L;+rCS#gGML*!fYVuZsA9AleiT?Jmnu! zrOjTQ=s(%YqvfIh91w|K$L>-D`&XjZ9|jLq2i-z#H|$!1-75$EjPQ*&19lI3l<-Xt z0ZtwN0{%U9Xe9dMiIC2CjBSQV$EUJ$#dW_1ipM93$9?=`MxtKl#@>T2p113&MP>FTm;>`53H+0t`Ds@ zH5b3pmN#(^xd^&>jrL<9*D8BwrRZv7j8mQ=7eP1gar^Hf*AsSKwQ#+QTpeBTDY*!` zqp!9`mj`x@{-L#fDY+*62GJCZKGpg^lK8&C=x)a(c7(GBcKP9qtBLrmo|%R z-?sh)N(P5=#rq(LrG;^qLbS@V+?}KH+Nk3UBmRXkVzo% zGH)i3t~(F^o@O5fP+~i3I6H&Nqc^#3vEgB|jG66#Co+piUnQB3aUU>;HJ6p5;V$p& z9z@}-eHy5|c5I@?nMj1<`V~^lg|*{tTug+8+|BLSm)+coLwEWyCzcxGRo?nPjad7EB`>ilcz zCwZ5D488J3Qr=ZDy1%@Ul=tIlfb|~2?i$6F7ABsI4Jnci-_jG#>VNZF~p4(nrJf~8o# zA03mw}2S>Iyvq8fIB8^(J>M&V%)dRUWP_lJgw zMrv*B6oc}Zp@^|!VbCJH0m?*XUtX7WAF|SQKL=*QtH@zL?|G{QO|Q<--&?1%8J5Mx zygynOBM@Zh8xqhhU*6l+O`v4>75&(8m-nvqTZDpj#ghTXbkqOCr-^u}u6H)LlXI@6~7TfdiywFLD z+Za)sq%E^gKp;rk3JJ(^Vc00;)!65N1FwJ6Gz{oeO#YG+#ithRNj5|p+NbV_gjw>{@Qzu zy6W!!j&(sh84r#DQF#yAOTZn&yKlY!6aS;aAGAfgU|dZ8lCzVKdDmsqB|Di^VFL16 zBAK1PH^`VYDN;L#0}p-9b?-HtOrMS;(f9<8^S0q(f;Eq{YymkFScyzhC}y$|gYv1M zOk^45{l>l$<%M-YV8$#!#fs&%0-Qk5jg7WWLqNJev6%JydI+mAn;{oF;B0acbYsfC zD&(^4+Zu#xCi+;hf}6-i(2bpB|1#v-V*j?0T!%FmHyOJFr}^4Ql#Tn1Hsa1hbh z*Cj)gA4sdQZ;$vl;v9uth(Uf-@$`$af0h)YKRB?~h`uv|)2gxIrZ<#T*H`echq3R9 z%?`G$mDQE;bSyd8>VT_8^0oYg8p!TNHj_?C~9SLEk9$^bY~*zESMC zy8!FHQS3#+UWCgq9ViF9hZ}qOW1up4s0}`Zi+z}~j1qfm4603p*m{|iu0$uQ3nSFn zJ4b>bXXC^Na1LWve{FE)QtUm7#3B`aI&%}RD91i%1tp)#sya>zvOe~&Q-Lf<9Hs;B z;_0EW&vpVofv?{6_N$m<{RF|u2zK|N3oRio6!P89*hmS^l=u8L!<1z>Jp`T2Scdf& zgk*`PJ~$mT7O|Km^L5j5Il!3wCAWZ0sBL(?5;SQ6nN`9BWad)=Ci)>Iz*vA3+1Y+0p86MNTMhk$;7#@>^Fm-Yyo?+>gqLCHv~X5eG% zDg=TK4G+1A$zO6&v4MA8Mk7T7S-_MvzH=!6|*m+@hs6V_}Wg+P$7wGs#tw$45elptYU_Ky&d z$3EX&uEhbS!Q1e$Ui*HKd~G=o@`=e`a+>+La$Q;=X=aSV1mp@LndY+$Qj#0XWx2`1 zu@Lyj6p7OvZ)9kbj*a;Q`gaV4CTR*4fpQ}d6D2PO?YogLuKNfu`K4%{J!`gFg~V|l z$(qZPd2s9xH-B4)6VFN87r;A)yw*H|so44b)khp#i;kqIyBPlk^t^fiF-{Q1%4n+A z@YTm4TZ>N>9cNI-D{!w1sYBd2zY|J4>)5-2kr@@MnV`Z6OY8Iy*E*hOrP22LLGU;X z8bcwgg<7WQX!^LtsNAzx}kLXYlL>NFEj&(qz(dR*J?&D$Jf>l4)3OaleX=ULEg00Xt>Kx z9KhVA^%@Umvc3x?Gcfpmji-msSQ`LpX0WwvwS0Rz=#E-_wsk-FXJs=@eYPBpHAS*KAhtrpcfABJpOEwX(LTlp1;#N+HF#5Mb?63z3Y^eEiATCxaIY(TA@bxlgmkwjn3 zMB77Zj->Burq3R7|GQo@j<@zub0pM!eW-cQFwJ}Z2hC>eI&7$KJ;4YH!Uzsn1Jfnz zo){Lv6F~%Xd5nwo1c%%9kf#n090?D|VF%7xCtCEWna~SPWJy2t&J(>SN?s#RjyQ}J zs?TEGwTF7<9|guE?S2=qQVRmbN$28OE1c88g5Emxy%FkL;jrwWZ{ZI?DZuq2XoVeZ zCn>AJVdF^U_W=*(Dg~)cil*p%gm!Uxc+s#3gH!jcqnsx|V<+C)IROUhBphX;Ts#Je zye(OL*ok%42B!cFdqn&ih%dQ};0X?4{)%-wvr!OpfhZ{k|5i|$5h+fDOhq>V_bWsa zzdZmh(+tY)Q)=-OK#B?2e2uF8A6+)6EXvx#bs9?PWR)ImoOMf3;-ykfr;vbbEki4? znRW5h>!p2x- z^^&Uqdd4F%YvBYLSx=lk*q@aVsbV3PI=)4JqXwTSID(5#)aj>G;|9!6>9ScFf5 zxyyLy0m7VPco^Y|Hk>opMhq*^XTTJ4iK0)TesEgG9yq3Wpnu(buqn&8j)n9*T-s5h z79FJ%;XwXKiVzN!M z3XcW#ap3lWT4e~;F9LHAxT@a-PywKXdq5m8Ge@0)hEx^*5SS$>)-lQ0a-K-Hc6ebs z1GT9T^F$23^2I2P<+RlNg?EhimwIrJSaWiaBNQEu$HKjEnv7- z6H!O*Lj)qb8CB(6koH10ej|XF0Q@dclEPCBL{Ez215)va!I68iQXdB#&Oj3lceOzt z>sI`6@UZ4(p>#o0psAAQfIQeB5NWxKc8pxY0fh4Sc&X8C_;C06#5xy})5U2%q0h_+ z{Noe4$I=dE{hLL;RJRMC35hZBqQI@4%a1oz{q|vv z`|YN2ZyT&`AJkKq*6q6K^h(8}@1#T9L&vX-A$^BK59i$Vml&+OIl*NQwXH-wR|k@& zpYlKBQ{Eohuo4e=l?{Bor29Um`&5)#!#n`HVI4@y`o+JS;ho0-^$2JyRswhnKqHCO z9SDs_4psL8s3dS2fD-^nRd^6ePyouZtzS?JtHKQ+N>yNasrV>7nu}1}uY%5ka)yH9 zMu8ROgUAvrpAZ02l<)wcih%kTD#nr4N@vJL!OlMev4H^(stpLO3qmQ*1VjY9hpYg8 zq2Utu1@ic>X!=$TwD)eQz&nS%>ss*gqSeNNI~_5%zyxdON08M|<+h;U=60}EX=5)N z9g4XZzTv!NQyI;c{Kk4kcFQqUt~V< z(QYR6&}fxg?}6uIkYN;T)6HMGG=CNnT-e&(+1ZY%^KLY&%PdZ<*+a(^!>=pkrO#>P z>F>s85)20UvhaB1>PF~%5*m*XcWaUc6dAej8=%4U)ZL&J29@O~i#=&%f64biy$%$n z!XD^RzW zx3=OXmA?Rm2X6I0aj!&1ExaA{8xYe=(6fTn&A?U}>>Bcw`~p0C7!Q0p#km~Z>ZsR% zLqZ?cXvBFl(MSJVqqP}N5Czv?0^~XHmH2T0_~3S6idM#UlFWFL#(M+mAt9B0lYm+@ z2r7F~CD#KuE@WwN0v2i9bw;N+r5YPaaoCoq_$eMz2@5udauWo9QGh=$#McvFbS?1g z@RZ*J;7JH-Yx_Z?JkZOXC}yZh}{=MbJI_OO8poAcNe_?(&tEX*k4UL{n^U2-vjwnk(}NRyQCwRDPtfc zd^yKO2c#)=0XZV}Az)eY7I4oqRWAYf2Y{82fSL``u_Ot)6m@>_CI}w-bo05At4IKiTuVS@mnAs%OvVt zcnU0vHE*Lm18O7}t_6!E_Z|Q%*>OJ*q(m+}0d%>Qu5&@B9ZJeyhpOSZ@e5#B)JO<3 z1vL@33^Yf$MWmzSGoy;Kp=%3s^f;cWJ$w{><6VTX7ab7NY_8N@Q zjql|)d#`g+P2cl!n~&<_5N__n$62r-+=d6r4K_8XLL6w`$H`Oc#vpTR3)=>I_0h=I zO*Uuk(CQXqUk(o*u=d!TYqWg%N=;IfHcm*={ck2Tu)qTtqhh1J4iM2$g)T zX>Rs7Rna0;g!iE*z7hbN!!rY2Db5lYq)JW$erF&N^p?@jD0vd-JBFc!SO5R`KZp z{>l(v2$xgwc!1v<;$wnu3h+;bc#fu2d@#WOImEvr_-_Sx8?MBHOmV&=_$vbZ*bx6I z@#VJ#c+Jb*W9a>JhTC-)fYsw_kC`J$I`!Y0DpPJxK>8C%SUaEIXqv>SW^Up5;JX6g zWtRxOyyMaR>EdfgK=BN6boJ&*k6LT9hcb#g`f%iV^3mtYn(nZ_{hVjIRx=#kmEWN2 z)J&P)s~L$pRU1JA2y>Rg82N;-wa}qqLmSOKn!mCd`~Z*;0AA zYW{b@2fC|UJv@j_G2}6U3L78zjz_`I(cYj&x`AthR5A;s^8<9Cj*8-C z!1Eb$Eom5!qi1K;IYSv3rrrb+{ptQ7iWH}f{#5<|@Mpp=X*t_ok3*9wd|?NtwCa|( z0_W4>Oabd{nH;o^=tM718r-*K!fI;L8S>U&WFldz93F4IBLXc`yV?iAqpbIZxWD>R zId5KB-_h!C2-SZ_tMBe?lW$~Lmsq5&m2U8*(hb)0u-~=V__gjL5qYhw?^`S!)iPC{ zoiA8C_#Y|bCpL}?CbKXtr{l!}8HSd^@&vNtP-wDtKGbEL?%!rkj?V|Iq~XyRJc=uq zKZi&@gv@-#Y1_>ZTJbS(SHUY9iL6e6N%tdE9Ru(RJ?VfPES$oam79P)6xh#zEjk=n zx{zAV%q>Fbcjz*D)mER5`@`wbeHP?8pyYSdJp}AN zVB?no%TC@Mz``e-A#80ax+jQm{+j?$^r1J_!nD&7O$s8e-VGfiGN2=Z!4#e36Y9{8 zQuGRNR|BWwpFsz`ZVY7Tb!@b2M(N&I(YFAw4UMk`KkZnexwIV@0!eDog8-!Wriz@v zwxC1u5EOiux#8G%FgMuunhm3*LsAQ1od^V+gWaMuTaSDtZYR$>#YF z0AjN3p~^(REa?j(mTzO>Mm38!e9~jQ!8g6K;!Q0lnGe%gc{Vw|fjGq_CPI)4U^rl} z3wUvf%Ry`;Qe5I^2#HI)1YqF`@Y5yQx`Cxj{0rEkc3=}Ou?eB~sPkj1l{)DXnVH}q zQe0vlLc?6*!z}2&19EhUx2T&gQGk{v{%c@a6psNLy2QIdg!A*FI&Vw^Rf{a<+@+6* z#U&1hj-q?>bn%xz4IsGziBE?--C;8LjXP`wj>TJaHvn;ms~|=jYBZO2hf$*gcPIl8 zxWk;lE+lp`tSAh#J!bl8(tH0HikEPDJsK!|)>>6m2hy+U^vYuo+_Waa=F0Nk?oFmO!*Mq#n&XjPP*Nx)Jdec-A@o2=5{@(SqrCN{7Sbw9zx=F-v>6n7+4m099TGpJ9PI}G)2w8 zGRFC50brd>_B&2^T|gyliuO>+$78g+ZKsl;DdGXWx+%IGI_P^>=_sTr`a5vqd($B* zz842S4f&Pk3Jf_JSZRxX2Ox01t4(&Om9M~*U-X*}_e|+q=BAm0G5(gtM zKNUW*GMOduL`nYilXbCO0K*@Lh_&<7ur;{Yv<8)&-w*yE_I`J9bUanM$&y3UTZEt|39$0~dl zgYpyy{V!G5^I!G{EXi3#UNoA*`(Jhf6m$E4Ub?Jfe#rY@&0qW$v$9HOmXVV)Z^DU> zCpK4n8Dp7^4A+x!$&6oI;K!t|X5}1lGOL*uR@PF@!1?b4gKQkdM?+*DVVUOOaCkos zt|PSf8omn6$1&o5e8I!VFfP}O9FYp+ih6EQ(|Zk@>l;gWJX3RRyh>Rswn(XP(Egt} zE6U2sn)UZwtx7GxxdIWW#dk=W^#iZDycg+d>)axzKUh^<2G=W4bzMojU7PjvN%Q7@ zyh3IDjyo_gHA{V8!lkTNxHPIKhSvq2j@PaF@l0&#QP$6#I`naL;jfqCZ0y>I4-0px zQIfO`I0>XV`8(b!|45D$IyAl!hw_A5=JFSuK=;9y3)`FV#x>qb?X)<78RL^#Z6pot z>86fWtb1yPv{(6n&q0F}lRt(qxMj^qV#lfU0sGTr;2!F(<_;=WPU0udzA9r=t$tXH$=+dcTnEC!Cklo|AANiMPC?x36Cm z2YWgXoWsdU&cDS7s0}P%?sOZ*G?z3WBhEZjtoVURLeF>yzgV+eTr!4SOOnh$6)H|rhhT}e ziV?*%I7_^?G>}3@GS;#{ia|(~8&=F2Cn#8mO3DGSRRlSQ{HE0M17UWZ)i}B-eT{g} ziWD_VD3zoz!G=<$(~pty+<>JfQCzw(YZC}l4ng`?rXvofs4ig}6H%X(CYaNZWRAF9 zBjuD@rOO9nw&{UYp=UIS!BDk^W?^wd=fg!MF-CWE7{XL{LN>7KSju8fB~fVmncW;% zi`>dbO*=j*^AKZ8I$URMkOFbw)^v-p;>b8;A~@O;sipk7gu2CJNME0zFCN1dVZ(H_ zc#PC7sZK<7B%_EpVY(IYpneug_1GAq0x??A86u?~YtBs}5}X><1w&MKh!2>7I|IqP z440+qdAm};RlITYBe1;PrLka_UlQXrU!-!g;)l3A)uUz|=6ybP_s0ljqc@(w7){*U zcQP(Z)$;Zpx<9rWXyW~Sf%_YH{}7j_hE5v!&#~Uje1=jnkRxZZBH3<@;UN^=3>HhR z=8fF0df%$sZR9{m7JF3UU&-5hxS+Lx_h=xuQsh1rg)5ERW-w5>t!D1#{VpNb^2RM} zh`~fgj$|nvTOHrC{v$3VoVVp7w2DGHraIo3NQ+zI^=}&(FBO@Uyxl5beL^O*j*NE+ zwKhSmHEKA{N>1q8hzW_VH8B!4ynhBShkTZ*<1JuqNMda;to#@shnq+dZ)An{kduRM zV0qIisy8wh1GR@}xC$MGu*_?!THf$ffn`HYycgm!Z0&%11Da9AZEXR+n?wgz|49EI zqDm4Ced}t7a-SNK!y98k0UJ(WO&r{#@&#(>YqWr=qDSyfT}a(AyiXII^}Gd%IL7EF zOL7D+i;5wa_xEujXE#AC$PXa&kG7Bn{*&OWGn`3Y#rq{cFnzz&-hLyVs2BNgV^HHyLZVN4ADU^vt52tG25iJ`}aGa0kqMYMB4Vutfx zgbP`~h`t}7dB0JkshWz&Z8Xq=-9io@{M-#NCYOp<_-Z(tu+D+{um2Th|Gm5uF(T5#cjWMJHg10c6+M+B6rnA_C=!@8pM?z zU}`V2F3KU|WLy~maxjfpVot?%ND>z8gBcgugITyD7rBEzuGmE`*>>U@m&7`l{^h*n z`zfycfOn|;B5P`dLTojz%z$!{wG!$gL@}2V zDokc2FwCp#V&9Q)g;t_#I84P_lz@KgY$m9EFuq zBTwtIaY2SVF#f7R-WVTh)+2^fap%NuaeGO1JspCOe705sIsK>bu?L(~`_ zsm29$ym6ZYo*>JN1jEngiINv_YaTsJ-(*nxaKZNv0(F`&)*D$;xy%LMPf%AGYI{fx zeV@#~k4g+fP{ln6F#b#8-3i7Y;7Sw(L)YLM=KDlki)*;=6LSNu|H1dk_A6ZfiwlwO z4P0OCLgc7L5)+m)bTY0l`aZFz;o8sliQ0xMp@Jdi+Xxl31kAmixc(Qr$@gPiUu`!z zSRP>%ES0hFh7iHPN?ZxE7^1_3ET-sL0%Kq=s|D|e;DZ0rYQ~dXTe#KbL0rRX3wNnJ zg$pu_V>K>-yfM0AwS^lYtq=xa5xdyWxi0ob5xCsN`RA@~yA@zV^CS+kIBZ@0g%nb26 z*u$zG5&5`=S3P3*f$aaG>XB^`uK&e_$+sF;=)xsnc#$hQpFS0{uVETAw7dI~>boiK|b7F@_; zynrQeE-uzF-Y>!hPo$Aln_Ts{-RB5gaO69}2Njd|Pw|sl?$7xQ7sPpEbi=CNrC{5m zS?Q?bH7nVCaj9DFKDkzd{GxQ0_dk$|gsqhlnsGvlGI2^WXj z=7%7{{DpHDiknf)kCR!~;xaQ?244>LHJH0F^CSj;BJh~t{sR6y;Q4Cd{`|Xv=bX#_ zcut^je#K0g82y|%I2_j!T%1(kJV6z%T3ju-I6<%;*9KgCg~$B<8~sx7a^OB1R|PKf zL4O;U8TcDH4jR})WoL|?_ySy}N5(##`I-K{;bV_2nQrh;?uR!W zJ)_g;`vc;96&JgDlr_JJc!;u(P=F`d%;0Ip2l^|x_|!B%(+4vhu>I+Kz)v~za5r-M z>o#~kR~aWCxzuTXIe>j!=E-XCd=|1nWkaLjz7brk)-!Rj(c6QIb=&;RGtBV+Cq6?r zEu)b)ahW(wyJ6^TUD#+Cy1|=TYO1KgZ^6`>t+)%{vOdAWsf8bCxUA{ZXY}>9&S>F6 z@C^MF!Mgv7HTDa1!B71NatcBG`{FA-6EbKw9!I z5yY9nEhi4N53~b?_Cn&@(r1{^vLq#K1Cut`kFVzRfg4G~;niJ(T^jCQdjh@|8^A3g z$m0vbz$SdZk{jb%dO9?t9B!~B&?b@Uy-=Deh(3I64DSag#ky$|&H~gN8~fy-RUHsZ zb%_9h$z38uM>Df0NDI$q4RQ}F|40O$yH{J*n2(~)f%|-Cx3#ao=p<#kR_d-)@0g;6 z15;)@PdLx?FB-b?!uA1g=9T@60_yHHmn|85=)Ubk@Ann0zpQv@=(5t*-Is&t+{nLa z{43($8T{K?b49!J(UztvZ~d`<{mALrx5!(+u*lhI?QC?UYQv>-qV` zM>va`AY@;5@*C4;I2G%>H8)I~vEEtiH61;FX8U6AS#P)Zs69P*+Kd_Aj5CK;7hULF zxplAeOVxjdbJo_q7p>ateE?&B>D@KpEZ+48XRy#2+3%cu!8E6>@GfsLBRH^W{lJnp zb~~H5IVIOGShNGtSrCJ49Cg9KH0RJJXYIbJYrGlGpSKhi?Qqie zc}31huh8jw#2JO#lg{1?ht9Ze$$+_ru3NJHjLQ(d(E0SVNBS2ze?QIJSH0Oe$9moQ z@U-ilbFD($3vusv{&8C2v(8yS0C3L6{hy~5IL}zyE-2c)`y|@=z0>-uH$S>?#{wVdZNgbS#Y|ks;d(&ra@ueokE_>P?v)X` zAnt7GU$kY-)I}ZM<{Iycnn#_!>x&l7SY0%&=>3I7-rFnw;dE_tM(uTOJN1zZ7C9Te zZHv9x?|Vb=!)?3!?5TOrK6(bywXg_(PGlQOugN>xd-m8HZg4W}!|}>Z+Fqw%m-E?a z-rgXypH|*r~47-+gtZJ2YQ8T);p7t+D?0kb=UJZIQe_u*k0ru4(p1Lg8#n= z&til}>}uQW{OPpU8KbjL?RCcO`x(OCF7KPqI%B=*i0^Q(@QpK^hd{e->my;zhwLpP z?t&sz*)>jySGa!B|4(Wq@~70UwI>}pu-TrH>pXT^|Mtyqc)89`tZg?qS0JX(koq;w zuC3SWwC`imA8~%K>;={kimJ)^!)dQ4^56w^{Y`@lE}S-NO~ra|&Wbe^MJIT_Ui>xZ z#?!pz+c$eNp!sg=5wFv^>oo6r=K?rwztdc}`;3QCMS^SSVN{tr5q8oaDXOqj@TjdY z->zEMy^4ELu@l(r+LbWQz1Qd2hg*bIkNFlth2EPbe0BO8j?(@X%jUk`4s5CChbpO4 zZ}l_hMPM&>PZ_>!+^2fX#}F#aci2Q5Hkb08A3izSWIJ_|nQD+HB=+JA>sbkKb^@HE zD#QT24_GG(dklN{{YOt!KtGgE;Tc{q`q*~>x z?uyS$IkN=2*Wz+ScycVNRVOFN1-whgSLDKUOSFS6o7;moo%zyTcPsX#C5ysL)+T)4iKA`E#&WBU-fd=g% zI3rs=-%#JWp?y5k6Bn%Ne4{68u+A8Ri{L*xN!&1Q~ zWvVV`$-WZowuZN3w{?&C*hr{2;ng}q5lG&&uF*kZ{s$gYn9SN?MoEp*XPhNfF8!)# z;DS2wN&b#BRFvX-t@`tA9f4D~oDe#-lp=g2QJi0%y@^_-*7f4O;yzQilA}~8x{9_+ zzV)y)9$!!}d1-ayVFh!iA31$y!R(o{=FB{N&a8sT?I-o%5L9vb&coOP!)Q-^j-REh zQ@jk_uy{ym2G#~brfDVi}Uco$tc;_wV0&qR=k6n( zECwAr?9z-8YH1|J9#HXYXW*37rIA#7;G~FS5A-`btTY<%Fj$HojAyuB@xxiji>ZO0 z2z0L1dL+NfcR1VKGg6%LKuj!;r^{I<6geH4--7$_G?q#nOe9!CUUU49;Vs_bETwY$ z&tj3NHnSz>pd8^X%}m*-i%KnFr1+WRZ;UR#B%UzbfhFPi#G&wv<#l%s3hGX9nlrjB^KXYh`;emhICE6jDrdOwlhn1u^ ziImA>bDD{f3G&$fo*4PCHD<0SfkUcSfQ}N}`62F-5V{u7 z(L#Ly&@lo%21uvlw}2{v!!R2aNaMx=((xV(NXKzSh|5B|aja;;w)8-vAcWQf(z53R zsuIoL1BCZ2k=`Ey()w-;ai0Rx61TyKYLW0TeWY=t0O_(U1k@~A8bj()fOI~0gt)E{ z*9S;@&KV)~TtM1_D?{i*CK(&JVB_M6fQ-D?q?uC%=^^p2@2z?MzEwocw zb_AdqBAXjRV?*eW5Sko9GeT%y2o;4;X$Y+dp}G)S6GDA}bb3z$bUZBZ)mb6#{1Ep; zK=nf16H@O4)FQYy0qJ!71yG~l{uSar4{-;KG<*esG~X^jx>TP5v{q!NVXC-QpjSfZ z-+je5aAf1i{8JOA@+%iBKR|V*J!HvSspbY|51L_c{50K`wu|Y>u zrvTEpju7esq|>`S#GMD|1kti5#N83%UI=l23~`y*e4{mw0;Kg#3~^IJ+=39dIKq6+xkos_lTY+hO?Kx)w(xv(w zAg$#?K-zOMa*YM&0n&Uw2c%_R0@Nw?%|NG2%hmvz16--#w% zZSzAR^mIs#W3f_Gt3v2#Kw7pV#Jvkh$1w#H`#RoR0cpM`0clG=1f=cTj70~{cNw5= zvFb@cTFX0tbc)KcFtJ9c-GF)ox)G4p{5T-3`AtAgLj4?&mbe5xfokAV)l-19=BQ=b zreB3n$N%H)%LAjTuK(|wc|(R|Ai+r_DnfvOLAC?}1PPK!GFf1jGMBZPnI&Xyz_=^XIE=9pP1ESGMim$xrS=o_ zX^HC5YbClw*P z)Tz;Wjjq<{7LD$is=PcpO`+#B`jbZQYIGll4_SlHX!Np1do}u4qnLCR;tGxK(g^p3 zS^kchrO+6S7Hf2tM(1d>Mx$PhuGQ!t8hxeFlXFxYFKe_{qmMQELZh}U72?P#3OzPY zq31OERHJV+8lA1|PSz->(ODW@uFIcjL&| zeyPy|8a=JiOBxlHst`*xYS8FhjV{sXN{w#R=x&W3(CBH6-YQdZWS1*+#$tt5Xw<3E zI*s;JD7%j|`dp)*G>WTKcF7t|(CA)`p4R9kjo#7dBaJ@S=qHVKSE)GmX%w?Waho;T zqR}pmeAUXXL8HesdQYR1YSh|xHju2#e2vy??MBVruF(ft`?=pPH~|RLDD1K|TBNm0fH2iyRli)L7Hzi{ zD1*bU(_EiMw`=sKMjrynynU{b=X4dv2q2l3sTy@@bQzEgd#y%WwRZR!D(s0s(k=~X z9;be)=CU-mP@^`DIKj-YhTysZLR%YqxiE_3Q{x*0?CqmR&%du?p=+J zXf&)=mCz)Od>SnTlKv`zWX+rjBulqW+pX5x^EJ9yYp>AUMvZRP=uRN%?^i$zxV9eC z+GjO-0Z7_?pwU5%e$pu6Y-KlEqck8{;9dml)q?^BKbrL{(*(hdQV=}XXPoJIv2 zRRPJ^IyBl0BxCzEkc{mCAn9+1=HAfUJ3unTKeYC+Mqg`fOq25G0h0bkYm}~0jYexV z>I0G~y$(pG>SoQ|rMcf|?h(zMyj+D10LidT8eO8%H5y$9B-3}F<{s4COF*)9zOA`` zY3>KjC9F_(Cjv=-6E&KrwUwG{)TmXXb=vN7&E2NalN!CG(cd)sL8GC~DlNwX$+S$? zC`Y4GZFjonR%xz7bG@4D*W7KI`=#a{)!ZL7_p0XJ(A>wGJE*z;XwHdK88XdDK(g#l z(A*@=E!Er#AlY7S)o2Hhto_}Z`%rVA0LeJM)>_&?mLXg~Qachz_V`g6P1V{Wjn33) zjYbuv8fn<)J*WC9&GWAPa6zbCGT8&-Sp(s7j*-jaC53c-H{Qc-L!mxz^sKx!Ztb-hQvqlN!CN(Lo?t ztDZLHISELHJq}35J4tJ&X>N|@ay0S-P3L)aiRMn%T(d^2fTZV(wB4ne>(|_^8r=aj zojpIKxyLp4ibii~bO1=k@ePnHwI8(BT&?^iX*5Zr85+&gs9d9^8Z~HycT`)k^=s}L z&20gaDY!?Y`?dC2&Fui1&bfSBqx~9vuF=?Ym0dcJtif}EWE?#jU8U_d0?E?YsG>;d_nqb(?J8AXjgo<+=SiBIrn!8LN;Ikil5w;G z$y|15?G+kr(&%oDey7pn8ojE~+Zw&E(IFrio9IxnB?8HE&H|FD&jylq0c}^M(P`Qa zZ>zM@+@-lIG}@%mz1r?Ijo#PjQ*HMdkc{^yt&Qnaad?1a`o?MQB+bp$C{LprjaF%N zo<-g^r$)a6n#q0P9gU7?bo_Zr zJ6)sGHR{voVW3&;m-BG+i(^lnTUwp?@9Y3?S??aHXX9r0)|qEVh4-o zzb~Vwy}Ki99)XP~f_WYcT@xJg{C7yyDng7K5?%8fVvd8f4Ih;g^gKv(J#WZ{+73Nw zJ!C`gQl)EnLpIccG9zquf;k*vvyT{b?ocSY@{q2{4KY7~NsP$X3Ghm#5h|ZKfcX(| zRYIaqD245i=t|v?=exnA4-IFwgE<_*ya|S`vkir!r})w1zCz3oU=r~O#Wezu9u62{ zrUB9u6B|p#lmqyTH&jup#CHFmzRGi1`N0 zRvp(g+}uf{9{r(-pr_F7=6_~ceNCeqR4f4jVMA?{A`ksdTh@WuRQ@5euz?%f-?a9S zBMR*_8emFoIr1+7ErtH*$7x)Ak$gBLQ~HbEnM;2(KRAugEQu-ob+W~xQNdA{=6tv|)Ah+?{~VYp-ivj{Au$O{CP)+=_enrMC{e_Eio_ zscYA+RV?3)Bx;XxM_FxItGt~I_YpQWNOu4It>MtU;`2m1Nfzo=j`Kr>#Ey0%f& zhQ0cxcCgoq;6;$(udF$0X$IxJojI9DFGqR9CRqT<;*d4KL28fsf|R4iscJC%ZS^@B zGo(A~l{M-{)uSgX^1e!Y_~_dSMXkD-FYJ}(p~CINODbfxLX|74_2=Fuq~Et`-K7}* z1|iCS?a|)A!^)$+$meH^j$iO8ld2kO#%xh*)ueo#rBqLA?r5)@hJv*kaoF3U6&3NG z=Gv$?5r^^+cHeDSMM*Z|jzL?H@S7!Nz(o~scUbpYwhHhsE{V&T|!pKytc}^j&n*HSCQXP@VvG>JaeS8 zvADIPv#zziF=s})iYw4ohr2^L0b%i>A`m6LMyMT6`=Bv8>McbU6Y+i`uJ|VXb|MyS zFC+@%@CF@6!r!m zOCJ1XJ?vM#g2zhI(ca3#wp1aU2zgt6ST1A%p~S@IUr9Co`0L8EG4EJW)&85BC(BBlmJMRj~ zgmOfB&h(7*h!WiE5aKo1ePhK-$K|lgt>~{z^$kydpz*8I&#FE1Ik(tI z@qM#Bp);jFF9EKQV$0Ql*_#4^-6a?Yf8X=I^9d@r&gc5`+^{6vSG5E24qR;R%ujVw z>%%XnrY}476NsX}YDe$3_}=>o=B4e-MS6giBoCCl+n{sMT~wbQ?gHV=0CU*RP9 zY4b+(`Cq3P{d<80;_6ROUg&T*+{@6OJhyS+m7k6r;rt!=8_*#6L0&^y>WW8RC^?AZ zz!X&9{}cetp9B2xzs5ktMKQeezXqTJpa3`juK}pwD8P!J4?vapSD3&QRocISUOGLH zJwUbBv)$-h>*-_az*yKcZLA)+FxB1j(cvTAKgy=O{?O~FlfK@Z|G-5~+Q6gv00XzJ z!1vBx!YPytsw9*na zf&5Ez28ulWIi9&OT_5%P%${$J_{%Ck@ol&t)IMdi{$pq1vB#D`+10_uu(v`={~Ed$wMMmt4L5@4s*V)D!>M zW!F=%{zoabNJ}3&Q~YB-cVA{IpebA35-Z_I=vCEda5ASooHL_mXW~3Y@z;!p&g$L+ z%fGGV@ua`n%-AN~_wK<6@Usyd_zZOz|7@Wt1N^-0b6npU+YT(CBt6abTbL%h8+FuC z{VeqyGXICFMYZ+KqeiCM$<7?w%NILy66hx)SC32tBL<$LsmmHK*B=U?N8Z7m>>~HT zz*9fK75DmqG8&+$Gtp3Da$EBB97>>8lg_P%YzGFm=@2ld-p$SKnEvZY-S>RI1H(>V zV(O7{H!{?_FMh+9FzN55U;_iMpz?P1(svq~!_MBXTk7n=bd4 zclVu0R3Ez?I8W6CrjLQgNU_sQy%6Cn-+j+_{*@9)R9HE(Hk1~f1uISce)qrw=`>1M z`9Xqt(6=I>-Q9tF;Xsx>Dx$oE_{%;7kFey9s-H?^ATL$rlxVI5RiC3&VQ~ngkdug= ze9V)hRVcKJ-n&6%YIsdceus$o{2iBp3XrTkblQf@Y zeACnyhom?t!_=lIA}$JD=?5CoMf+Z~DtgF)V-a@1>PF}kG+du+4cCj;AEIfqe=Y{U zb(f@$>g&x$*!asb(H^+$GxiO1C!&-t`<{wtW50P@4z+o!u*1hKGNPdq!&=V|L%ZIh z2Sm_leOV2)tzi&E@9y}^Xk5+M*Y{`^rSa)Zd>@RXQTgTgo=s43sDaG)$b4sS4%8`( z@`2VdDzZ4^aL*dk(e?bm^<>pQA4<`O)z-lEWC6r&3S0as{oL=~!7$MC?UBwC;~(#> zghl-01LYL(dP>Rm{Ru;N&2w~?$%M)TUD`%^PGdip3)VVR)SsM(j@fg_JEfsmQZA!pl-yQUf9VQ#G3zU^rvWpsYtms|I?v}HUC!u_HOGhNQ>_s57>Vb&+q&CZhHid;;*Km zH)G#{&G?DG^kIDW9C37A)Sv5#oWC)5KS2>c)w_m*O&ZvRpQava_Wwkn^*ck;_&;pZ z_&fjphc%6p2UKhH>|K!7zk!m~H$aI(Lz>5_yQpy>@pN9yFZA@EZ}uE9;(KXw?^){^ z)%}0{LC=xY>*+)tQoHUc7Zr@a^o`(H!~YNQ$Ve`{C1U2pdjDtURjwb*=d+Ot6lwTO z&Jxe$YGD>pF$bvJWc|iJ+xyl3RuTt3huuclQ{E1~W{pRX-zE8(ki4Jd--YClNWMKJ ze?s!rA^8yG0~a6@bbJGUheeQ4`IFx=Vu9ZHVGg&Eg}v z5st^vmJXq3uen5ZEsHa$LtO!NKcBhjkHw;a`VpPkp`qf);!%Cip)F@@>)o@)vHN*7 zEYWBRSCk%3-0tUPc~VtVFW&fH^iLi|e}vNo&#%CM5@31XXqA^N54mzGam$q&Wf?<~ zhtj8AK8|J)H1xYKjyJCBL(`#Wh$;y>g7<*$xs)BDeK4|MIvLB!6SA}-UMQBz7`7Kp(w5KFNH9Te+h6m zkQ?ap@5N-GvQC9ZWzc^u4=`pbMZ^`{zbLJLJr9Q4F0Rkm-S6Li$?bsnLXbbU3)gv zkP7p8nD)XCP__L&9MN;kbokB@98SRxYRg*7aigM~&;dM-qxznUzbq9bb%gj0lYy+E z>UpGNZ;yX3rQ<*cjYWI}PeDh~+8f17kME+YQsu9G*GLwnjEE^jiWOp<3=x$^3Mu_t z$>jRxWWp6vdSDqw57i0R!92W^suU|dEt&__f+y5Jxw$%@Cl(}i)4{}AX7>QgvSa_)Y9qioYW zLy#Iwj`%PEi(!s1W0$!RuuicL<3>RAd5KM~w#hX%88?bY)E{ovj*w5c$!FN)Gi~x&Ho4X&pKX)tZ1OUjTyK*bY;vPb zZnDYCZSo46+-#Fq+T?R=a*It~Ws`BUPDJ^&+2qwW`COaaZj(D~a;Hu1vdQP!J4+n|z;5 zzTYO(sp#D>$kZSAY-I*($5%;IXcx@FBRC@x%qA1R#(ST zT95XZ07VKu>G}qYCzr3*(FEXfySl3>^V*YBp#G|D?SHdDW~Y-QW| z9i7ef=crePO{a^(aCI1yq0Ufzo4i+8mMhcTpn1#TyGcHko5TF4g| zG%Pqw7ipc{q$K)bV>XJ^;fU#2(bnFX66wQqwY0S^m;T%mYr-^Xm@v(W6x@uVXy{E{ zgxMz2li}7fCkx5563e2C-Y=7d^f*&*fImuO#%vNNyveC^$<$HO*;FbgQqswG<_xku zX$*4%7!(v0kw z5Y}M$h?z#E?T(eg^b+(%Pi*Uox=yGvNR<#Pg&7r4CC0Wct7~b2E|YZ0v6hsz6v|Oh zc6D~PwL*OgsZ(OLJdZ-B#;)k*`;lViH^kr-6S3%>we|e^otOm_U`lLrN9}SX5^QT{ zJH2bBUBvjPcGF|=ww?OMS`6LjqUf@%%SB8sX)j zG5ISIPqv6l7*bGAg~G89DI|=1o`%pJfWx{FcYI{w7FHGKiy=i+lo5qa?BX5-9AXYx zMp1FaEi7AFQCXa~sJ6VU+8?Z~DqU1sR$VGC8BFOfDX+wl=3uHoS+&({Yz|BO`NdTw zRwJ_M3aSDDt3}x~)x|;Gv}~#pUyW*Gs^yeZA0Xe8m=rfE z6Ag^#>)P|^{s|E?ZaE4?#9GpLk{q#X8{6ANOezT`+EEAYCW#0%fhy1)+kq;zt0t1l z6Iu8=4KXM6py-EE>uYFi!L4%cm|4_xV;k0pnAy~n0M8dOa|oIk-6+MTNfmCIsldb4 zm|bf%$p()*ml|a(y~t6x^Qm13G|*LTcr}%9`zbXEl+Xq=K_Y9>+%Sx}3rLd~zY-C- zi&Ljjr-+!J-3$MS5q=c90=-3wd@Z67MX|g9=@9OKfq65KfVWdAri4-*@DNqe(%gUv zMYv0eEBB0`VamOjJXCrTmep{OB3#|xTrb=~qH8<}U6_L?6BU%-Gdu|mcpFyzIgOq0 zw+tQ1U3u?VOw=9}MJ*Q#jUq$Lp_#X0^5te(UR>i3R4y&|>y~Wii%awUH5pc84Vg2Y zX|+=uon&QL`aPG`)RiJ~HJCC_2WBje*D ziSi~(MA9|E!dzAGVb);r!pSHnKC+hcO}G=VK2`2vPHJ)sG516{0b8TWJj~ih)>e^+ z(O`X8$01*5*2h};;tGn&Ru~(~R3z!M@)X8~WhsoMw8(}ON&2k(gt46NA(X)8qPU2H z5BQdrRaJ)9qbxLwpNZ<1(|QD*iNA=Vx6CtU&6*Wa_7)F1BckvXKYLb0;ahYT{vt}> z;%8)})4zxsuvAhr1GQk9rO4tjL(JGI_2~6nwH0~3(!8>Kd+*k?Y8jfywUVWYJS#n# z$hT6V3BT3lG*Mu6HBA&+T}%^2A}%s{#ljOwEEK~ciA7>~BoPqtkwgjRD_Q{RSW3l+ zNTN&}6G@Z{ZzQo;Bt{ZJkrYW(h+`v(N-;8$s1nJM#1e5_BvCDnk0ffu36aE7F)ETc zO`I4>WQfs`#0)Vel9(w{B8f~fHj7NNu-ODB8i~C zvMN|A(jr+us;S&BCPlKj7+fmQju4aIhez zMX~{ZL1k``MzcyWJyI1cE-ccz^hg~i5zF@?krAoDlu%VsM2Z=aiVA;8ab8)VtW?a5 zRA4fxs0@~s7x_hIqz2>a62F)gN#>Q6l=#H#NV41?EH29zb0XOaPGD9fi2|<(l;tfF zb0hhJ3~`E$nIY!cn3*Em#$<~5HfEMM)yB*g3vA3BvCTF#6=aF+c51G8&Q4+Ydp?TG z5Idr{8R7*SR~{@bt*pok`u(NiMVk(ESs=j0veTw2_f_EtbC-=RF0JqfE5&XbU4+9z z@sf=!_Z9l9%EikzI^Q4g<3RBh8|^R67q8kl@{msl7_ZqB+(hv{waDV7HjPK4M3Nl- z&o&at+GC?it4gRG@&bNeP`qJNE-J6hFUHw%zj!lRQ&JVEEG`c$6>klq;~x2Tw4ywK zp88HS?=QuXvDh1}$PoV*P0kR1i6&=?ebHp5csH7yCEklBXN$i^lXJx1qRA|=Kbo8? z-j62J#Rt)()p4aI1t6n5}!tKv&F$EZjLw<#bt?qMsah+XLb&^p8hL}%Mgd7xEbQ}C~l_s zB8tltU)nf-jX$pneeWw9U*r#zi?3~DiNCZ;d}AXk(0TJJ#lP)zWm&oS)<*gYeZ{5X zI~!Y7nqMZqw~9ip=zMak)*6Vb>ol<(BFTWQZ$%PCY|x_&N1V(f4!e zOmXGUsb`7)pHt5kSN)uNju`kkb(XmL=hSn>H8yp?S6Y}MHV(qh5Ss>JXNqeFVKc?% zLD*U1x9=KHkuAa`~h)` zo#yH0RvU{c8+)U-*;u)hoFQ(v@fH4ZU(i>H5L;{-9OH?tb`Ha?xWh*BtS9^Hopx0a zeO~<1#`Aht)7HE3MVMbmP=eSQ#y zKbVJ=jMx#a3ivB3#0$}UAxR6MgHtUP=+=Hba4&L= zf|d(i(2r~d#GeOM%606XL3O_TeDTJh8g!LP928cHHwRURR=R_#ttIl?(MnqF%7fE) zqLnhKdyk?(GYT#h{}-*zEiUyz^OtB%Sze_tAofKotnoy=8?7qx*Z7qBJ)1g^R~Zb5 z{dTsZs2Il^@7rn24B`VjiPJ3NLmL@nw;$PA>GoqgO>X~gC&}$UY-9;`yu^CBL#mfI zzN&mInEf@C;?lu1p(P5W3jk8 znlC5|R{Mha;+kj`m(<2+KIq4JQtXRtidN;8l`Sgq1s7F_Yi-J0ov^NRym1Xq?77UHs)8;+vpXm31<5|Q3yQ~4Ltaly?t zwj$v7my2K6SRBG-h+Cq`8RAwuNzFFs#{*>Y#chM>3UEB2>g0B5fCG8G3tA!8nK;95 zHnp_jLK9aNwxJ3|+;Qu1a><45Dx8xRaVPLuc~nI}#GONDpIo_1apVx!!DsfXv6(O8 zI@u;)3SAsLP%fQa{35oSO*4Rirb#E9T!C`SaNR3XTvCR!sd4MK;4GD^3P%MZ?g~29 z&$za{GAKN=Stf^4o~;8v z-$9GiNom0t7?`GuzbE6{OVEXz5BzNqxHe5)sO2i!`5odwf zN8F*Emdo-oYA)`$?{diJ8WH!sba=jq`+?mFmo$m{@pxDy))o|FbFCPgaqhSTVpPpZ`Fkd*T$kWZCwV}g__$Rr}k2}XIP7(hH zu7TrL;M{%uA35QJD4P0VA z%pX`A$o3d0u0W59AC^S##7$aZUHBM3JZU4Ewbd-*lc-^$Gn5CT!^S5hJ&B;WsDQs| zm~^6EWwc5O z;!s2wHd+qIL7aHC%&|@F!-+m=Z7Mdx3110dnFswPWtDzqpJ21Mydyx0(qPCZ-}xB= zCo8lQ$<3gRGaENktkY>zVKXuDD!bA$?4RK*EG;PlWw>H&om;7t`7E(cCydOiu$U^T z#nPyv2rKz@I%)n=Uv9u}cNa<~!WLlNSQYfw2FeP>x=>=VDB_?#pAWQ7ujNp(I>iM+ z#Gdaj@L}phWZ1{U!g*aN**HQfUV@|5T3on?D;-qXt_x*CTg=Xkv`7&rETIhtT;*gY zY;#;b1GoLVLefDsbR zz^PS-I zfwEjW2L}kRejJM9>>CSZL7ac0^KM$@&#x`Z<&`eZyjeCO4rkuLkw0aH^KD@A3Ixus z5eQUZoWwabV085gIwZ?ivErN>g+>}=l8$hmmS9nV%@=e5C}o+fv(mj3M;6?~p-~-) z+csn@@%@G9I!BIh%dx}~Uj;5i64EnW_e2ClG3p@3z7fZ6LTfycpgE%Bx4`jlVBi|j z>6;3Q7G|oEj9Bkbjc3HNFUWowxoJ9q?BnmFu;-)$oAD15ZYAs%qi@GR z8wWUsoQz@gEJjJ;O(0wISbTfad1XaDN4Jc{RguaZ`mw;HDAEz_+o3nj*%V*`0=V*L z=F@IXP#iOf25?%5mw|b8rKN#b*!4<7*F@p zc&}$E6NbDX5#Ae^m`!o!V=0S^$0@EGIj$_2`PZy&Yo$vSy*IICHaMiJv7Ih#^xn+e zsSc4!1?IiQ$U)&dse#D)mEBsc?NQmc7+X-FrfJ#b9o6twV;38~hHo!b0=yo@T6nh_ zcf(?A3epfTy}OKi(p9DH=8TAu#gx34toouFv{rAz`!bV>BYVi=6*f<$ic$}+l@<0X zS6JFOD6Ei@e~oz*Jozjr$ZyA88tuaSIy=oWWugC>OR31zg}#T0g{DZQBzxa9zLptO zr4d$OZyK*7Gp1=-=pqO+dCT~cO}@jom$L4(`w`xExJ=O zvTy^nX`YJj(N~}`1p&sq4R2%Kha@XCENJdhT!Mmmt~jqEFBjoIGuCkUi&gkLba?7e zV`$`%Um&cybNBA1G^pS0E~|0 z(d<~JqXRlv#6!$itwytB(hahr@!YOPJS7>ek2%lCFW}Vsn&Sr)S%OHVD7>#bDCVf1 zMGwX%!A5$5_YKGSut-|X7czU_ zbkGc-bM}_Zi5%hHmN}3k+&ePq)byg9diOfU!zU+xFy(`sFfySug`V{-lD+#JlQUIU zewU-*v@Bc6hc4dttn~08`&TPHcTjo#O{NFMiy^XX*-8x0`*Vq z&el-4I4fLBNi*gJkCXOC5|UalX$kKzmJ&rOh4T(~;sR7b@9Gn24sWXSk0B=$EGN{c z@>=Tf<{9rqC(WG+N!=Jw>pGFZlbk#yid1soO>?eA@RUEo@f2^LlP-d{W?@dZkgcwt z1yhdQSFu0^>!Vv!yaO!L)`8mp@LtUn?H81nErH23EGI%PD3CiM<+%2}4HMfY)+DnA zIj4>rF&DFX6seorS9RC5LwjDcoI5wOE(N+GY;#2Fu47#)yOnc=wPApnnN?{bmGbPp z(YX`(SN)x?vLkLEiorBVlbB!ZFJ0mfl;L{EMDKWWDV|Ot3n-PhOR1uLopjflyeGpu zfoW=mlIDFY??h&)%nHz8Ez^^jq=F+-8m2LqAXB7c_D(We5wU5$kA$TZBjH)z`Q`&z zDlMmSD66s-us|uu@1oloX`PY79FKy$A*G7n$2=vWu#VbYF3VJLmDuT9-qOF0c2C$#*lSlw9P+|*oOj<=VrLR%_k&r=ZMyus89&G+Fj9SOw* z(2n;GwA7t1ya5iBDN?EIyrpI*N|P&HEpSWCKcO^Dr9jVDnlkeMYyO3AFBSRNCuPq& z)9je5D&Q>kFOuYFUMshKkp_QLlU%}{%?4C{NEU7bQMsvOp4xx@`MB>Zq*%s^u%&Fh zY4ux*-rHb)g`|XKf%Yk}JZLa)M50Wk)%md0jpk#lehS}SO1|`fm5R)6_|)EFe!#Y$ z;G3uR9|6YPMqgCK+%+(pBMACNvbWW|98Y4AeWT4Pjs`5DSFOVBzQVhjDU+(LxE1e# zz+E<2Z*pb1QPUx=oee!?Sk~34EIZgT0hVE8C!1nwp@lGIK&HjpW!{RUm?kASTE_0AmLP`Q3s^uZf@nP#vVhSzxK?;C zVj*$lu~ZEgv)g2D<{0XP_Y#w~^ixI#shzDeX`?w^cqqczh@ZEZ4UtM|@~$`UL@H^$ zgxhYtJ?3}WRst{M7?4;bu$Qq+;N^_11YW^{mB0-wSPAT7!Ajtj_5}8aC-5qcG(D+h z3Cd-F!#w~2@m|fsBM?wB*Rb#e1S*=1EImaM%4QQw+ekv;T+7l9>f}r0O;N(TnUk<9 zsRcK)d9P!G*C8O1>sfdc0wTGAg}o3ck{elimn1}T6HEI^LL@h{^btkkQ<40FBl#q$ zr2vuK!Ul&SAd*{I_zD6dxs8QyAy6c@v-IOQNQh($OTr)#v2110G{zyC0u{|291Tub zdFZUcP&`VAtMn3)O4aDS)67LJkG%tUl;M5DJQoJCN4#nEh(gTF7!+_+DZFo4!$iyK z{AR_yZN7zmotV_IwxGQko8c|z%j2JS%sbGOl0_={_U<*4;F+5}Z3n5LYOi@6Xj3WC z`NOq;F&|>>6ZrO0%Itj~V+5S3V-?}uXMV^54&a*yfd2rD`2~IP0FZ2Yzc4fL_@v`n zR^xchCy$i*xcf_UJ(~P+U6{*@8}Mojx)0R*mH96e8ZSO+gR!i%TBLbDGk*&Yaw+~V zla}H%rB*az)S$cNyocquA=e?Fv*13S65^4^n%{6C(u{>wAGW8w|7M#M5WMdDmc>+= zSrx7KJM$UDYI5o)U@-`0)?#8;*afZyITyBnI)*Q*p;PEWb{EB6; zw8B)C%B%+swM}x^=y6eY6L_MKTuB{{QYN}+l}6J;VPk7M=D?FUXzIwxngwJgMy7t9mhsq8$5 z4#mR~G|fe`O@4T>snYRIcm05}G0h#w2^~rBrd0**#7Ol9Tzhgpm&jZ%bE3PHY~tmR$)5GZEME?fba&H zNQAAtCApxv1&fjjX0a&IK_y?w{3t9|@LCf|RWX%9hbcNg-X$&r*^zmSJcOo8`bsLQ zMUJ=8b-Pbxxyj0MLw9`@Jz+q2mor1t9?F+E>dxR-xH?dQ)L`mSGXL@1;?3i(>~Xd=EiR7k=Mw4ImWfumtoh27i1esucs{f;?Wd|Qj=-!nmDS-m`NdVq;UISM?;0xcEgq6n=CE#e_&M{%RkDe$$o)2jDj zt}V3b&_-cYj=Yb!b|XWk`4;k@82+3QIVCOWT-G8oy>g3pT$@2BC-Gulc>m;j2;wM+xF*5-x@#w-lu!(`w#LiQy?=JS4@GKHep`1d zuAM=wd)PEBsmhYyV0lWCzoWj6jyc|R{eTeZD2G3xG*W4g8+oSvZr+D_^1Uy|EP|CMiQW;2 zkpf*D_4`Up8%WuP@CvoY_D;0+S7WXQDO->xUyHdPWO9;v)QR{mP&*isfG8Am{ibHi1yPn2f|-;i1rn8 zDzxdOje5?I_pO*Sq0FR+WESNp@^;L6&{?7QCH+p!EugbU?n6m>_j1r2+2j5%=2>X+ zljK8@)RJ;v%qL)rxCAAK5_~ttvk05`4C)=y63$ga~tHdlge?jMR-5px@h1S z!VCSwm=|HSB0Lktt(dt{O&`bn3#yi+>h|W&Mwyw)HmUl1OmYAZI!emzYHn!=TitvT zlMTL;Y9ow2!0Z~zydFt~_tTgqu)Pp1J*EJyfzF(vP19L4?%&6viHzZ|@R8wjGt%rms#qm6|$&R9{4=7Q%$qLSmXUMV7VBm z6G^o-#%3rDbsnjqEF#)PN<*DSYWNIGc$;WcHq?=%jWt5|DGha=kl!)i+w1O^%8&>jozxD!s08M6IyrmjwGgc7q>cr*H4@5!M0o3mJ_Qpwmq-pHVZ+dm zLGoN8Ikkvr9C`$bL^;kj4IN#Ic|?x0%ZJW~Fe<5_xwS$0UNN)|TnZ0Rmhas2)nP26 zX&!nF^r=ZWK51%R-qmis%@mrIL!W>q4Y@u8xyGs(1I!si=_EgwO*axThQGoGm>^i3 zB*8ZiFqCyR0@*_(U8V4tBDn#MVUZ3DU_+-0P4gyYNhKiT;CdWMCjrA-*mKH|N<1tB7kG#%B=&(BO;B~Y3f;3 z9dy7(%LiecY0$ZDWArkl$|7N$Em@RDw~9#^bw&Z1uEv{^&kM23B#WZu3>o!CfUKyham}F7U@Rt46}8dG zR~bzC5Arh^hmF{?Xt3Vb-64#X#ym_-lbeOn$`AJwQ>VqF@Qn)%>THv(>N74f=DWagHr3@*-Ha*+UF^`ObRR2U@7{HQzQ1Iji+x?$p_YxrkasirH7g^@4) z!(!i3SsWYgZg-R&Y z(EiB{Ed^0NgMu_}9ao8HQ8&W)r}4&g8S(1#f{jf?&{*KuWX|GZ{TCN80*YDj_%aT2 zy`Bs>8>hyM&kZVOx<(4;j<8xsrM52@#!m*F#C2?{1VPu%3gd`Dr-L1va!U27B8 z>J>uFb#w|xw>ZVoX#%>995F8!Wrn*6No5+D#KMi3w*mA@MbDCSj>vi%G&$=V)LGVN zminH-)niZ?6nf|2>T*l{_rcZcEwu}Ui3Hg)lKqgSj#gn_t8A}p?P$RP6`db3zH-no zVw?d-ljK9_KvBb=i~$PQbmCDj#y5@@sD+0bAR*q9iov7^Jilsn1AOK4HF2t+^U+DI z+!eu|h>_sjk4TnLM7JKO65>>@-vlRho9p3uHu~@}PI7-3lB{j7lbZ8raG7XX{M0yf zmqb2U?CjdHHWNe0GQ7UrNOF=(XV)id7bGL}T@Yrk6vh7up; z7*WK9FrB=*4Q@|$QYqw6+k6qdZ#9(QRzmN~21ivrhsfN8kepq+)}jr~#Jutg)F2n~ zc~E9u2j&$pn-EU1+1o%G%R__^^X4LoUDC!h@?q(AbWi|~<2?FFFw#X{qKktZO)orj zDa&_o!j&;bbEWiL4j= zis;Ai6@--g0)TVVQ{4+TAYTWUK=l)tmq`_iI&*G%q&xRG22XV7PGGR(f_c4&{uUS` z52mA=yA@ed&XA>fzlZuks8yG9ZhE3y%u5;~#BM8)kquk7bJLCsM0OSU%uuB zlf)PqZ<7ib@~Y#`ngFA>;pYP7hoba@{1)V07U^;hMd?wBT&NR9ZcZCLU32;hWLt&q zNF^)hCNV@t5imv8r7)tTeyWYwl}xIUBeJ%_fJTsGP}K+~TnIjXw2Y3%OLAq*7De{erI(D;l_y|6*e%-QMHcp!6w*8M9=*V5S0q1A^&>ay0x$e^D`=^}!D5uwIXhC)YJ zd>LU;5vBhsQlE?Gdv><9b*|8<`#QqFk0()c5+fq{hHW}(W!YL~$ak|5_VBYK!wM8k}85sfph0vc!*(I6uVX@rS& zVyK}}rhrD692%vbg0rpA8{I}Hy!m>;Wx{L@k%jLs6`~eW;pYH-0J---FZ)yOZiWf4 z%l(*P3PBT=E@wKy6oxqj7cfMmBDap=*#y@!Tuty!hU*Bv$S?;vT(AxDyQhQu5gZ2o zi*wy53`{l`=O#1Qc5!YRgB=$Ku0nsulH!-J=Wgi1x+;abAqB**$Jw>*Vli)eET(;J zgI;Xed}7(`xL9N_h7D##>Bo62Qh^S<9Yu8}$gG0^)b$fkVDKyCykW+5h#9F)O7}P( zNQ@j2xCD;Szh_#OJbZ+WM@E(?`Xx+gs0?hEwo9e0&FU{u(x8$3H9)sDCSX_>qU130 zodB>A0So?uGA{fAUk{_UMD|~xqiKqh*$w7r77VoGNXvy1C!Q86F60*W&Y5btP{PZF zo$#93!TZ5RnUhZVJG=H?B$o{3ykr=O36~ZWi+KT%18Kp2#Cs1M@gks+7XbsrQwLfP zUM>RqLyLgR5q}z#M!&NSdR_#)f)I0vv=#wRT!id>4#UVrz*3J~1l)jdR^5o~A3#Pd z0_M#{!0pn+bjBtaFr`(1$lC)`2oaaEv8J+gZrx*Wk{9()TgI#Q@o9 zu(;8xZI|;l*izzL&hLRNC+W&buJMR+a)Wa68*)-~6ek-)PRf;&MaFl^$#&)BO>(m0 zC{CVaCq?w4!apLR^Iift8Kr<_2B+1UF*6{0koE+Z6TJs^e}&yCumdM(dE$isfRx?N zSR7erUmg+TD;!VxAT^PXb7Q!E#CYG>h!E%msE60!X)zx|zi$x6I&9u^(C&~iSjQJG zCyk{@fybKs6O0T|^fv6MtKs;Hj-dyu{4zXoUl`}|A>Cn^zl3gK-1>4oBIUL9xqL`U z2X!m0$DU(C;A#3?2l=FfEIz2}aL_XQ5DGX`S#&z+fLR_v;W$|sT@HBwRg+VVpmWjH zi>R&r)$zjFSTDALn?pq51wb!gg;jVZz+M8k0GJrz3V#ETPT+BX(*UxU!_6DAVYzwT z=aHj2vdvBN(GgbDyu%S&XEn{s5RjYZjpX4~SPa%Q*C8#Iled(UOC4p($?uhu=g7%F zkK)7|a`Lrua<$_Y<>W8Q$v?@-uww>KNjjXMa^08|tOO;&k~`eZj{V9PEzmeu$pG0? zkK(H`l%N9TMjX)za~sN|6VVyB&T3Gd{yLr^(dlK^zJaI19Vp4lpI}XEwaKuZYn0Pq zBdUgag*X?-vxCNz*V2ZYt&Lwfb6}Oh5v|q{{YphNXwb!7G%?-pT!)Z84tWtCLbqDG zoF>^v>hk!d2*y-e4$INRLpOD#G+K+=Um}90{9-kOVh1oi0Xmm+D|}V+?Uc1)$0}LE zJ8trLXy{-i{7MYEdvEHX8YB{uO)HN4g5of~47O6HUhbDCu4g_z(PNo9vo z=SymS7`0YXr-mqXZRCOw#h1e7vWy4H=_Q14Poc@6hDx!%)>bs{&>bJLomZ1VQDX~E z>{sIy3vS;qPNK64ONn3AxT=2DYTPo4`$Nqgyd0qw(HPoQlwY*W5~q=EIc^ifZjq`0 zY>0|PekBHNn~b6DpfR)&!(W4jur7a3oDF3h%JOc`GA*E`8QEGTLzhR@TP~Yb;Q;&!&6ZG|ygs1PWm10(QqidNSsW8Xtfg-=yYl;P3?`1RxVl$+L_=4i8Dw?jo8=FpxTk_ zb;5l*?NyASCM^pDMG;o1uW*^sQPmhK6d7Nr7+{S5R*Y{MWI_j9p&}D!Qq(oP(^>0p zt-}Kv8bs1@lzz^ozrDT93h(k!<am$0ZZe5XXvNAgoF&f0VJkwAc>Vu+Idar5?4ZY&nQ-m?X znBextIo&6?M;ONpNf?QRU#f_UI~5cTt&SB=_bGAnT*Vl>&3NzxTo%j15Yvc@gGrnL zO-vf>N71ne*<$O+YdGB@b?h+d4gs^E#S>vdI*(x#d&$SJv7*>J9qQp6*rj~OBk*t% zWZ;A_Us$}32-8A5W+Dp1I}x66K2RsZMgEhlfXEXi;#iIjK}K30EIxUpOdN+fE)+(H zAS$xQ!i=4iDvSbdqt>aWa2nT%4*DZNP!YvPhX_aa<_EETnCG zSlS?_S}}38OyKP4kQ22du91^;8d*%6h9pxYl$sQ#Cb`1u_+$u_2lkAc{X(@rCC;GI zn;M6vH4O@FH9h1~I!w2SxKJD!Rvg@7W`qJ1d#TaoB;S~O966sEN{R!EWV{_h#ZTg_ zP^=C#)7fEKh;!nMD*R;iU233BXK+)Rd*!8ua3pWaMd(u`#?nh#P<+|S7`qaoM9C!G zAd_@zs6Z&v1r!Sf%{dWq1R>PKE#(^XxkQGSOmZ^`AjUlD9oK(NgKdOYKO4iQfQ)fe z#9wTOa@LMsf&Xg232Q@Tpxko#kX5G(1rb%vOl003LXx)-JLsPJm)S1(SRVr3cA3Y6`nYLi#y?k5jaJ zwh%aiPmI{~)Fng4d$!yO7f;}$2`Kq*KVn80ii&=E@NtT+ZEFdi`^Sm=CeErDEohKfyVh8{jXc9&z6HDd*i{b5TeBkY=waPjh z+OzRNLMXQV_yCTC>k0T!@~l7QirkXRF>F~uKXeAoDLO9MLI4j1K(LAy{E)-2;=LQ8 zW-zsww3{Wo6F<*N_!@p>7@GO{kIv!^W$hCBIToLIah~}1w?^!BBk+B~zr~hNuq7(k zX+wl)!UwU_PbC))jWpzkEa`Wbw4?-(byz}Gy2w(+ zLtDu-P9pF0(}lxKq=J4f#7FiQLYt+6etw}9gf7H-CM@0Aa8fP({TkZe;se)j;pZI(XyJz{S71XfF)q9TXL4mpys>M|e)hw(AQ;v{Hm*l=+u%wh`j zy=1XcvV!aGa3_Mk&cUnc=RJJlMR#O(2sx`(S)e`D-JJdMSMl?ngf8qi#^Qr))6Yo^ zgD2ysP_hg0vs^;u>3sxsNNOd1x+1j+5G^+<08!*}h~TYeU7cakC{v;qO4E(tv?+16 zWDvDdn$othHm$|h&Psfcr49JGQbPLK&aj$(UXknv_&F@01G_)N@IkP+5m<2I14ut7 zFbw+e6Oe2NelC`fwl-gpkTxg}Nl4p_UhLCgo}gXADGbYJ;U`N%`Z<$fkT&nuN|v_Z zZj_KV(jJjemCXXAu1TgaoZ1MA+9mzI!+2Bqc*H*wA53!P|HU>CW*hi9TQp{68rDr| z>(`zFLj*&XLFF^7q{1mGH8hNMm?3o)hLxl;CF*NwO53^GlsK!Tl_^nF>hPK#ZW>k- z%9JRo6`0bVtoBN~vR3sdQ=+Jm*s%n_hE~+*i zr26;4>;OJ!m9*RE#RpJ1qN$(O6EqB}zwIzlf6oGJMhvu|p(T&{qbZ%H>(%(sysQ3h z0Y3^d&F$Iv*!9ob^smDvJUmU>G*jF8GcZxj#gsG;AG$0={n2dmJU%p)(4-(R8_+DH z{*uAbgpq;IbcuJ~>!)F0LG&HZkXDdE56z|7}#$ol>W7#Xc;^}PRE%?wV zOGB$&Pn*QK`1tXm-liJ53V$i`hvLP5!}wwNFnk**an#gN-=Zw0cXhN+$L3O9%k<{i zS+l2h&(54m7g2Q2oH4z*wZ5eb&lsIHEgW{V*H2gHg7nLnr%fZPqo}4sRgX(9l{HrV z*#C%ncQcY%%TZ5TL0RbNghi*sWY2OvWK=H6d^KZ8R7nak9p`t1k!TJSs++eRwW5|B zB4SdlZeG*a(h(NE9;Z6-j8(}{z{VzEByCw8HrqNHqyU9VCS851jlg%|N?^-~u2Lo6 z2;J3sPHT6o#0_{Ab*tq_7Kr32Ju2~>Ml1Pi_-e`sjg@*UV+f8$fV~w>fsA(?}_I zuANqz{<3rHB~2TfPd#PDDO=O$b#(Uk< z=goJnbL?_Awa$BTYqk3u=TLXe2FIi%;V>OTb`80IYqvAj-Q;}Yl5A((+s>|q_+GiZ ztNMOt)-GpTlXFD2v(5bnGJeB(yt~HP`GsR@Vuj-*uXACib5y7M)P_^1y1(oB(mA@* zdDDgNjn33RIHq{7aPMtMpK|J^D<9pm<&G&^-D4Z4Po2N%3TJVXbIvsP=A}+=lXF!Q zeYZ|?pZ2>&+m^iC=$y6DS@p#qr%s>Y?s9K(WO%2}KgYe<-R+o|ICbfw`ICLqr%#$6 zSX2<`UhFv8>zFtq@Cq)$SUPq7q7Uag%RX{GeTh3885vsR>|W>`+C)Wsmh)3F&AIWC z?7JP~M_lPVX4m)5HE%!s*p{tZdK^HM=YOr z?dQ(Mj~rRY-amEeO!t?&oohdGK4iL^+#BXCM}fO*r_WpEzQdV%pY!0w+0N??_dNsj9? z;qC*m)k19C>R#y@aQtw!b4vQ+vljO6-{;!lXxm*nYv1|qO-tq$g*QxHIJ>{%>dV{* zXBJHMUo}7(soAl`Jz~e7uD;B5#*?mZFLsV|bhy3~b6i_5!LfMhhtF|c(ARtYJqs&P z@jiDYZFTj|aSh9H^~`Zy?r;xxU4YuSajLtzD1ZGKm%9FT@m2^P6b*qZP7=Mq8po*R3)+p*j;EwA2np&=)OLD#VwF6>eNi~n zvx!gWX=`o?AvzsqMN8*6BORx!mJ1v@6XHX3#DcC(^*C-}U6Wke<_8_4PLGhs81lKw z#?d(XL*X0vkpknPWZvUd7w*)T+-sXV@wV>@Jf7Z(M{!|-eDYeJP8K;@&+H3zOUn$( z$NKav)ZrCOL1FZ60QK`PdRDJ8_P|FS+*LtOEa+?Y(H8KLZ8&X$+}KSf(-Rgrj;W)0 zbuW1bk9RT;YyY%kybc@m(5K66@L5s%tDSY_9o_uQtC3v}L<&uW{oUQ{+4+IMnZ8N$ zs~ac#3Ug-VG_uym&`7yRZ8ToSV971mO zdzSI2#X=2p zv9p`6d(y>zP=4m#qbS;|w20-t1XagW3YOhu+_9i&AtoKK!ZoZaRFoeSZK6mQZJ@Bz z5!A(?q?SEOZZ9b57Y8m^Xc;VBoB@g!Thhf$P}K6%MJcFdOq~Y`TT6jG3Ngs?+R5qw4$fb)Sh0Rk` zsp2kGSd*e!6}JaeIj6Qsaknb&b)cjLcY!*UGX^$IANw`mx-WEvHUY5}zpa;RZg|B!NzDe5Uu(g%M~*!zn5SaJWOFb(~d z)RG8F#vQG&Y(-60+-ik2Dr&jnu2Wc#qBbb*4uxH*sB0AW#|k^3sDp}o8J0Pu*M6X= zA1mr0sAl%deG1!;uxH_vJSvL!e}8M-}xBD5>vLP*NW) zoJf5sprk$@D5)y+F|Mb#>b`gO^rmMEzeidw0tRzb|~rvMg3h--zusV)m`d4Pf_bRoLm~P0; zR8*IuzNe^%6!oN{UQyJ0iu${v9-3ij{!&rlnFh91QCBMJAR4B$`Jak%q5F_npQ47N zBazrGiu$*rGSRt6?o34m6t!1T4=8E~x*i!LLs8j^>QPk1S%%zNMO~z*cNFD9wL2LhB(|y2pe|L^)rxvwQJ*QQzRHO4NVP#_))>@QMJ=c`u;YpvwaCD_6*acb=u56w z)Dck9z868A&b`WO3VTmspDF4~P-vv+hfb|G^vzXNgQC_c>T*ThuBay!^^v0D8w`Ed zE9$49@;SA;K}q`#De7^>J*u$pKuP;j8jTnuKuIiHVUrbB0_s$x5iiOVwphuXt*~`U z?jl89rKle(>M2Eir>HY<$sw&TR8)zgYC%c+&QaJ!prloM6?M0wo>tT`MJ3{5M#dPU zD7+&<$5t!qLPcExDw}hDy`p}sxKAtU6GbIpD3&qOK*`jy6g6H^XDX^jQK98VjD4V_ zH||#0uRuv3JfXPHDC}j0{XtQG2IXVxKUdUuib_1&;HE2TjG|6g)O1A^D{3Jqnaf&G z(yEI<$^71`s3#TmDkvG_4+{HGQ7%kdBsUe5)G`UwIJUk}VRIE#t+>k-)}pAeq6R@p zPwr9J5kR0d{EN*g$g@c$*ojax02hcsOuDU zyP|%psDCLc{#?W6R8TT+6BIQK)T!*XfWj&jwMcQBKuM3cE2>X%cYxBprl{{L?yaC? z+&dNZYsGyIl#KhTqTW>8k3q?}pDXGc#dS3q){h4zOaBao%~n*EqRs{-^s?Z1SR9Xq`1FV+>aFYnWDZ@ z+{_juZ!;BDsi+l-S_?{A(5wM}m@mo}#Ea zMd7pqJ?>70-KeMsL5&mCDqc|3CyGi68Qhtmd@NVjX5?rf&Y)%@knz5{ycn7MCNj+)5xzEoEgl`!nfoWDy&Fh$dE3#Mq!5(_L#yx zRoE8_D{>fd=YW!F&}J2x?p}qxuCTWh_LaiERTy0f%ebv7AG;NHjl%9#*!>F2X`{n0 z<>$NO*m(x6*fgLck)O+T(jk2G`rDYF>wx<3$1*H&5Z~`0tqAf85IXNgBKo!rJhe5F712{o2v%n!db)wo-4;Ti4xa%aN%)P# zqLQFHDiN7`fY3dZ2=Xity4w*!J_17bGa`rs3DDh(2r^10$tg>lX9Gz=>co)95|F+q zE{LOuu59fhPL$<0wn5s>`~$>IB$2;zh6q1M~ zuN)ks)T{@P0A$`7BHN)Mfst_)-XNrZkN{*T&(WWpo`@nYSI2&+n;0#G(0o#W52_IK zBX?eO;@|pt?fl-!b*<*JZfAIwqT9N64S)GN|Ox^EwQs9xeKF zKV+za;*$@vUqJN}juMHV*L+06#DjU*iL$0tPwAy!yrH~z0_5~MQV4!Vu?0oD^hfU_A z4e>B$tg{D;i$v4^a5^2w#(tY#+Ha#y$Sf|(>Bj4-a&pCq_@XJsDNQ-k3uYG06iu`d z(Dcl@B`lv)KZ$YrNjMxW*0C>5(T~u_lG6_*iN)f>Lt-)X;{{@| zB9F{ONsxf`JTK274j_It8LQPcK|^LO6Co zz7sq85C>gPpi7>AZ*0vg&PUZ!HdJ-BhC4##cr{u_Xh|{3U2!U#d*yT6#gM0V9d!_b z%sQQ~z&!I|2n@tH@gNqipKB0{#itiABkGI-15pPNFtFZq@#3`x?X?W-Lxx{C88g} zXUOzqeXM8XhfJGMl;<;j@}}n&%`BQRYvy#HZ+b4V@^guumzz7Iun<^5fiAsrNTov# zpShTY%2{!o!+b4ZjQ-YNpU7Qlz8)u`R5YT5|wYP_9A#pU?%iCSBYqRII+W2B7n9jivs`i=ENHOhRY zN&Ls~cfDO-aZYOwjz>E`Wa#jLSV3Q=52b6Zp>%C~q0b})vN$ETcv?QK9z{MRx6>C1 z6UB0cv@a#{A-TQ2NSG*=n_-tb5KFGep6)}j|P zHL2tEnmIA$FoQOINMB_vxq>`fK32q(E3oP7h$&~c@4}dJ^v3wehwR%KORg~2R&IM^ z%H`Y2?LbVqLYv$}G3931%I(>ha+sH!K9rBQV#>|3`R`aPx#`hE2kHAZrd)x|FG=G} zhJfUHKOIMYm_DR0E2i8`TRoT(Q*M^6+~&lRn~@vUAyB%NG3BC%K$2S#Q*OG=e;qO9 zifrj#7)x$uzAYa+W6Djp`DJfRxguM69Ec@XlxNGwLowx|J6`h3voYn0a=}s`l6xzb z+^jrXevieJv$ykaW6I62`6cNzWd;*m|7O|CBP*6%UT&V*fs~IavE>TQ86mkjvE^o% z9ZhnTvE^o&8#>9Yh$)vBRd6KN5nC>*;7IPm*mAUyOnpdhXH2>LTyuv-a(iRT6bz&?NV4Ot}JF0!BV0_f~AV>DGK4i!E1VmHRfPT%oNzlCmRq5GBX` z!s%AOWW|y=b@dL5tq9%Y`|6S_e)%@GT-1b(>`O8(vvs4n{^b`$O*~01E2dmw)D`)q7ETRnIyw%jbMUyj9;i=G%$y5Gi@E40q9k}NmKW&N9J zn}=n^mW#Tupme9ilq<@!`ejaRIoo(t8Cx#uLXXm25nHavTD~1IvmYZ(%%UiMKW?JjZvDk7^{neZf z)IZ2=z7q!Ev&n&Z9j&ky$G%SA1~_`v$+ zCOnJvu#|D)N0*Bl&z}T7>W5Os_}1m3<{Q=Vcry^>s&#$HhM_NN{QU_Sxj!~E$zNSx z)V!EhieLSSRSxTV1$j~a^TKfFPw^C_o-Xb0!a89|-&$T3(9Xk8mbAFp527*a9Lr@Hy;~uC= zA81Sg51ixg?D`eK{hPG7@XW z;(xNEZ8u~G8nU(HBS=x+p(7}6xeciQm|La{n|Ae05W8e;-c^~c^}qk=@$oP?HH2WbZXPyZDP&^Ubm-<9-KmKk8{UiL{k_)@s zWY55gY|WJMB(me3TcM@2wES=~Sgn7M5kA{hDxgYRrV)R%;y;d%}Jv_ppmP}c^7FDt>p#@p^E z)u_MQUksPgN}dvAr!O5 zPyP=5o1^rH_kVH+!18Et@RMt)TcA@IQ5TT&NU82xRas`CWl*!;DX!8~9T1 z&j%?7Tt?duT|BgHcmJOqgIomRe-4(UApMi^y@z*Gc_c|AA(}PVm+gfj52;~GpeEoQ zh)4Ztg*(}==t9aS^)*n>Mwn5KhH-;slLpfUQU>d_fm&^_-aSz39;{Cqs7*pX;JvH? zP9i*{|FNXA&;6LZ6QQ7s9Th>?{^CjKI6Q;3DOAtU6c6VeI=t)N2^1IRYlADYp`2t+ zhYTv-X@i>^U>V8=B{7o0*@ytNdxwH@L%4@>JMs zC_#No>PJ*I9L*p$9vN@de1hu%YM}PXn1Rm+11W>|P(d3`Gpf<{FT?K+j&>tskxIS& z&E##r03v%keMpu)UL3U`%8j8XT88u(9JrR+0~Hs+Tx`Sf3%=~DZYCJB4gf}x{+R@$ zRZ`cbRL1ep3*<-~>t>3zgW|~i6|3FKxyj+(NRVaF_;*}p#M*vnM@dM`zr@8NUw^QKjFZANC;#na(Yw^OHOOT#62r zyVg%0lnvWxZw=Y*L26UnZ*G4PP313+!2v2uG?i4;`$b&u7jeB`MD_l#uHX?$WYCCT zH)(LlfO~L(Hc+k&E^rUlB@L7#PSRm>Z@GIn_3l+7Bzp0$S*!+y(?*){G(fAbuglkh z*IV|5d_AGn*tQhv@wId`_xAeQx_W%Zt_ELoxDV$Q@;k(A@z&$@md&d}K6y^y{~oWi ztFOInldqNEM{~kxw7tSGL-?lR{Ibl=jF zY6)+#gg0Bl-Ij2(CA`uS{@l6#md~Gxr1uX?*tfN(an4H-{-+lH`nVL#_TI8((`HNf;U`{OviP)@Qm?p4 z9I9DUdgnuyaQ}y;%W_Ql-)aeOv4l5U!g-rFJ#uFGkE-tY!8xseopGJWwS>3-s`7^Q zru4U2!Y$Bu`5h7euCj!i)9MDy{FRpQ2ZNYzvr!3bTsw$ zJH#EL`8QXOUYl2Z_R7>(FMC34{<&~si~px@uiyLE`FDI)^~RNFtZ+FkVTUD*XJ?}1 zFQ|OxuRnVuqvY0{j@o7G-x~eJ&>x5ghxU~BpS3>stj%}+YHPySyPg|3n)(Yj+Uxk| zGPYR4mwt1@#4Q!ir~Y`X@cqK`!OCrxaKA;q;@0tNvcp@eu1c=`)7pD}cItME{M8o^ zdHmYX3(J4_fdi~tbS+MzJ(VLJ(_xBJo4+h<^Jt&rgs$l)RaFkcmE$B+`e@4l4G4Oq+a8{?KIb;!zOOA=sR@o zha>iy^xaUqZ12OfewVs)0qpyI?&B|Cer59ogGW=Ze3ruAo8I~SC-(%-cp>#iZ$tmD z3l?v-=-WTCXxTj%Mfl%elso6m+Lu!Iekb+4GwiN^so2fSY|M8Ie(ssQNm-{q zpZfC;kpI#Ra~&4_$x@HfmuTVRWJCTK`iz;C5q4Vmc+ibM2A^kvK#Z_1uEKcbQM5dV zBJxEY@<}7wXNj{aeSwo7R_U9%e*OB5_%3M0S)cgr?G53(yC>9!GnhlIQ}IsNmUUBC z(MiV5J)7p{gV`7E49#5~>co+kEeJOEw5*wnH;wkShY_#KH+8jdYE8ijPo>DQS)=!;?}-)-98_+Yqm5JLwU~1S)|t ze`S48ryJ@TgQ$0LgsJZwMr$8>Qk!%v$P4`hU^=y*RZh688VPm59i}xr*f)x7Y zX9&5qcrC8zeIub@bxl>UN>3?RhBp9~3J04IEL&1n(GV0)JyahIE)*^fG*;I)*4Eb4 zH3UoXYFM(X(qG>YtgEZ3!?TENC?63{M|g|4dE1bfrX9z3B9%$J7GIc)D=LmyTd_1) z*|4lO*wk3Pu)1bRwGFSRE)6ct(~XLVGhC=!XMu}!J0ozdKd>-Z3U65wl{ogi#l>X6 zYw;F_zpl=|tg%QW#KfV=9g_h~iLn@Eh%qE412H`0tKh|kuSzN!s{C+!X|S%Tx~AHw zA7;3)0Q<^h`I+IoeB51dlD4YFafXN4B{pr+BNAR(H^0Piyh$49Qp52k*iX{3f|!*6 z^&5USNiQv#kIEu*Zi0a>HGFP@{Uois+yn#l<9TW1>zscX`QieyWy^#{G8GN_^*otS zQPcrvj4t@tR%SNfOLG&Y#aQ94b>3sC&B9HZbue4<>hi(`B7 z^eEr!IN-b}=NtHp=~2$t;UavZyszW=*dB*}Q6-?WBqtxGplJ)y#N)MuDPQ6q0+(!k zz+WAxDYZ6k1sfGZ0VTRs3JB=tD47krQ(!mV428@29}G_(LkO!H5$klW1@iq;fn?e#n@J?%n+wV12aW- zG*BeQM+39OglHgFOpFHVf(?yz)nZaK8boEN4T{OpXbJk3dNjD8I6a!t;4cwpL_<<; zN;FtiQQcUNGlpqQRMjoGs1d`t$caWPgJlgRb<~+Ph-uNRx{CSbikBPBV-qplmW#Y- z21bO&`f_6AM>Fb!RTY7n%9?6X5Y50?Qs02%>&t_pFq(sIb#YKkj|KxZRaJg5BO0s? z)>YJ$ikZ=9JsVgQ4btK6l{JBdVpcR>mM6}%Ao*gp1t}17EJ&f4YeA-qvn(funo(@12YzFc;4c13szfKQQc4l(yU7PuVKIPtUvto6?iHr9$~EO2SCGKh)Yvlcj5T`HclV5Fgx zW@XP?7+gig3l@~>v^Z)3IsWe~Ak2Ev0#!Fwkskt;L4Tci$--P%+f-Vy7_T}IFWWg) zjg<`*wUx`nD=~Q7B44#LYAexFU$f)EYRqKC>vl$-_`My>7jM|X0`aCDEEI3q!Rg`; zc5nucagVN5$o)+5M>|*~-m!zT#JhGdSG;Ej^~U=r3x|7>NI&zwh3&7ct*i+68!FJF zd|=_#)+~YZKD3}PU+)7yvT(}q_|KnhSRr1k8SQ{F?9Ts-4Vxi8v0*cD+O0Kik@%|( znWjo6^hR-Sa4}D(1^D8g#|AUR@UOEpJ>CYg4K=U zOAAihWA-&VZH8Ic`;@TMKO!55~Xpy)s209CG zu!~O3Ux~u?V}$&Hg@G5#*98}e8!RwgiUcdgjaHb4o4pnkLpIhjZnB_qDw!{SXu<1) zwf;JP17hs6aBzty_FFM@yW(aG$fKTYuRpS~>d@xJEfzGml+ar(C|U~I!CkS?Tyf9> zH_UC|)!Jpr@6v4r`*wD4gq z%^08?GoxSGnLNpm-23cYV*(w-YnG#{2K1^abWr@-&ZX)619mtv{eRHT^oxh=V2OCx z4hF<;>|m*Q#1005>MMDGikOfFHT>xGo`7opMZgCRJTn0-p(zlsP=>NhMiLr zXz*8xH|-3)KM`-)S>?f{euMo73%fGVP**A5v7+_m6}aAb*9v1~5bs$*oRlN}WC80~ z?fX_#s{OzUliClhAgTSx0#;$gOKg$r=4yK5Z!E=xIk>bzY>maKtqU#|{joTxfVE;< zEKV(!;KcS=9G-byYT;A`ODiy5^7QdC3vbDiC1QsKtMXS=iUA9V3Lj{!(2r*m?!XZ2(i_4j_b9M9aq?6=9N=m1 z#4XLvmQYiBt4KU!9X&7L>7*m%5~r-i-75`&jW~@iF^6uhxjiy4ZLtrJpLsghH1~m( zN30Z&4CK?Yd%CA{6%JJbuaJ0Nj~*&ofp}S9hWq-uI>A1Z*glU6&!*Vfo;4fzJkG?q zU1RY|6%X#d;_$XGZuTY4qX<(x?Y&K_VIv zOSW^hNGu^vp(oVcwIS5g5jsEAArb>YoVrrv>7CYFYg&K!}H;w}r2Q#f_^e4_EP za$04t2RZC~q@5h?TsjX-xXa0vd>hX2FQJRtczNEvijv~7hhKeJ5m?y7(+G73?vhx{ zU{!6yve@w|YnBMv1zHqRkJDJC->5Fw;67uYVH%sbhCfR>nX>N0=~Tx(ts6z+461V=H;KfVL~6M6LKbVIGUB9rOvkzjPeoh~ zwVyz9ck`hOBj1*D4Xu1q3G zo;U}rny}iWv~n_U5ou^h8m_+!w7j_+Cp!vH9l=YJhSS@fDKqud7FHw;Z{1LfeGs8O z=v#%h=V`cR9L~Z`f=gDhW2nPP(vl8eMShS)m~@!kC<~yuuWNmK3vSvc9sV9flD`id zhUOdunNH*+*RUC9LZhc|4R(UIBIRL46c#9RI&4l1oAu#DssiY{`og_p822M6cLc$l zP01#Ca7!F662s>Fd=fl9oO`ulbE#MJx`y*c4%(z3hMh&5TC!Zjxz!Jww-s6Rxul&k zeKh8wd0Qc*X$`Pq1ZAWJL>jV_{gNIvuBjJA{wXe(;X^6YGL$cd4p+Ye{g`&B|P;%dkAi4WZ5OLh)4p03a zAlM^A^XO~|O(QW)`wHKQM8@F|Ofh@`lS}A=x=JMPeqZ`hhW32HA>Hugt0*|6d`Wd_ zQz}`V&vaoZ}M$=?>1^6CPUQ&nKKrH{{B})EDL!P-J`N>@zqnTsi z?oc&Hc;PM;;RPcCF-7tV53~H$QeJ<1GRJxGeHG_L6-O5k$uIts;~mC#TshVX>TwyH z{4OOkq_253uAdr2O7cgG#-j*2LT%`?|4c=NhSt?Bl0PO|^YpZ@UIWfwDCG96>cUvP zUL=1)LG+)jBl*}6s34WKHB=GZ$zS)A&W$4Z8>w)UNd7mgL-k{kL|$4yyeGm&1?3PqXQys+z7y$b_%{nWWy`7Kx9xcXS|L?Gu%XF;7fRsH^jn) zDpqTjE)ltD-#KTX&&h0A#cxwiJMN?yBD1$|6FQ_c;i90H+0otBxumnTwg)Hrra4?> zg&T1K9lgPgeLc-0&FP|2O9BQl9dj|3lDWn>XH%qUE-L4AK$zo*v^W=)p*M3)Al%d2 z)g#j4UH=A)jhN&4Y#*lR0n-9qxXWUP-nQBrgCX+S2aA6&1iu3(n~mz z;Yl)$`t>5s!>LRWE_2S)l3e5^6DHDzxyTpfqpJG(A}ei%>j?Q~%?7ezri&aZGWBiv zBCSaG4F(OIPAt-9xyaA%%nm(#ri)yjl-Wn+pElb?<)4z--6zuKxTspC3l}AmHrI6y zQgM~z{oBI8gdqgCCH`*9xLQ&q#`}*9N?#H9x=_2&OeKXpr&q|m^>nn z`YIi07bB)qY3RW=F=7Ub)37mO=0e28{xPk!E4&ItJe0c3vw?9(bcslJBBt9lV(d-8 zXs|)CjL7CD=~)-rBu1P;3N%l1&*~O2g6GfMD9|fL6j78NV(53s4h>GMQ4`6eal|Z2 zV@MM+*;G6w;($E0bCZfbfL<-4`d_!1-rVk#X zU`K@?U275rjJ`pH1j8-?V5HBG!rlNNfii)e07O*QW4?g<|Ddr#T2ISIrADf_|4*@D z1FI0nIZul*pkjpG>?5Z1$!6W|Wmp9fn>TY+!Tcgvw;2A}yjfP6%F5t;EZ7}C&NT!I5`dscUW}e+WX4g{##4#ZM)rOTdgQ$X_idhvADRjom1N|CZ@|?w zs=cSKMw3n&xhfArBb!LRZ8^!0+y;E)x-QV#NID>5WGB&XF=8EB-U5&rq$Go>tkWTo zSVOW}Bfb;=0~t*tog-S%rBF;32e=Y+G9@~)M}X9{FuoK2fe198#g%5Dp`segRuzQ=4tLYnungr^YjQT9Opyad0N*uk??{nP0P+Wc~i}$fOx??DgFYUEV7=kd@ijdjSu#-YXq6Iq{8a-B4Cm)x5Ec7AS;w4~tE5GR#oMg zY1dFbuH{f61RLpjIN|+112ZViQjE3O2u^8T$7vNoEV!||tCOxpz1Oqk9AL0Y4jy#VtgN)B{d`>7dXKWwB2BvVckF|5O}X?%1{P={n@sk;?6?o+o19{D z$IFhZkQq&53Bwl#UwB{RymC|;fXqI{qIM;2=L8nQssD7m&RX8a_lRy(gnxj@7(l8S zPa`DLCI#64gpmh5Gc^@iHcF51e(e~8bMiE8Jib{C9mkVF?M|v0lYttP?tRj^7r0UH zpK|ixjv!slp%gew&4Q-x^?l9jyHN@Zx&hXQ&I^aIwur)DEXmhL)$(~KU4x~FY)Zm= z)JZ9uJSI)WsOcx><6vrxl-*FMpJY!i{M6HLKR5+j)nfl+2#hU9D}x`z~h)lVj8+ zQTVD8=c zP9$r_)WQW*yaO&;>C!u8zAO;ZQ-d7PWJ}-40kX$WOV!?898N-5z99h66%3^S!dnLr zzLLY#ftQulqt%|H18VbWwTn@vn30X%dANvoAT_v&UGL1Z!`zm!b#XOa05CHaJ;1z!Rp1q z${K8@P4}LrRZKS=l+CL~RCfM8dP+&I(R#--Oob<5zR31YV3d4ThH}s^F&FvVQN;pgf*MMb-)uA3)q{16u1`olKQ5WjQL*o^+=#Q&C_=yF)nJuzX1UZ<6 zwqsP2GVMWhLp~rKrR{XuI+w`{B(Y#4`D>+i3$R^);tF=~mlMCIL*;H$fz?+)E zK!Y(jHQMi)^GAFqlFP@wgoZcC={-kl!I4|CwVccPMW*cRn&iqDYzVfs$tlZ979jt@ zEUfh!xoKvc>VN4bTzN$ptC(S$*0g9mtr6Ljyth?*AEubHP*Gim+Z4brgHf8nRr%1_ zA?+v3K7j8;GGA)I@FlaWMl7i6&|YNO*YV9m)-eznyXcEYK57~m><|TQ!|UzT&Mz|D z(WSei71OEp>#>F`yxk1Zg3b9Aoh7`KF1+V)VbOw31nXhJBoeF%_ZgDCESUmH6WGV1 z=#gnsWU?i!?Sv_sMh1^vjuOvucwf@~rp$X;H*Y>>9w;HyMd5u#FSCyB(sl!TReKyx zPS5PUpsc4IHxN2D$*Ie0+WVMcdPO$r_P(xN1HGdXu~&`#swfUM$#9T#(2&95A7g=6FRyv)$+?JEGa2#Sk4@4r~a2Y|<}uQ-@3GixO4{aTxiR5iAK zlCnn*=}SbV)9Z^n7qd{=(#FOab0V2VIb@DwRP*srei{d;v%^p>rOmyrgHo7z;Do`b@L8DRHzWTZFU%bphd>%F2sr7Hu*pCyttaso8CY zcf8Z$Ho`ZW=0{G3((2t62hiI=wsN*5D8}o~p0Mg-UI6-x>_# zoQOE>X3FFhY=@h!To$*7Hc(Ms$xxDWTu)04X6oFn?vA6S?GzHz3w#et`3PxQjI%mg zYjMlkdljSEh`YMGFF^1A3HMdfyVbl`$6XA2aaq>WqT_Yk9Is)`wWOy3_l*5?>Ibf{ zSkFqQ^n@*I-tWh4N5(Xbd_XnZA|Yo-OGLK!j<^+bjT-ecR>~C}_ophzBYdOOdw>}< zkhYK$kdL1;LN%*J&2{c%jD}Es==%i&)CgMS?B^~9(q;8I$N}o`W!HuWkI_5c&1e=n zy`I&|0)I~rja~O}Y58L2*~pRi-ndJUAx#@Z{=McGPRYJ(ao?&AQHZN`xxLjxwz8-r)T0NMrQc=xC+4DOdgVj_l3AM2xcLO+aTVfaTg)vi=;p!B$fA=n8};x@9G;RH>}_eLnZwI*2N5F|e%KCgWYZD_@=VJWyv}kr za+1Mck#!bL+eJCoet>UYT_H!X5WwFMNGmkt0~wRra0Ycj8J9vWWL`34$RSeZZNvcQ zUj~PKA~^>zo^WiiQ-QK_@{MHEaAUA@4L12ovN>7q{xq$|V3YHh4V9e+NRE?nXwn5v zzri5~Ne&Iy;M@d2)96Yxs@@oHMB|#XSzi~@Yfi%3C5WomoP^I2Flr75+*FiNx6r-M zBn%BuEuyy|qNhL;NBKURkOxrKp&rcqdiqe?pG&9(C~J@cpHJul=*{%EoEOI25j7}b z8-OfSgk}Re$`Ds0X**RTi2g3&7Kmn(O%j*a(k~`F3wRRMR06Ofv>tmZye}nu2zUy? zLE0uzO=lFfx9HR8mlMznV{!>@po=U9e!elCe5g z``H^&mr=iIL6n>0>!{Be{AKPX?x9+)J%VrUC8*M~5Wx2dq+WvRxQuxpuG7Hz+Tc({ zmz;yNd_*%gqn)RL#j&a0OBw1}GB!|OtZ6e1Hnji~`x?n!Y_O?4FdK2g21qqu#^J7m zCyJVOxxuCuU}E2f1(giyFAUReHw39oNWrhMkbx9lG&s~AB!_MQf^*E^P-BoBzTc~N zTk$|Sx6~*kyP4L~%w5}fLxx(2lsO+>gL2G6WNc~`l4I+STMQX$BT|O_$$jg6)cet5 zK9pT%2vWO|f(MO@8^Z&488Xy}q)Zpd=zago2Adj@Wb6Iy=LUxwkL2hc7z%(rK#fLn zcuCP*Cng#))R3f%-dis;IMjF|dNZD}mR-mYq^2YV=_(-OOyi2d$l?`-AT=zLAeYED z7$Xe9`wT&9X;P4;SjMK;N(Bll!%dU0t{a z4hhd#+BKwa+G=iXHFj)`Tj+!mPp7fKjOySyjrLG_N0vjgC!4lUWqInuyl@~q<1a*I z_IZ}_wk$f~r2>1ZCXkY`*lE_vcT0t5;`OLp*~8ahu1XVO&m@{`cWcADt7)^MXEGU! zgZVV=R1nFO1<&b3PUb6n&6ATdAGa+_8XFq0lSCx=msZr{j%7I(L7gIwWjqDPAU~wN zvpd{Jo3K37>k!4$g?k&GBKDl8kCs6_vq=^9fQHu#&sk(A?j9SlJoB=^97-|I!yixa zkK@L*{@Tg;{wh4gQYw;0-7*Bu@TkSOQMc0V3*lK+i47?Fs*V`-V{(ntv#O3ZpD6Sv zgt|Pv4QsH`ta7Os_0!R)GuZbffn{RUZ3M*Y0FJU4bvpsr3dR!HEkEiG0)~hZd;R(vog9`$Q!_Xal6%y@tp@U5OgMAfJVebA)R zz`}&Tq@uE-p(0o>(nmf1cS?o}WYiOsQS7hNYs#o26n1#ZI-0RxVAPYGfM-7HVmGFp zqn;vQBRY}DawSXltw+X4NO=^#f_22JQG6cpR#9i1vQ9i_#Q!pUk)PD z|7B1RY%*5UelnK6J5cG8<~Uk^4wfhSwaSh*8hB9L?VT+h!m)b6L`3lDTS1nzceY~5 z*s+Fs;6l$Dp3H0#j`o)zh1=%z6u%sj&C?v7A34@8M`EXwgyr?H@}gFLd?^XD|I| zt|516_;tI6OmW~h$&o9j-!3Jiqz>v*M-y}@F=IKzW}i-&qTJVl%rdA+(b(#qKG^n=m<4;hPz{_zuZw0QGGe7 z7PBadQ5tfOk#PKh%ylkC@G;iRv?To%cs7eOLIlOJ=X4 z_lbvEWt)_ipa#50id^BZE}lbWIRa_W$MNAh^y7JN0Qv|)8otC?A0p%m@3>^%XCUT~ zLpouK4=l$WNmUS^4v1EtiVp#Qm5SU?QqLolNKy|^Hl*m(bjkda!8|x0%o0+e!PJj5yDP&H7oJDw}!Z#BhBtH>OiNv|kG18}uE?*z45n{f+ zi8_GI%BwMOIF3=DaUSwKhkB;X2&{pq<8NaioOd>$d%??F4dQhWbBTFYA3{{V<(Gi? z1aR?vh*wSi{R4%j?Ach(h-^T2d`W`=SvS8Y)En+V_x7)esJX?6GQatJ9OK(e8|EBe zO#xUBaAv$rRdeJaZ8toRPv99SzaB;&l=h(?!7=y6M}a;IR4kzCT8_|e1RO&h?~%8t zO44H$#W#Y%wK_n}gi2jQVw5v#Kls(FrlVLCZ$(V0pIn6ZmULsYC%w2`II8qCy31~ZhVfulcN2$a zgpLq%ABXbdzd^%?l-2)$NJmX79v+W+N5rW*5iA0+6o{$@`L#fnK=B|et`2Q5OcRdt zS@);V4fn&c4G!x1hQX1=eTcOOdIA@McnHKML}#VvqmBF+;Cm{SY{*{&lc*R1hd~T& z7vgq99`zyc48Su1{>B6rzYdTKtkx(N!!o+@p@wL=`^9mE<7?P?7ZRpPv16~VP6%iN zc?DZN6;{`AneFCWIqHPcOIPIjqfiyCHEpuUb-gz@Xik4r=^cPx)I;dKf%T&7rP{r^ z+G@;mXgY8cvzH;+NJ2&iXaEq7pRvTJP`#h@?VVE()q_+8e&!$=s$~wO;C8COYxM_C zTIKbEnh?i zM#RAD;2wt=&+A#CPNVpr04Js{$Qez0mr$1D7Zw$XbgV3}3#jw9*;$RZx%( zo>Bknrvl_AG95%Oxb;CDv8S^r+>ZA6iK7-0W4Nj2Hll5Ct@id+-0zhllicsMfIuo6A-sc<+YaKVL|g&l2_mis z@g5NeKv2gSz$Kgb50H;#4lvHX109r?IM;oWa=VJ>WCP(LFA4Hg;`S_{Y0Ku!&x$xw zopgoogLomN9ebBx{FALY)k%GubB`ulbDEQ;;*Lc|YffkO7RrmQQ6LSeeKc!d3GL%p z`?aK<8}w+WY|xsR-P^QET7*G{8q!(Rj^bQi#E9_f^e4s~^CUN2a?Ohkj$-PVt$}>^mdu#T=2JVkm2F!PWUDF><-X%BNfz%Cio-tn3nW(1E^c`4DqqjS)5~c0E-OYV1YsBb3*-Dd4H#XXjzS~xeq!#xby2a=fwqlAT`E5*I zW&0{IdbrKaxSQP7(<*I!*zQVtilnk@wHUp`=0&V<@GYs5X0U%@V^fu;r=3q7VezPI@-Hos2DTJB*cx@ zoWSH0GjX!z=_lqEh%slJm|G~uOgS+ZmQOt~w?5p{*4z>jV{-nh3{0H%Uxi?4?tc}6 z!Fm5x2zKY6Sg5wSBh-f})tG`4%cw#rJc&$KM^}%2?@x@GequqaL#}UDf-_8l=89C$ zPo(+$Cu0{0U&+b%0X&Bs#{E@a;D3;UveJ`@m4!PxO2gRexl#CnCP7o()NP)B5-w6% za1yq@Kg?J4UuB@E_9R03+NiJoBr*l1bP-5L&kNs@lgb%pEkB8ra`rj@UC7Y4>VFkQ zZbK)LHJ8mAlU!*%E#+ZBFVxnIg@#(}^5Oo=*KuMYm5=o&mRa1@-V%yv>-;a0N@Z6J zLCkebs?Li@$O*;5UZdy6yjDE7v3?E_;$9OPYJK@WI{#4JMLtBsRUA| znWRjOfDOUsd-E7zWn(+0c?__!^AY_7-9Ky3NBk3v0L-6>_$L?xBp>llFbXig2=Pxa z4oE)YpI{_lzCJq_-V+Q3CLw4#!BAilB7dA*Gg5iLrjBOz1k${)sm(m7A;hklwXN)hC_?cFGxx{B%@w$zYF~`Q(BpGvU zj0+^=EGt7Ee<8f{tPEpgd9jtT5YO^@&7&A+0XyliJKZX4Tyl8L;}y%-Z|be;!UC)C zmRTc#g)~-m;h_QHH4i-;(YV;cHuM+~S!ZxPwo09tnJ>KN5z8>gNRwhOj1fD+hk{D0 z0EYiw92_L~@Ca{>m0yQ#{k(ric+I1nO#Hks9-I)~Mb=2T1OQxTg>gH$xpOsb#4!(s zQdRSYzOJsmHI3M}*I*xhpH@nS2Z6t>f&U*;i|Q>(y8i|Z@lU22Vj z{n+{g1k0?fK)4qNDCoX0kH7TLx++~q87(%*3(+OC*ctP7tvKb@A-EJ@isPZ00$q)` z66ND>=opi+XD*{?>qF~%Lw$JI7LS)|KXlN|D7q=bN0nsI@Y9BPnpb+<)oKZt1@U6K}uCxWXef~ zR{Kpds6(xEtChANV*{?P?XM(BcK|YI>4L>G`Y83~(k=A#Xj8D0F1=gDxJ+77V7v6Y z?^T!~;GrBkSVtc%Pa91dX)!#5mi)yE(qp-aY%I29Possv3_b_z9FlA6359fTb~tF& zTps$uDVFk+tWEY5$8(C8k~Do`C3Po$5@}zD%~UJ_8Fprooexp06WS>kjIwiRWu1#t zDl}UXQ8=Cz(n`BDgEOv+8Wm68Jr@(ag(OB_u$HPK3+q0$2#-63)|jQRtaP-4x?%VMFMdzRr2NvFa|W%9Wl*Y7{)v(v$C;spX{$8XRhf94pH$MaaR$9{ zM`ps3V|@X7!YEouW?eD!s*8;qP0Ph5F^e|2?mXcXS~fOGSsW*&#+^zlxl)R~LJgp# z2Rn&duuVX({;yLGXnmKfzw`%I7v)+TX2RUEhdyxTIJv-^K}&No1KgDO5DZ=DC0gxe zfsAe_)x8nIj)bmF=Jwk}i@~y8$|@p7$U5Dqr)iZ~8nl#Jg~bWH1UMm!S(cnLYup%a zyOvnIv^-%X<=5P_jZ$a!xKWBNS9;8L7gKk`Q6I&7k! z+%}_w+yh5)@0P(q>M%tj_mPfN$9Ol+L~)45sTJ{yAe5A5 z(lFHFs7NDK!^R@&G_aGA+AvChG^OASnqhOW7@x{2*~iUW0^b7lsM8n%_NLqw(cA*pz*pr9B)D-9_|7UMK;OyNt`qC1Pe`8 zc5?BZo&&SVrQ{wTLubU9vNfg96quUhn3pMQM?^eFmtcFQAwZ?Tf!rKNUK&-gV()b& zndH{IIFXm;M1{-upcW2~C#+y#s{?_nOS}{+yc`EBF0P8XGMStJ>~Dql+TQ0$_dr8BiW+hoYAnf&e1q>sb?AcV6F!NY*#2Gdm%87 z2;7K~RuJi@D3k{yN(tu;vH@vc9@pto8KA5M4IFz9NIhZmO?Du?a!wCKh4c@03z#h9 z@>^&wgDB@#B8$53$>gd?xlpj$6hs0w2pYl&)|#~%uG0%`kx4H^aUP6{3BC2wB`6s3 zN`uKOY;L2TEZWGtOtNEf#1088F-uT8Uz#KIT82tVz_MuL=5SS7ZkDP@Be}Dc9M@(k zx55lc=o|&bQ36yB{Gq#LPO(SOF0NN}ni=|6sl+rBpY98(4{o1Re7A{@4mI+jod)11 znfP>Lia)rGjgymbTTU#ZpF8nKqWIxYgk5K1EA7OlD4H0O>7>nW{4r36s5c- zCTRZ?QPc3}5ViDkJMQpG22lq%)OYJ8`-u8E{u0HW3ll#bBH5He75*SeKj$#H#E3*YhT<5iBa^1%&n0>s%9arT zMloNdGaA7_G(;P9ZdMi>x@l|89Q=_h=(h%cu!4Tj_82xqXCPe0?79k_?GRM&`12m1 zgm@W)ekb4$g-<_c>aZcY7~xALdjLN_m88L?jWcWTM;6hqWaE~v{LogE-!OX*{~iVn zgX!lf{JBJT#4&FGcpHDzu;}+sQs9z(MEnhZrjnukBFFIuS&e>&BruzPQt%h0_ut@m zGQXaFdhtimXy3<13DeI-I!wDjE|;*8iF46jzPeMHQ|pQ)U&eFbv# zLG{u<#tTv@NUgjV0@NH1;_pHHQEN3m)J_fjwKWd}NsIDXMSA@U2 z@kct1k0DQTd+|pti?-+)jn$B&YQGJC1NfurZ+xh}()KMM{<85$6}1?D#%BR&r#Oxn z4#&TT4aK*dz#^QJGp)C$W!hSO&(JjN%f=S$UNJ4)+cOOpZOt9i+GiBan7Uy`;nelG zf4HF_e;RGw4!4E`;+n`dh=n@Zg`WH$c) zAL6g!<8oDEf-aGCWrpK(T2L`X6T3KP4N6P&_TheQpQI@Qhg%RvF;bXM6pRGB+c$ss&_2HI1c?m{rG~uL4h0!B*tyhp`Zvb^djHr4?h!*tq;1# zxrYDaXYRC+t7q#P=Y%w8w)gqTH)aPO*Q8CI z+cB@vz3I%w;jnXBx;s2|u4`JGEA*r*tF67!b?#Qz_&Kh#+b(roFz4K5d)yyPowm-E z`RWy}%p6zS1FlorTx)*l%3Qk7)$&7^Z>wv|C0oM}g&%U~y8bP2j^`yy&)Ns-fUDU( z+}$snnj`*6{&rn}o!XkC@J;uc`{(vw)r)}hBG-z4Jm^~D9`0&+Kq@)&EZ0k7f$Ppo ze(0Lm=c;|cmA%`w;sMuXjwjPwYj1e4wQ5PbYy5%qQ0}(S><;(H6^+|j`GWXoU5QIw z8x~x)!nJA6zWobtK6~5KKYHXtOw4*8a1G0G^(@HS;PSY0TqAb7y81%<=hr^6tt#Z| zo3n8B23LxEsbeAPlIDzWY>AQCc zKKU!{sXs`;-*J3Ux)-{WG;IgEk78ozAG(P14|8vKmJE#xUh3-C`i30#KjD8Iq5)5% zqD#_TWgcg@!4jfWkN*yS=}DMU9Q!{%CC(WZWy!8^cYI2MGkjr6yfeHp#pMk5x$boi zc@!dk(s0E8cmVqSSb4#*((+?$uQ$TRUiwKo-`F1yTQ7C`hb8s90>jds9}O9nJ%Omu!bmbEy~g%uA29kDyPBc5 z-x(N|1dVQ32S;LwNs7>8l)OjTkZI9n$~`qw7;@RVtg+D;vXSy}r8|sLz)}H!jLo^^ zk#mO(W5*i4FgCjyVPku$w1UpOjORyE_A~Ws=)0MzM?no^Diz;%;xAoHQB)qNUohs! z_mA)wFUs+q!c+~uhcLAU-?uRJEWRc8_n>ZNECC~y)Z7f}$BfbK9+@sZI&l}UbiBn! zh@UWbhvM#1)IFdMvfTX&`vR1VOSjeZd?;$9qI`;)pr~9$m4cF*8$kV(Em#feHl{8D zbvsknfx4S5xD%92?LI{v0d)^^p9MwF`=pECgSvy`&O_Ug6b_OUKVxh$r~^!eKuNEy z1@%jgdjTkE%PvsTmRmqcTOI->ZFwA&jQjNeWADx5qbjnn;kw;7NfScSkf5kB1__7= zAqfEjvUQTq0@=($f?LeefoMo#7B&?Th!O*e3+jvuuA}2JF5@<+Bd(yh?~aZ->Nswr zj=PQ{-*ZmYt-js2)AN4cAMYREZ#utDKlPkbRi{qXty}ljy;VRm?q4+buI9c5!jXv@ z`~^r_KLR5P$&CS;#L`1F%F(C|NXA&L(PoXd1Ib$00VGqoN=t9j=w2;-80cOu z7(Ju)UICKz@hQ;#Ed2@SPmB_ARPSPRutvE+4>0Egl9pBjNn08;*A4U_>*4Kc>@!Do zbPdp-8QlvcW4xx(4;meY!Rf=Sw*cr5jIcO|c#P4%fF5Ub5RUvO7-a)J$>>-hnQ||X zwEi@W27si^Lt5_&&0P;9z59F3-LBCCKzlfk-J07AB>nfS=3WKb%X;4f-3AmZ{;j2n z800?1(qtfM%OOBdGncNp$w2#<%hX(+M)?{o0ivEDMN|Pj%V?>Vo}^J9&~q$33+Q=9 z=K{UJ=zOhrG0=<5{Z@0=X>^-L_W?;ie*`3tihlyhUg{gI_Y2TVoSuQfx-9P$AQ`tC zb-A0R>wq3%v=!)4Mn}SHvIcz`p^;!J6z^h)e*($ez5_~QZY54q>5SHBbcRM-G@3Bp z(z{WkyEH1uu%x{jU9Zs_8XZ5`())u(PfoSC7d85;M#eNtI!dF1G@7W z)96Qy4$rhw&eEt;qaQU|I^EK{U!x~AdRe3IG+Kg*_H_2?DH_eqwz%^(x>BP>IhJ&b zMmK46k4A^iu=J*A)S=P+8a<)WOB%ha(XDv%B%SU1NTa|^i|f(oOpUIYWl8_8(Ki~k z&bFkkJPTc<(KQ-Xd4 z;+9yPSEI2&GR7p$P1h(-BcDb^Kr%+RMwe=Ig+|AhS$Yp@v>Paut$H3v+V_g)KGS+% zYVKF9=PtL>8?8|WkW3|0b0r#`qEVkln>D&bqnm+L@2I(?3M;os8sz~=y#<=9(%e$b zwQ8;dNS60pAZh7ETJKUV{hgNHuF>6E`lROe0ZHG#qR|f;(HpB$I$EQ2jphPL3l?f_ zrRFwjbdHu@q0wC$?bhgVAX&CofMm*VYUu|W#bDk;T9v2~Hk?%4i9qSxB6>7803_2p zPoqC*>5D)z-_Nx4D=qy=BNyHymHCd;C`F@58WjV{+{%EYE%ll^Uh4%kTBp%gjdo~s zvqleV^o>TYYAcUXKr-Jknp*-SZ9Z0W?HX+ck}-a#_3qKq$2EFh>wT)xmq0S*m>LU> z*Jz4HGc;<^s0T>;!91CR`Qggr4=zfhJ(dcQ7Ue@SsjegW9q0X{&tVU@X9idUVMki_1t4ypqg@(3qtRF4D=gDD}gR! zv<2u=M!yHTgwf+bI~ctWbTOmYWq5&>Q996tj1~f2!01?@?Tk(XI-k+yK<6>~6VNtB zuLEsm^b-)hzZxsXVm|&{M!7(PjH-aPFzNt0htWAeXEVA1Xn@fpK(w%DtauM-6Qh3v zZDch5I3dnrv=C?mqZ5J7WV8urJ)^6E=uPWb@n@jZ8NCg38l#_q)-f7)JQgEhG!JME zqb8u$jLrsH#po8Genu|<^)dPusF%^W69i_iDK{U`sfSiKHWx)iT-$RKw_6plU{s0v*HXeV{5vu4YW&Gddiof>AM0Iin7sGDa5yEn##& z&|*gK0F^Q_TktRtqbWeejH-Z&81(`98EpkBWOO}H0iy?j@)^Af}{0t(Z<` zln%6j(Hx-pj4FZVF~YrLaWtbdf#x#$EzlfB_XFiIdKqXoqpyHwF-i{^13=Rmy#|!Y=o_GEjK;KKDI`Wm0UgDt5NHac6M>Fov=(SG zqf3E~V00(YBu23USLr|_`3`bCb9A3qqH&OBurw7&ayWPtcar9=*W68-yIXVjYwmH) z?bX~@n)_CB0(r`OO(2=CS94^q4VHSVCX)5kQtFE7aR#P6Tr|t_aJjL7`nqAWU9f? zee@u+0t^USN!Nj)d+0%(?O^E6d62ms4Ba~qGJC<$hmI7tL7obJq<2s=N(V*`tMi@G zVVj0YXGD@r8%7SBPO8#@k;CdtS2`o3=#(fOZbQS^)2MV%NyFyVr*x=z!}(`G>Cn$` zI+rOOZi~a%^9Q9fI!ZcwmCl$bIv*&VYbY?4^j3_#FN@rpeoqnY=DT>YxrE^3S zoqLqd|79C_2X}o!L=z z)+wF5C^{D@ojFl-Zc{pQqv$-PbdHXq^SRQQ7e&WQoi{%7@g2^GnM!9t6rFOVvoMNI zm(p1jMQ4Z7@kP4(FdaN~b7_PJ_}Zj-s6Ap#IbZ3NM$x%Z=`4<-^R&{zt@&Zg^_kKsi=s1k*zC_1+)owg`Ck0_nx zQFLBYIxC{+e4%vOqv*J4aE;H&_zqX^X-emmC^|EhPDd1-GNrRJicUc3bVkuRQ|WX? z(YZ+JbVt#-Md_RxMd!~-rzeWeTS})liq6+cr!R_5EM3Il(~s|Pb&;-gRz=atRXVGq z=+r2kHBod1+h;Hui=JRp>CKvx#*oa68FivN%fVY-XL`ITgUqQaS^yLsx3f zk5B2G4UyXz2ZQPAI`mTk9jm~yM8~UGFwMH}rx?1gC3VhFj7Kv=iW#Aq%M^pAq+;Em z7`h)N)45+U37UCIF?6p<>b#*Cy0avi4-`YUW+d~KV(8*uGD0;yx=fW!iel)ZOEO0) zhAtr_GhZ<@XqHT+VrZBsnUfSlgC5CrDTYqrk~vE;bRv<=cEwP4CYh@gLyb=|Hz|e+ zBbmDtLqC#vSTS@&Nah*EP~A%AO~ufC63Kj|m~_p2qnPoU*{_(xH8WBjb`vynpkgvK zGhHzgHB+jXNt$U<4BeNI_MD-Z$(p%TG1QW!&Yg;xqM3b)q5BC^=R?Iz)y#hsL-z`# z&S=%>>CS*;CMt&R14w3$V(6-0GUbY)YkbKxDJDlV{fe2PnJtRR)y(CJnW>q36f;XR zPbp@$X5Lp!o@TyN%pA>(pz6hEF22&j!xVG0X67koo@S0!%zVxCC}x3Xh7_|ZDNT zjSr24C3Co9XxuBAqZPA8Gv$h*F|E`&PBH5=vr;jqX=a0BPS?yuiaA3w*C+;rN_m%q zdDg+a=U{$zFe!9WQXgq^rh}<tIS9%yI{_(ZO8dVD57;dmYT* z9L&!SCY}Z(A*Gn;U=}%;V;xMNgW2j}u5~c?Ihf}h%!dxWp3VXf|I&jYXD_R_u$;b~aQ zb%yhD)lqv2)*_{Lj+QgEhml%HSgnp~S5Yge+No-}>S_ojS7;5P3;KXlb@)gMMbYc9$6=P3gMA$?Uq-vx2>wKk`LEV>C5HZwdbO0g}6y>>A;zV znHrwPj6$_${4kcx2(D#6jD}hfe;Db1DMIwjhb_5PSbHlQ#ub zip|NiZ%4?+3{F3hN`ZZohhbFI1|E^6)@~D#rD_k2*~1v9#JSPMGop+2X)>(z*8Uxl zEgR0H;cOYsh~aX#Y_``jJ3Q2z;bLu8xWGz}3mIVt7keqKy=J8lBRgj$L)#(Qd9}4t2o*TBKhSC0cgZf~bozLqaXW2o@?_`Krcn`c zP?8WsB5XuuPmJ=7lnFHz+W9J6H*8SItuADfEn9@p&ADs>Ye^GK)dZURmtzT;wk``d zH8=MJR#_peJZ8bB9xU!2=(U2Op$=LRUZsY0i!HO)ty^cYZ9TL@JFU~AR%No*Ou>p< zjYNm7^c~zTdQtW)(Ky^*WgOKSYpZonKKoz&zXf% zm@Sipo+ndsy7pF3&W*`Ha8^u)L+8U(gy5cbG!qtq408I)L2Fs_UXrjb@q#h*Tvuoe zrC{C4kV2Z-l8ENCBvP|kDt1SED|UO60X2iA0&?z31>~%i49NK^iRCC?VmU|EXzSE@ z(57am9K0ONVQf2`#5bG-^E1Q5!TiiH63ovGCmA-*uu&q!h*S>DFgfy!WP2p5BiW0Y zBu9D?Y=oA5Bw`ym=S7f2;;efvj$~B+q4PtH5od-p8);4`qEJuhgiEc-m2f^7!Pe%& zCn)S5vk%&=5p#5Th{NsCodP{RcBE*V-Eqj&ypDq();u+r1FopUJSrl5-f6uqGB{D0JQ;gj4B8n5zh;9GaLlwhPMj>71Kj z$eaW#h0aFEcsfpF`^xS{+C3ao_Sp9XRozn0_x+^+JDt+zqdhiiNqa|!+DfEI%5Z|DwO*-%FKgwFfyB4zX&GL1WDwbW|bYan2+i0XzB}; zOKXD3S<`q*U@Lo7SFhTyQp;$nh4Qj*Puu9&gO*jwLU)d3&avmLiW{;6E^A^i>fBS7 zC2C_zYv))_LGN_S8e#iWs;yD&k*%R<1d($WSdJJr`=lp>$Qi-CW$oDylaMl>rNJ#; zBjur{mna8SqDYZe+V*UQkN%g*GGXvR;vs5;614j@T9_@>fp zS+>t2k+s|Y9w3RlHn{~ike=;bK;qvvu$~suOW!25Qt*TH7GV#~kk4K85(5(bSm_;v zc#DKLe>yrJ`{yMStK+xZ8KpNPD}=l`4r>ij?!`m*RVqD1lj-HrJ4V6Jfyn3ydZ^y^;q>Ov zn@7RVRKU0C!Ft<={g<5;;=w{>w7jlL}H`= zp@FvszwYbJe(JNtp-r>_0Fn(1zB%~VP(do-XLD=D_kV;WNqcTVdjDT!igU&#ZN4Q2 z+E4W*$asTiQEbj<@KDNakdyml86s}q);CGW97WRRVlba=*$yY3ju?YGQV~{e8+nQP0KK~W5bX>}t-Za}butHj5rXw_HW(*E!ONST^$vBWO;1ne{uzRq; zo3!~q$om>Z7JCX(0l5Nby9C&NUJQOID{5|*X@jXqDwqjFRkke!=|k=%0LxE>h;9LqktOE2h&L?-NKr;nyP=PNga2W#I2B^lR z3->UFgk9soFO?T26D3=|bTHcgrXTnBB@S@}D(zL!$ljg(RNLSHwSw&304V_X(;?P2 z=q94T#s6cI?qgBg;1cu6g2Xitcvuh*0YwIpp#7fo$p%>2wq3gN++Q57bkx3d=z)lZ znvl_I5bcro+*S?gRx;p4c1fEH@PFG5_Cqbo3(s@eO?9-}%bc`1A041B_vR!DZKGrc zuS}r-4|(uEd;gvR6TjrQ!F%|y*tcZ|`Qx*(+wPu3^rk(=rpG*UeoQ+1k7y{HPBUG5 z2BtzG9kM+GSwI^Yl_;+Nxos>TnhBcfC1KkD$$+?j!h6hUqA211*EW6bMeQVQriD(o zaZ;o%4;pIgIK!kACTA4#bEcqlG zhq0{qPZpwaMJSCdLH1MBnzvDH>*L|G%LgA-9kuI|r9V?b+-4%=_Q^eHtZm!rEVZ;| z)8|u%{0T!Rc#`g2G=A`rE&jKL3MMDr`_rBcwHOznio`bmdsY*m;NU#_DJp4TE2-4I zJ(!X~&6>I(Y618WgLSV+FV?*>)H@mR2GREAL7sGP`CB;Oq82aSopkT+!Lu8X88Y6o z<#>Q=DE7eaH75-0-c#VgX+oSiZcjlv8X$UrJq2F2D)23x5FZ1d1b$oK+w9#;AQj8G zdkQ8)L}znaGnH+D9&6#WZ<%TDFjaOq=TpS>=YDo|aC~6-D}&90$EXeNLBiYW-lLKY z)xd8TlKt?-{ufZZ`RBtAIFFJ}|2yO!9LqXioa@;nP7bX+ZLm)sXq2@hv4kQ2dz2xq zPz>SG8&5(;IM*Vm5=h#z3&}(0VgJWT_nq;fRX#fDAnT;_nxM-$Cf!%}>HYgL+-*DS zXR)C#=7+x|J^W}$9jk5)NqtVqkl893D}gT}CXoF-sZ)<^^^8gP`adF$S_CEW=p*lY zwr%!`4g2?BMp?@A?)CqJlrZ2JUI}e};K5mcMj_xR6KN&w*p0(qC$j0+r2e;%-8=L4 z_f42*?4lg|5<$FsmwTQo>1j|$jOuaEB3gA9KiuMm z%qtOqgZp094NOu*Td^(w{2w}4dB<{aWbde2P;S))Mm0vO1?BPow+_B3ii1b?zcu*t zruU7(7dGuR+kV*N5=n)R4nDf+X%7OXNb+;Qg@A_wbY!E7sbys4-k^e0<`|&8xw3E>0@K)LK?&Ne>aq$`q*~#p8KhKZP&a03SWMizc7TWtMNBhmK8QGu3T1ATUxNB zvD{ZxRa#Lj8fMJOO2-v!Ur$#@N1!Kt!o+?d?>P;_)~^TzI_zq`o|dN806%kUr;9q; zm#^q^(1q9-H&E5oYF91pZ|`dg$-1zof8~<)KD(04CM>4B(Z*_}#q{dBI1cUWV0o; zsScQbz_l~CJt$&N$@GHgn@XlnTe))O8vLKp+S#=lzrDQy{O|4wv|-=OKC-A_h~YM@o=&Y# zZl-&(dIJ&y_h- z{w+&3BS)CGe`d)jbkENSc}z~$y1^!53T{WzBlzB!CKtsX`4SGa_;!9Vw!WA4J(C^2WkM^o&K_!X;pX{*@zAD~N}9FIc;&;9qK zVqzCkgsJiEy^YIZB)tuwx=0c0BS&Y&w{@Z6He%T;949z#I+u&se3InG2fDjf2YNaJ zs{$P&w%}6~H7~xC*6WHb`~>;T6C=GbMIVz>IQN)h!YF4gV*dy@stb81$vU(ANKc%I zm=bbjh|`HZ<_tuPHDj77D{cY0pRcN{_g6R8RV=BftgjGfMiTnVt7_51L=u%%)(az& zpxj?rT30Sykz_@6Wo5!0Nm5^0jq{QjNmTA@z`9`}C95JQma!9KPM(C4g*GgDqMK*- zys_!qP?>08=!Tm*8do)S^rKZBPFt3WcomvJAy@pmKu?#5&7gpZcGQcvU_v5Iqzd%J z_o7O}MUzOB5Ne{fA@&FlOc+6}uQkwtRo6VRGpXsux2_Sfv#2Qnt`)Jf37Wz*$zs!_ z3OCK)11DM?XQOJ8tqF1Y)F|U=+h!40NbN$Pfv)UYg|augR3B}D#1(lI^&L^6lxQa)b7$HP2G4KUc^-s-H_nzBb^#5^zjK^ zy1f}!yI{N!7`vM0hwKpQKTPvGlzTLF#j&O*calf7&8pG{e_8FaD!*>dvdsqh(uzWV zL$+$MVRWu)tYLJXYNgud_)0aj3i(A`z&AOm)2s0S6N+%gTJD(!mnItr*miISgx|u**P=dDoU-q z3^&zfe(VxQYSL4ZZm2HKw;XTN2HRjc-bVXKTXqrlM8NtizuUAM@{6l2uiI#_4VKSs zw2!ov%WX7RA4XUx*9o+*D3^;X$WbgC8!S{P=~HF0v9==FSh7Vnq)^hQ%41{M?pQLg z{iXO2$Cvq*Ro2zo>rpyQ@iS2UvXc&>bMXmry;9GfIdf)+?-dU^JH+`GKWk=)^A(+k zPl)#wpOc+Me<3xXL{gH&wJ>7pN9n4NH3hzkg37}1!&=i;lh8!IvPTmI$`DNys_Zr4 zSI3$riqtWtiDGqZX`)1o2Qjri!EEc0ei6tU2lqeHPp+vdxh7uKGbSP0N#)J}8 zA~}>eMx=xi)naTYQ6mlrC2GZip+ub+7fLJ@2Za*#;^0uCK^ziFEEB1r#IfSgP$FBT zg%Ua9uux)#NDn1)#rRNSrZ_y5m?b8J60=1{D3K>7h7xncq);MD91%)X`)li}E5zhb z){nZc@{1!w*?jaWH8|A#VoIo>)|W4i3ZMtwPJdxsJgVcM9Z>5Wo%-Zucky~hYD~msH-U^B8!kAfNVHh)8?3O18ee4(IiATbzIpWc93jN+=4lY|f z?%;C76JcCcb!kOyO+mHaUm>0hlYy=*D`U6p2@_TMaBD~G4P#3yYW&r;;;AsYq_W&E zo(?0ce8v8{DzPt&F7%iAYyIMxFxp>HD4q@DD1}10ym&55z)e&s}W>;M84(}RF&aK zecj3XD{B4K;ti)DTfFHcbHrbqd$Fvvz*k#}9_8<0GQK7iABC}~Jk;NC0-W>5oIG2+pzI1Te;wuN2BmU*!W{9sH zT(0;gjPp163+iy}eH+G?_{*xqcVT3?zoJfjA4b;T;4P>XKZMh@*v$CHFw$4-E3FVe zg|T%Ng_YvxFcMaYe}{9GRm;RLVPuuB2KN6aj4i_TnfNt~ET@w049Mj6(&Oaktd%4r$9C=UrlaS7Ir@ktz~q({^|;DslKvoY?B&AoP+&Tqljl< z{0*b|baO=*i&J)GHTDb+)s;iZ9PBC_%Gda-eAT{M#Ml`o!Nr}p zI-EndE3OG6`K%|8*K5N?)i~zGbz!W(f!OQASR5%h4(^D=W{Eq)=-QIXx*A_aVNKBf zyTVio{RO4vbj#T);2*;j3hJt>{S^hv>MBZW#ofaQYwGe@eovSj*3yUpX=7w`uT#i_ z3@N?ODYXXBesRB3sE5#g@h7L0hV#3eba43pfK%ub4?4+w@sN`&5Px=(h2mi+=@+}5 zWRZBpNj9KyJ?f<8`S!600)KS@Ml#}Yr>M+dQzM>m^2ODD9}Rt;bc%fCXtUH*#2%-x zFuyD)-|Lhw#dsCtg|d7M>z;Co5#6rwv{OS~yzFxd_-f}FCoeC}o^=X*wcu)GP z3B>bGNx8qg28Xp@ybw`V?MJc7#ETJyavb|oM47L!P`n&bfj>$ zL5aV?XNmtBCN3+etu7Pqg|js!rMTYsTR4p~gLprj#3YOOAdIZ$WIqgNWwL({rzzQw z!bwW@A7NxU?s$o_4fe z)QAhig!z01sX$-JL(+?e6=NuSahR~Mw1(=YroOZmh29Y+U6Nl|T82SzZDnzBnO|Ho zjF_{%bQmEry(~=RUrg5pzX@Y&%KZK+@!K#KmvGtQawnN1t_UZo*;f1U%21)WGLoza z*8^6aTqPB7A>U}V`x>#q#8kW4*3s3}ClYAphaT|cY0$$kAC22mxIKH&X_#q>!R@O` z+}emggs00H$%b&NDF zVK+_m$8b&wk5C>l^-}8z+PmE}UmK4JuE+2Xxfayp{+dX5_5})-;Pi>=PWX{>b(f$; z;;w~Aa2fYOI)dM07v50`m4{<4kX}Q~7NbT{xnw9uj7p>;n=G3lMkP@wmP5H>l$WA; zL;`uJ5s>{GCt`SNdDLhRDA*%I3)doKnxtl$1Nc9hU<_XK6QdRr98pqVQP|jsyl%Q1 z!TA2p{$5NX#@|GBK_!70A=)9rGajcsO7G15&sEcGror&Iuh}pQpgkE+=bcyl_LH#3S#P( z(}@4vKoXQ>RVCG`C;q2(l;#={|FcYRt%(0OCnsX0O8hUhjl`J7qEg%wE5$uDPrTQl zy&aNUSC@6IMnweZtwa$&+MuRHbO{Uz@?)4cg0kjyd~uf_$^Y&O3=Q&iMOS^he9FwrI=pt>LKs`fm0<8 zuc@~7W5F+ww=+q8U5Y22V7x4hNW6mup5*@CI(kdA3SW_UXG#L-@k|0&APQntEWwF0O$CSKuju#0S{$NF@{L ziT9+Oigc1&nrrZMlSsT*mPl6JeX=CuenFPb79kQJVjI|FK6LXqh0FF>R$7B2C~?%- zJ(Tnc`2d_qOdQMm+sL$&#!|yX~M zRPZ3Ys*Sr{<-#1j+jYf}m_A%u+h{$#0$4#0o)|=y=3wTNeseL?iQnp6%xuzc9;OcQ zTd)i>hWN$%*?vqF0_9UD>|qY)WgnfAM^MOLU5$&Xcvhiv%}7GlE8__iu%4|MMFDGU znn;1tY|QqN2Eb?uaxlBcOfF{iNF@)Gc}(PC5|0S)|l`~C3KJgqz7#$;>Ff$0l0#17( z1?arTp-B|dy%(lO5X>*D%%^D)K&0x&)e$B{I8a%QDFK=a(IS6gV`V-MJ}?=gbb=fv zL%>mbmKLT!z!Ve-On49|tHCjWX%1jq2-eUj8OveHTrtf-u@RCc?dLKr#R&sdw;`Q` z(kB~~-ODi86B{;gQ^6_LU%eFm*|0%2nX)o}F|JGY@8_0-K^O(geKmL}M97rs85ANA z6bBEY=Sw=^MzqF52%1T~yMa?DpgT|MtH)zEd{VU8E~2aZf1%HdASTsH9H99&zZ8IF7~xrcokkj6T6(BSudmU2`h_k3N^rnv~|D zG=`#>tPc5X;DagCq@LH=iZY6DCL++_2hU~|)Y=YhtQh0%ITIQ<|KtB*4%Xr@m=v_&rO zpmF3>#PgzW@SdyAu=G?EpJKd21`kru30JoD3h!1{Na3!>yNv_m#?s^C-t#z+n%vjB zj@H)|-t!GQ^QMn)U0qaE-n6EOp63(Z3s`Nki)rSn1HD}x{d95?-V0ee)is_LYwy4# zzQJDKdy$bd9uEdWhL`;Dd@7x-aM}v25#Ebgl;b))h6=HRL%C4o(}VC{!o)1fvk(Ib zJl#rpUCMdoLCwFWyQ`C)?($y7n)ATHsz47t3+DX|a|>Kz0y)fkx$z^M=cX!^owPjg ztdSL}^>U*g4#m^1Qmrtavv5kETjUKM0;IGrfC_1=y`mR>@OrrWi}lUwfZc zwL$fx&XmHtkI9s=x01#)te!#DP^umYmDTYqSI6Y>5U7}ve~x*$mC`IKD(q=rg(ac9 zFL0uHrgZ6x?1K_hyYwX{7Mo%Mne2VV7=rmWr`X)_iqVF`m?mpjzOdxN`#P7Eqte;O z?o(XAl;M_D!4f$2JL6VPLVR3=iOgH9%M*ap;big&N88@$!%pK@7aKe{MDEpV6yCNwUs>BFcGwZNnY zWDPGRLXG_y<`Tw!P7UWd*Lg71D<)7D-WObyv(01DR9?~q!rwq>no1?C1xcM3T@SI& zWB5OstQ~{d*NV|M=;1D4$vBpjw|7#b z4(XIxoJ!*Mo|UVcdLUiZE<4eSSe6c135Ls|vWr=k!O6;QMUCUpMYCwKm_TLrUh3Y0 z@>|COJ)=V06>x)Tl4ML_slQ^WzpN5Z3#E7`m9_W!(D!c_O zpc+(y>Ogm(35z4+0eL)#Exd)SFfO@8HVQunQ*rEA&7{Z-jK^sPOov>TmCuC5<`S?O z$sOJPPCQiKg-c6s343`mu4iZ*P}3b~X>V(9sltv0E76upIpwK{u_}^yu}OV$77Rt_ z*n@?eJDS!CZy86*6%)vJ-U@Rjyea#AHKwUBx5JyJCBOk=jdm){n^|%P{*NY?r{^P$ z$u92+CLY676>uV_FOp?X*C_9TqD917$!IX5rCkt29l_Q~NJmi+3i1f@T)j z#xyM^k7>jN%HG>*-UCx?MWEXUI9Iir4KT{Iq`DkR957e2_ze6XP3FrKaPE@D)u$^Y z)nQ)8y1&PNKJ7gOkai;dB#0V2Wvy!Rar- zU8#omW%FTe-Yd$yVhlUfB9Y!#Rh@No7q(m6Yvv_za!PXVIxPQ*8wMR~<+$Z_^DPW7 z$B7A)w)YLQ1u3%)bQxu}n>Wn&*$5>>P1vP>F$G?UGR;{0A5E5pR|F~yiCLo%;eE@* zL*j@q8~?dBmH?!EjF_@E4luo6n;XF$*wKw~mQRjfc{Kcu`PO*w{peUrTd~gxz0l(Q z*4zk^&)k@A!c|wjnC$(+{1GY0F~gT8jTxwas|lbA>2ZJWSF#diKl3jRc*c<-33811 zJv))Q51hH^hRYAE!+kWJyME+ghAga=t@kH0VKxA=HbkmWBF7*fdkap;Z!cQ&~Icgn?PrC$qDbo7%Hxpk6OuCyqCl* zMZs`$8)?#*G)$w!PotxHk>R~LX4+hge9O_bz5r(dqRp*B1DCdg$Es zN3N~(h-J1)baL}_c{|23s zj1}JO^m8!>W7G3-$$Ux{-sfZHAef3EZt#0wh^as*J(vTXA^VZoi!m!8$Ve{iTHT5H zBjoxLt4>a)h3P2#GKZ%o`+M=aE?UzoF&hyh3w~G%Z%m+@6DTv?sNg#+n_ycS{|nw> zG0hXfn&!#)&-Ycx5v&CAd?M-I4EaFDq+>XZx}dZZkSuhrw{*xMQs)%9&cOwWB_W?k z$r(7GaBPU*x5VTdDW=nnB{slv-sCGO=4`q9GtG2MOwMC5l3Zw!n&NtdA^?MB}4&8z2@vq9YvQY|O$cDg&HT29>K2v{wL10Jf%kT=r2`{Le# zRzfl@%ZZ)>hdAo@nK;)Xs}1#FJvl`M5d| zsb~mI7WD#C+>E5{)Qq6|Vq70oGsq^%%M0n3;;sZenOZ6lxE-_-GnC$!l#wi=>_uLSOYu<;uk)Am>v5T&=Ots2 z&I0)cYE@Gw-YWIJ!O1L=N8g)q)zB(TmP^lBKMBT~x{p}sCwo~NCanFPAqnfd?pD??I3a@)r;r%r36X>3fR(~Ga{)C4G z^%8M(E0mA7-=n3b@jrVnu^FssZpVM_C8*J}63Baqq+WvBxQw|4*J+SEZAn~c8B#Jp z_l{`%Y#rwxS~}G3r4IEhX(hP&L=qmbocN+paX^ZXu*7scSOyhYB(;2*BzGM=Y&Xs0 zEb*10;?r?MC5`$E%d~ZtA{`Slou_fP0ajgSN$7Zx5}p^rnA?)j!5}3xi)F;>I%fEK7$DBB`^8bX4DegC(YeNQzZ|`?w{cgGWkK$Ni2ap@T+B_g+8rQ%9 z5jURJ4N&huH?_7}FF+q&>%yra-o71Q+yt+QGehcWNI5Qp-bPMM?I1jH5=xsMFBkQ| zAdBXD<0er8azL=5Z1&G-{kMzqr|Qds>V zA#Ubjg(!R%W;EjR*lY29G@%}MG$n<#68cw)xCLaVht`acvEmkf0$~EhT!1eR@Au=W z5w)smv9BCY=oX5EG1uJ!aq3a9bIkQLWg${ccyi1Q`om`_{N)o&D4Vl z-$Xbz^<=`oC+tbRm(sbJaJ+~K%WKRnWQjImX(?W2<99;LG53%1BgX17Jjzktg_#oE z!NC}J%%9kx_|?_)B!^wFiv;kO$|0E4m=W+p=9DO0J5Ja1PK*E#lvY^#~V7hn560W&+&2rWIRHUP<;jSvkx>W z+Y6R)^hPWC8XcXCNTVRqptciCL-~S6Of(F{ok>dRvg3BY}8!xZ{6MbZNl?_|>rlo9(?3{Xqv6h~_n9?qc zb#$+0%E=ax3TizQDLiUQPb(CM=s^%lfNxY8TQ5gmB;mUx#x_odx>y-LkHSYyX`}Um zgt3EqPcBjy06(jD3!-ypbEcR|%gm?-X)We$%u-QAES2(#X*L~ebrW7`*_d~jLC2U7 z80nC`-gIc^YyOe0%l;o?Y4rOVMHu&{QhXLlJdA&T_uF7oVT z>hXMSe8NH8`{4Np<5LdO9bep;Gd`ngrS?E6n&uzSUymk*Z0Qp^IB*uK z?9kiG;#N~P-H9_MlM{`Zi;-2YS`~g6OG*r9NKLNoUN_woZ9%;|52DcmB++u+D3CsgX zLd>Hr)p;j?SqElb55S!O^FIK17RuxBH6HF;0t*N(NJ74{5iR@>depXLyGntS+f^38 zeDd_gkW;|;Yf>38O0KUEG$5sH`M4A3`ZcK>~^~hxIPvB{V z$hrRn*hAobfc*foNOj&=C{B(6$N;DzFb&`gfCaMv-2FGLU$hsBm%yS0OPJZae!)@( zAFp2!U~udD1$_+eSik6FC?8Gc4}jT@bg~}8zf0hntO;l|4-sepU}xnY4Vi0|XhsBb zWlRFr7E1^6xcm36$8UnW|JL;)|759lmR5_CY7pPCUM$=S@ta7PlW^0TuULuwQh4KT z89^9XB%;Dl+D4wpIvySn4Nw~bcvYoqR~WF2{YC-kXZBFih$YbOk&RYE*}V zouF7(FI&QydZfx(s6J9DjHF^L5?QpYW(5>7p9a_j&>YkhSz}=&d2V5u0+czj!KaWG zjO5@dnQJx`kq%by{s?^p??GT3A`g7{aT2UIu6Vl=y~HmB4>1U%mngD^^YTnZ66zLR z7nn1t`@m4#IFx&eJK%oVQ>1ZE;kuxqxR>wSAQL*zyDq3Lq2v9x$WBlmIYt0^pu-J4 zEK)qf9u@_Q5O)(IaZy*>ii+GsW;>+h-y4*M`+_n)Hf0?cxuW27X#6=eJ}HT;_aR{4 zeg|+f(x4n-+_ai2odYgMeU!>Q7i52JopZ z=cq^+3k>69=u3MSNPEAc%oZ4A<5A@S+u~k^&-j!MmdMGo7lg6OFxDMorMSxGfmJpS ztm4$A2i6$pLjM50iXvQ*j=&w=}++MhyJ>1aj9gGNm?T03F;N#OdC!?yO4_t8?{K>R$4|B!J~4La`esInhn z(%i8C2#(Yd~lbLi1VyY5*2Y1Bh|cYPOj_BeCbuxF3ckd6l*pVg zLW=$pCdw9>M=Q~HVIpk7+NMNam}XCKhR7UJqNBn@xgzrpB`OLN%@hk?fXG-Dl9+4N znP_(<)K*`Gw2GYZu<>*)iar4~-9|n*5a4VABLOZ4m_=&ysu7~`&%6@>9wD$2;1z%c z(*a`Kv;^&(L6tJMx66$fO8E(Jzd~>Bp8(R)Cmj7(ou4bwx-b#kIT}rfGTjj-nkh1~AtHC) z87d-|E?f)QilF(h(loMAh>CH@iUxxJLL@mByqS-*Q&8xv0tl(26a|fFOfDQg6p_2% zEg<*|C`o}+x=a-RJw}cwycG&T2I9!asobW%Wsi<{alAagx)UshV@XZro53t36?0$$NHs#rcSx{Ps)XEDkxq3rG1IRDUCt` zuhUgDmSNgY6%ua*B=01Dayq@8-FU8{uT7?4e!+gEfnpjtDoxNoN~>0>_w}^)cPr)R z4bq`;CaY+T7HndMCpyc7`43KxTCg;TQWAA!e{eG?v%{c)WE#Ebpp)qB>rqL(%9+pz z(3S+7Zr>8hY&R%A9T04@Ovt`{mw6Ry(14G#N+TCY-KAtu&5Ex6j@HuUon1WvYNu*) z2`fO0u}6_3X@n?E;5)DN90`pZm)X|%M7C=YcN~pr(x{yXnKq`DdV0E4kq$VLvZg+S zldF|FVLNZpBN1Y37HLwKl12l>G#ZDb(Mp{Wqo_yD#`5Bt)K%Id@d$=Z4$DWiGI{4} zY#wz{G8zv+*!r*-B^V8i<+Ww$AP>)@fm)lKX12ArtA#PznCM9!>GmAr8EuS-^&W`h zIYW#bxd0Tdc@7Y6&)ktm$CM^xERqDCK#XEJ5NjGEM?z(!0ZH6s=%|WLwk(!zfLrG)9dVrODGFPUOfjR@zCn$T;*! zj7i#L4jz$-5|G1=I4GS7TIF7j=La#98RDR2om6al4VwDvNS8lBFJl!nxXTE zIpQFlH|3D4$^dt`knT)nI0ey?XN@%K@G~1MRhDA&Y(d1Cb13YfL>opf;|iD?BeFR< z+BESP?c^$EKIv8?QRuP{7qA4WEVPP>fhXlk#`)~pLgY)8i}J^jut0_g7D|W{v%Q=) zFOyP{svuR;Vp~a(eTgkAE<~yFA{-`txH#x3TzUmvkcy#9SuiL>c`#)RgQN?{fJ#`2 zI@^(d5LH{1(!$|Kjz1hucqRcyplBfx7MWk1Y$fC}!ELE3k3hlKtS(5d3 zQc?}}Bq>3$5#Q_aHN?^z@pG$$_v7b0^w40R$Il+R?h#85#?a$Ud;woTJ=0hh5UTvK zr9{#Hi7%w|Gn2Z1QB6OM442Z+sgk9i|C-fHoK-dbgys4K(*Fy-Zqa}B`h7_24SYEO zl0T%e4_`x6(T`HT$F6)2-SXfMDgR%z{9nksT2Th|Bcv<9j1hi*{a zh%e+fuBRkk$Cm?k4Kfo|O_oNj$#N`9+7`OE%~lSiW<&peN>TlBhi5_nYx%$)>2l7ZNr1ip}g_?-m4 zm4Sqv1oq27;!XnOXQbxk3ZfQ+Trr*otC>BgAVD zi^pMGJPt>QcT!k94%^~!*d9;yZe*hB-7IZe??#R9kN8qOk><(x5~kmC@x{?*rFkWS zln{yOml~xZ>Zt|p!WYoeybO{zS*m+cQa%M*6q#aN!#G>F({XVaLE(%1=w~6rW9VlR zU0aI_bQLrsd=9?Qq^t8o@U%e%5247m^#v6&cLUB5k<^DeXhLlQ9`zTV0XX(V)nO^jpH>YWi8j zP*)X|Fag?Z3>mN$-w?|z4H#j`ZT8R&o^SDWixK;G64;L~PIZr1I{DH`()!Q|gHC!cpnLun zU+Y7CyT#EY6m{=35oCR=zMpv7F~|DQ3{@GvHTWKfFP%;bgC=nr^i&QVC3M2J4kjx; z%Ox!|}B~ zbXWB?e7D1`f56xJ(B0B6@wHmA#Z%4G?K)~r6vz6Eggq|yq+$F!ag;Fdfehc_w$TyO z`+Iw)cXYKhbxd!cl{ahJ>RGwdR$}&d^^Bb9?VT+h{a899Gt&-xds?PjvnbP7fY&@nWQz02-4{-xazmGQ9-yL;MlweW;SxxnJcI@_4eV}lRk+_pTjK(qk<@G*$`xU z*Y?^-_=41wg_fX^Qb0~5>TX{X=;*b@Z^2GcSSv&_6fw{S3|pF;dINpEtug?CWf#q{ zYbEeBha{EyJ5T9c-6=83fk}21nVzYlJdvvOfW%~v4x{-{cm>LDGcTkFs&v?0sf%*t zgM(i5#sNReNcn!gXTj8Cu_A?OG+%Iy`w64(&AQ3%H4PgFE(7QC{Ach!_f2Q+b$`8n zqkFrt_c?dcRqj*U+(~Wjo=nfGH0_J(=b1)V=Q3 z#qMU$Ja?)q!*HkV^4!sUvimFX+FA46FRpKM-)%IwpIP7MzQ@?O$$g;fC}ZK&1+I+b zqt9{Qy8bHnY{Yru33u0Ccf#H$01n*i9<%rUtKDA+*Gyw-R_`U7RxIzScCTB!Wci(* zaqc@1<#xk0#c*G9=HA=RT7I%?+JT-z_nOy!=U(G!`)kq8t9MR!O&xuqYtrZoJ;xTG zJ#f2wt!KM?>_*S)p79Ud=9$~`^cwfNwhqs=?p#-;F@0KZmb>v*_d_W7C5Gqg3yz-e z9&RqJzi0E*Z(I|TT@%N8K5$nzY@S}9?H>J_`!liYTleyfSNHedw#l7*tNY@!wX7S&_^upTFd*XsXNO2gnG5yRZCFg zw_c|g*77^*Aq;hcSlzEHt;5lPcO}Fz{dlmelwQqjYr?zW^au{N&!M$p@S0(OUz-%Y zwJVS}*6*{wEFu%a`Ve^Qh8{}nwohT@GsN2h=9-6oEAQ#|ye@?ua zA4Rmx=5+WC;E-4KEU$72`hDHqTsyd1S{-N;R%apPdJnuD5MG!gR~Hu)%uSz+UEPk1 zzNs5^CSH8yet*X4o&>ykjIJ|*1nNU4Kf3Uz59uz%w;(a0IX=eK^CF za4Psmqe^W?QHbY2it0{#etdVQIPFGHeli zBiDt55YsBZHJ@XJtyvl?tY=&h2lq^Hfsuy)2Qr#~|2g=kh$;9lrL%!%Fz3_UI*on< zbQHd^Sn}SAF$W#xm zWfrHB14K5ah!P-~9_<1q^SBo%kEKrn&0+KxAeqX$Kr)X{fn?ktw3IeJm3pH!O4H~l zjq)_|YgDaKqed42O@jroVl>W^bJ>=OKr)XkAZg3dK+={Ht=9k~{dW$KOyyvlkTW^G z4L~xLEkN`rV2Zd7h-T+v#h-wvb)|?=XzP+Y3`kl~3pAUh%eC|@Ev1c+j5`-7i__Z-B=Z;q%4Y6q zt@l090#5HRj5#Hmtx>Z^=V)}RM)v|q3!VX@o*_m20H5!E@TgEsLNai~YNaouQ3zXQJF?n z8r5oqMkfxzccl0n|7CjL0!?7<28bszdP<|$G`cRslAbupLc27&@<@xjNu#?pdPAcR zHTp`UUo^B1XJlJ3 z?$c-%nz~G-K%**+dS+PCdo_AoBh1UFxG!teitaLrU-0XrD%zvn}Z{ z8r`nZ#WDpYQFX!M{)do_ARqxUrWT%#W~ zT2y4E_d&6Ro+z=7^Di{|k48zQR^NFDkn9iU15M;!phTk@jj9$~(&IGR0VLyIuenEo z4&_w#0F7t#jF!HxrEhEQD?9k}9T6!yxwB-)XJ)qH(Kr**|TJKFDncF`!7gJ`XlA_T# zAZft_jWU5`dNZ^ho(fUvVd+Q}<9Hxxb3mg`jaF;4L8Cz+S&nT$GT+Oz^cszB*65EK z-47&VJfgX$HF{a2ziGY1ax2CmK+@85AZfvo8s%s-Poox%HfppTNc!|r&E2EXpEY_- zqjxp>Oe3ShvLHhv><6K&s?exKqYjPE)aU_?o(7V~kx^-tG8Ra3Q-EZ7Gl8W4=4#{z zk~O_p>oow$QnqPsvqrzu=wXfaYV;bAj2mBNS#W?xhijCn(K3y8Y4oH<3CCEejMFGX zqb!YTG`bCFG zqxBkX(t2Apw?m_=fn>@z07;v7YxI^z-)l6w#?qUrQL#n=joN{veQSZFeH%3z(rCNZ z`;F$V)#w(D?gf&TJ`5x+eOXK2*643q`i17c(Ohh;6*ozvDH>r{K$Y@I8l9%mB^uqO z(LRmd0Ftf!10Y%6kG1q`jofus9vK?dYSaQGQ#ns_S8DW+VMs1`g+W&nk_%ot2lDgle!P+c9U=M^ z6Z|<>K|`bq+-;2bxe6@YLif7m9cpn05P5}T;TLl$_*UT?WIiMspJ1#JDt$Lt`U-vq zo$dt%W6gmM-O&j$bd^KTiIW8~)+q?x6vE(17;!}ivkf7-vlC2*o-&|&J3(eQ7`nS7 znM}T?%4UH%`Pr{@;A-gHjGqw>rFbe3K2##Nk&ge0 z0J1&@DT-pdjTH`CNbd-x6VEzHu*a!3L+QZ5NasLjM&K7HHi31heLFv;N@o;AZiB9y zoxWabOI^ZK9Spt8W_={w>0ov{m{%Ok#|~zMY_dok#}{XDxPzJLV2T_}y@NT~!JOt` zE_X2ZI+!OM%xezj9}ebc2a~K@o>kIJ2UF=_mWME>Bb3=1XzpL$*p7FlE!@=Hj5lqq z5T-dTh$S04mt&1k6(=;*K?{H>37(V2D{^$uWvpAb&SKlJ;$wj4=p3_{jWlx?_BwK- znvzO{;mm0Xbn+*52EymhjGW%<_bno)%2q=;>6aR8oPGr&l#4Lm z#R`$$U1)T^rNFxOhx{cGSc%DQ`Emdgp>Hrq%J!B56Hy-Sm-2|u@v|uSqJovQemB7) z^!pAnt&oTPnF@P?o}cZHB#DgIXvq*Dx&a9j~);}q}%%C$6=EV{XHDWLg`*?z6cTC2D8aM^q z@d1Sdwn(LOLe)w3F$D`E{97clcH74lq~aWT2(jV+VeZ@Gqb#n!=h=NiHX*PHWHCX6 zhykJkCJ->9e(?Y$sv|wxf+19pNt$1sTf+Ak3 zQnj|V)mGbz`m?t6T5Wm1-!sp%`|NJ8?fZHEc;T~|nRCvZIdkUB%$a%SnTK=^--2{} z+Vb=%jK%(eU+HPZu{2|6ZHA9E8*e}VuZE98zEa%Sdm8N8`R@>%k@D|5Ar{@-!Z_gV zaFH|ap%rs7mCSKwRbNK^p80hgNYgEt8waE>f9~(%K%j&EiVEX2$XC^`0bRRQE~Nrp zS@ZCv`JSzBymxftXN{3RHbc$Y(l+B-rM&@%5%Kiye^z+J<NDxMly)s3ERErM0Bs;(Sn=M}x&8xc3@X)S+3@ zif}V6%|9N)3w+YncTBd(Up4&53I95Jba-GoZbpEhmZ%URDgfa7Y`9g9@X5QMPx`?u zju^JF7SzZDb!(G*`_K;I57ecJs2|Xnh7+MT+a?*u=1M|OPoO>01tFZGA6Y>FDEA~% zo@F7HB_gH+(Yd23422C<s8Ck+KWTmR*Xl$!%NLxGG)xo7KvY~5k@ z3te8s9fN>-!N({G5L)yR%A=(g+DzfO`OdeW*+EKTlPPumEc3|xur$X#FzUn7NycDC zR2kI83Nu=jN!nzJ4#Q|>(x!%L@GH$8s?LctTwy{9*<1G+TR(P1%Cf!R*atS=`}Um! zCW#!liG(qG@S!9GOn``QCLuU>0uf07 z+)es;IESchzXDtfFqBR{^hF}DR~XdM?OVvF`|KkSVZqoPs|QgEvWQbfnCL;DHkrdK?4_}=L(E}AcpL?Po{6o1X<;I$gS ze+7tGHOX~o|L_L%r$08cH&xs!l^et~I&kI?cR|(m-wbBFT`}~vYf!80zZsY}G_-}W zLxb-Om$N^4ct;9mD-#tKhOmd{F-*&d&2B*cnr-HA?SV*5zGt|O)+;TBBr_fjWypNH z>G9#qo*>hiD480e1d)ZB@lfCZCSGDNJzi?(8)`fd*+1mMc*>RvdN||!#(T}h(DqQ^ z>1k}DMf~I4z6K!jycS%c1;DgkIYbOxGJInp#!c{uH13mn3^nc}^%I~2_45cgf(%zE z7j&lw802&h)E`3+!&@6zkX0E=VBu_c1Zy(e5B995;NE`A#va+r$x^pJDutfyp^BFS zDud$I17>tol*Y@rm0X4{&7XwUYp`2yU}@2ZZ;u_?D($y#U}5BUP}f#z!+nEqI%U@? zwcGF+xL?uvXzPItH06E-cC+rchU156!n7Y)PmUH~RmO1b`)DGz^s)>nV8oWL84A2V zT>G)6qoT=&rZ8@(@qOK*8IBg+v~Z~Lqs!$SeeKoj&x4ygL=|3Q7OcxR6X+6;Jxhu3}t!`aTiwDp7A z@BLKAhDyZ;joR=+@q#v$VWt=!Cecu70cofTZRHk4-thMOfo2~Z-rfzqY*^MGwUJq_ zXrCRk=R5Y#E8gJ=FyVd&vLD>ezZB^h<#?~5w-Ysl3yO{o|M*U1d3%iR&RY)}=+WV* zH5?f(&xr5I11}BLdLlo$4Vk?6ZD(+ef$|@KDy7gMW<}4N@BSTzs=YW%e&{(Hy-DgM zTD8%-QU0p!#T;7YiSzQ92*S%Zw;vuHBVMqy3$0&TdV?B{+8cmkZm@Nq-GB$Vr!4=N zWeiOU1C{I0ei7uL%o{`>+W+>L9nOFD_&0OtvP|#Z)XuFRmwLDT5{oW;jAZM_9`Ck? z5cgg+ggPOexx>5d9{?blcQEh{ISy2y%Ko@2ADM@w)qgv2_}RN{4Vhd$olF*OQQmF0 zlgA=uSUd({iy1>JDmY}6fM>K*So7vVw?NCKI~^>~xe0c(Yfh$8O$0%;l1Wes9TG#=}`yc`A0q(3(Bq!MUtwFNN*MH*cQ|+;)>$$BYqw6Vs%^Cj#qJKUGwYJF^_lqM-1-|18*#N?O9%Yu zh$Ld24;?fwGC`a7M@N$TW)qq^u5+@G|E6;mW7Du%`p9c;I|l|_ zv{j?_NIlq9Olm6`&Nz~PsRaEIEwk|7wA?ANmP>Bd!bp>8w`(GHZ~f#*lc)3fBi_A- z;%PXrMe3lo`ut;~F=5uvk4MXhxb?F4j7VL!ciSddB;;TGdGbe^azHXOzWCUr&@>6y zImg7JPt@ndi=Zp1E0E6t{Mcx8^7@i^v|RyLq;95n+g>ye$}j!=3KW85_Ax~)2DbQ^ z*b;~^HC_Z~1r`EbaBOrb&}YP>r2>(<3QSAVW%~;)`zxRMZ%4Qv56f(?6Somo>>G4^vC>?2gj)1V>C! z#z@1})R@t8*hm=4n#>0;Jo(B2I2Kp@K3Itfg5k(L z&^7c6uX2wb@1oAe-u?aQjv`R=i8e9 z!%)JJeBfcSC>%u(m&=;<6^o#mu8c+BqaLv%i)Y5 z9h(6x_I?WYHJee{;QaTk^u+Ov;@&B!wG?8U9W23pahbG%z``Si;&BK`2` zZyR29$53g-P-%%grSkj=8kKDlE>rn%XHkmF+~VE#+f-~iWvEm{y^w0rWQm%Hq9)hS zVFxeo-YG-96+@LVXQVRkU}XU-7j4wa!h@B0glK2vQ|*jg2?kMTq*6O0l~HGe=2n@{ zOx#~ULALQha+@*N81Jo=$1bg(VSiPx6xN|lyjPXsuU;vv(lJlx4)697#1lsG!1dm3 z{irGV|36qO+|0&{V6Ct#wpOUN)(ShgR``z=2{*?r5_Z{(gdIbWmWzbI3nFUZWydsV z8D(^E|6DutqsH-en6OCTvt(4|l>gEWXVVTNo1$xkE0fm&kh5R=iJ&$XIxQ?E%Mp#QT z#bp0qD!4!td>j;V>g6)o8@V47=aDmEy0QYA!WGa!E(|d0onQcr+(V-CPz;9lq-7E2 zIlf;@^^dqL;%vY%;!CL*vSEx1e;T)=^lqFBcuHiv9@XLZ#bXLF0gQ;^YA77H8j`%S zl313s6msB_){$LJqVhNsI-UP$v5{p- z3m*qAY1I?OL0ng48P+}DhS@{h(vih=talP+ax8WdQAsPEXt9xHNy{7ut~7Ctbw_93_Sncb@s6 z+XH_^MK}KK0~CK^=D;5N$pQTaeMVx_qW{3XIPw!@7ysR{zj5R{dMRaYK!-qAn}KrQ z6j=h#!N;)09}3{u%5#LrATJ*bJV8jzyTHl}2kVu6*Z@aah{uC8JCnF?M}Ep`Bzw-6 z7anN`2L1%rf8K51LO(|=&%5mw_V^F5F0uSgaHGH8`1Ek#&NokcO?&fqbG5JpTOyr1 z;_zMzpT^a~jAZ;@Ue);zb2X4Eco>A{Pev%>X^UhQ7Zh*cPh0^%u(0n@%Ey6qR;^Mm z3I<<3@@HTy`SH8}-X6E>Ycrh=A(a(vbN$eGlgWoU2Ll!{#}3goJF!xaS$< zXL*;9?`S9wwgf-cW^ii~1LyM)c?2k%&gI%c6&5&{Ll$k`y>o}o`7d_9a;%-Nfk4#J zOxpFbcG&IRYEG2*Cz#;dSL;=jQ=!pS*4wv5K6KWf`W&wPEUE(gp;^9utd=p<_!(4* zN9i~0+t0#YPAKfq{wTk=^%@pyg;=aDH-~Fs@Gt8H*DG`b(G4#=+t zD$@97?5QNYJ$4wl_eF>05WuGNq1w+P&m9_u<4h^uO^^au;^4?W_kSY~tM{n)zQZC$ zf@JbYm1WA%5+~Hym{2l4faufD5lrmY!-o|55hj_^%aNL{U`=rXU{e~Zxj*{+bS!6O z$MAAUs;Jv{B!1%eQON&C{7{|GmG8t6<YcEc_=gG}gdDHrposDPg^YmxVl>VG9nN{Gcx@`k;q&lx%Znal9-7Mwk zWM1ngoa5&w>YPv|SJRV0YumtJE57yD576K``7kb^{e!)|J$(Zm?Rg!Yo$}FN+%Y49 zoslQ^6RmIUwnXe%pVx`2z{o2p7f!v#@>!Q0<+Y2*_*7dS@A{e@<%=tl!Z_*Qu`aK* zyRW0Q{h~a4sCWHrRo>GTy9cSfM}NvTda)8d*U^EG61ER^cT}~mZ}09XI61Gg74K-Z z=WXm7SZfK%Ys>Pcbq`XY=&ee}(4SKe$?EM_jSZEvissh@BvPV8o@21m7dj;(ac!A( z!4v9+JKxvO7!Vca*_RUKb*;}^tIfb_#BLmvk1EPmq;48Zi};}O>h2DjQX7;v&|x*4 ziopkaVM0+jK3}|^f(@*Vf?}lo_`bKz0JgKPX9G#C@;du^)=9Pmd$Z8|3J^X5Zkz3z z)~@x@MC;%{Pa8hYjGME9tuS}1e2WpkD$XyfIhmuq&gA)N8j>;%+{%hUR7d+P2-tSvtkwK>UTfb)i{=11Fu1;B(VC9+_&{14 zlC6DhYZt-x2D%23uP1NTn!H){bEB68>ZY-8>pP9FCg>~dG-7s}It{O&^!1d)Lo}O8oO6E%qzgr*y-WVL!wzjoTx%+V= z6+UU`y2RjVZ>rjHfN8#ulEI$^vR^VT*mxd>Cz=)kA*dyfBvS^#y#$iD^RI;YM5Vtb9I)aIp~e7?=%o<8 z8sDi<=9lw8m(mE%CCdEzoh&Ad1P^bwG);2_yj%?r7@Mwq3VW!a#^WxAh1liCDB+HZVU$NLk)onWeTLm zAI6tDL-irNm?&b)EWp7_rJQvWWoKRN7oyat@;uBpY4SEk6j+*i@*;GX^se-1t`l>% z;+_zE!*_LScQFx4UDj#|PvKD`h`?lwfnUWl^2@oHVth%bDO zs-hC()J^E}i;!`YIchbFk|tYPzcSoVUB0X(Sl=87wKUc(tE+FWQ=3OZ25N&1c-3?y zR84)eWiSa0YXcS4jkT8fB;YC=@huf?O9`0f>QL0E5>U1N6}ENRHskp6*Qg72+V$4+ zz4BbS9d*@4W`VlXW-P@98BB~{$4NVx+EnSbr;v843(FPQR}?UlE$m5O-`m}K5nC^9 z76BRQQGY?D&1N6Zv}`i%G~%;uYe_5m1{mguwWQ4w(^yr5%X}Vam?p= z$Y7TX5Irb&vVArz+`7WNX+v>mXn!{KI?fw z5)(5=Gx4G%CS_?m_PlJYLaxb~Z<57t1ecfjTe5gX5>qqzx{2qvlE}~G$DuvHlf-m2 zj^cSySQ?q*4;+9zDnJqc;b?u5IFCo*8=F?djO?Wc>>E zRh~A14%cxY@jizZp6MBIJp{aN)s4=2 zZ*tcA5@)?Hb=G^cv))^*dSk}uL!Gxui%rhL*L0O9GaU-(w9B^^em>lf|j|oLyR)6cd-fk?nJdX=tYL?78o`WKdW%5r7sz9so zDM_57Rrs_dW@;5aBZ=Ag8YOLG9INH|xoZ|`HGUt4f(nn%%@HnJMzI_>iL!Y*!jtRf z$dr8v$BT(>cKz)02|wOVgYx0c>|T5!-c9TA(Wu4NmFEOE+a;TBsAsa<1Zy>J9}`pD znMkB*-?qgXUaQh3KLF_HMW9H_qaX^SwLSKp_!$5d(L7N^Y5F{3Bv*RLxl@@7Zn;Wd z&^UoJ_lD@V-P0F(@Z!@#)Sktd=63wGMX-E`g7m4J7Dk@|&7@EJA23kbiAkUF-Lc3s zdLkhO^b;~iZ^hqqnWwTxo3NJjQ`msM^ntZpX{z*7^H5w)`no~fRiV;nPDg4|I#)pr zc=5bnrO)Evn5Q9Dmf4S>^nA$XK?n&kNoJU%_Y<1Fp|yLkLyg|gxyte)u*P23)du%= z^#1RHWCCwk$T;&gM2};1!doC5Gy6TJ8BJ-dsjpk2#^!DWiYCe}Q#n!NCRsm_6(-8;8%CRM=lTG#T zaK>J71Eev{ivY_>X{@emP-Cy=+$`~yU_(fG@wFl5hkQDHI=QBlSNTIK^JiQ}2u@`_ zBJgI7cxDVe(}6bLug zG^k9ML2O!!xNDhN8SQBF^a^Z}6sfE+RDw>;QCVZDA5(C1RhE~jQIaZFS((h{QDdmi z0YqiMO;stvH7n}`fFPqzo%JQ8Op|1$`BnVQWi+K4YRg*6=ol*YK}76foara+G`=WM z)m&H6(xS|Y6}9b!`B7 zGL54EWwmdt>ETt*9SvQ$Bw}oqK`jwng;_TSA182AxuYELowSF+V9f2HKM`A}$J2Rt z8)^(KX^s^o3oZHdZf!{(|jQQ2%*vDy-qtggPLyuKpP zQi0V=O+A*cTO6|KqUNbBQNc*w7;dPqZK?H#!d3nnwIwQApw3@b6G&ti6BBtW{na&% zp+HMb{Svh$CTvA@ShD*4et@I$S`0NbDsg29rB?(h{TL2VSY1P4MFVn0#rBssR5$sd zRO}*@RX5nW-4d%rlwy8yJVlag%K$L({a;oZH|riK=K{f1~AmtF>e)%c8n zgvD5jAss5lVxD1%N?};OQjKDW`^^I?m9a98cpiaOhl76H3Zl}O(kuUTA>n{OnlZ>x z?MIi(V8UKqj$xuAP+naN#gAp8x=3XT1tM8GGDnTmkzzGoNJ><;29zkD0Kj&Fh9Gtv zV=@QiFlLXlxlC}_pU6nqUm5U+LjINbk`0pOIzEZcNqq+_Y&l3o!39_D(bySA+ zDU4%4;jERklu34mIb7mB9c3NU901 zVuTt$Asg0s0;A^m{#l5RJ{}Iu_<;k6%4B65$@ry<0WwWm?+Huje2-r}Ncs;zH@@>5 zh^o#rCn-(aug-N3xZ>%1vDV|i1aotc~$o$0DqA!>X*EP0ggW=fvNyQxZDzKHSB zagd}AjpzHKHSh5=5%SFj-;g1$1!ltfPJDayS|P|rQlp0@os-E&j=nERVp7&X|HXB@ zYsvRzgHvMOiTKz=+8|X(JD>+1O+Ij z;f#)HT6E>dB-~}x2_e74n9Ftm*JDsC-yY*skmapFd)Ju0Cyd#-cDo&tim1%1SotTd zCSxN8`|uR14b^%|fZ3Uaqs=z_=qH&Rs zY{uVQR^4rD)h1HDUy4qo2u_r`b;59ZYRdfO%TUfM#!rRG0sNipf-${}$dq&WrvoW1 zog-`6$}onyI&7wf%gd1eUE^Pp-^4;r^3Om-=Vzaq!ofrTiLrwlP+7eMo<)K<%J(;; z2H8zBWOM5zH;$hpN~6upS)C7zVPSBc&ES8?fL4;gpd8Z^w)FLwlE6p#J~3VpHovyn zyh}D5pfnrr-RR!gz9(GEj~Ay{hJr&b+ehXC2WBT}lS2b~Sa^VIdf!t5^Z*#{_`+ZZ zw*Fy#0?WwkV_*8Y>nf-$Q;lO0zUN#l*5D?9w1$TyVd^3AT1l`Tex6P64NE!$Y3n9E zOm70p1SnYF1d=aHnsZ@gWmq=Zf_ekmw^J}Vf~oCV&;AfM#R+;6(OrG(Hn#QwyP-=@ zN!JN354ft+B^@7V6wt5I|!V_JY$!-u7HaA&k-%ak@P=C7{$ybN~yB}(R6GYAM z#FXj#m-{t{UL6w0jb05)WO zDU!lSPg>t7^Bv|x6eg8sUc!9s8y&@@%XSZ#)$9Fu-)Nm5R6*I1_hkqL+rw7s7=ggF z$ksR3%m-KR1rRgGmt_{^Q8b&|I9s-0Pd~m^wE^F)$2MSBTbIo6pIr7CSkJ$ zD+ODb!#F$82SR!bJ}m^qvNJoe69k)?)m?!OQ^wtO-*Lh&TaBZnz8v#vO5KP_IMa8$ zc^##0E4R0BeUl`=$~=*i^a+wMv)Z(6!Qdtf#Dgy1EpC%G{VC=`m_GDEuD(2T5tw=( zLp`*=W-c(Ss_ z?)8;s6LgtJ4eL`j(&$S>!}(d=y@B;O8if-;%2#DhLahq2+E&vM4)=Dnb-}=bxTAC( zTB=$&&qNOSK3XDrsY&ku4`DV+XR7GHGf3sDkxa#E9F^p&GfzhWT9=iT+%yB|5~$6z z5g0e^HA204gJ8afzq!Hfck@2 zIPYcGrd8k^&MGd#)A|@1=niwW zpx5GWF2x6jI2z^aGOINlDuAD-)!=lDy3N~#$DQ~qe%d}nrZAKCXeMgiAqz}2$G6^G zns2MA$5K-}79i`^Nhj_V5FP{dZm3>gHi*+_aDKlajp%^|#9)0wm_fq&!2z4HUnny{ z=>QH0DJE<#BUk|~i*L|8AEKBh1@^9SD;4x@G(Q3;t9ym=ZL&wUmCARKJ&v8Nd>31z zR(EKV@?9bcND+cnT`CETNui6C?=neb)4s#qU6|9A?{Z*#iRIxnHn!xdd(&%nYkJ<$KXG zyzbtLE*tiec?B#bJFEZV%03Lz?cEpYb;mEwOq83W#*w%0Wpg|@i^8}QV;ld==2rkV zZ6r*^iT$;CmtgP1-&{(j6&|x1SRI(zYXs%{jrn`Y@MruL)AWBPeC&D8t+3gJY}_+C6Q?S9pDSDX-43+wQ~^+rQUU)b8I@fts1(mYyUD&XsUW zH5CTGe1T@bfO<4c`KF~vb!F($u-aCv4yLDYbAbcSl8*I#7*%IT*8I%d+1v$^D9GyO z)v$1*FqNdx{xGZxq!p%qia-jp)^Z(dYy8v{K9eZU!bc=yE0LKg+~_YsS>>T}<(nnU zOSuGg2sAr|<5z`KZMJrNr=@%X-I(U1P$5?pvR@R&rxo&jH7U;(*lMd4#+cR{aO4Nm zG-_3s@+_8gn8^v^1BGrr%2&R6fnx+I$3x_v!GRjyVeJbFG$RUiWLPdJ3?yYeebRYD z0>}ofKA=?D)s1N`EKp2y(X1NYAaFc0_TvGg1~m#OkIRN=eSA$RM^RH<$M~gd&>!;G zhMQHXuOnsG$##`Httz)~Y?CvF%C|-!95A6@!q}Z*8f#NtK?BlY+Mt?sJkaIq5?YR# zeQTn?3$!6-t=&i`>cSL0nu48lwIM^dXgdcPaOkw6BHX}-^HAry6t0{X>c&f4blZ~q z)~D=);HLRHT5Jp-7`=p~Jd-gM`-EPkV-tHx!1{uy%Xe+cU8kUfqAt}q1JDs{9l#P~ zSZqa2)mvXu2@m&|nz}kRvPXVd*UNQcUt2wPOJs`Qk;2DbnIyCN?M|V}Bc!bfpH*!S zQYT*#Xg>0;=^co(j_Xn$hrHN4>$9yUB%|u}!Z}Djv@$m;daz8h1X zLB&jyI$(PzQ0OIDGc5eODYuy9AJ}M}fN~LFYqHr?4hi#E%4u(@8Lzs09ALKKfDjNNd5S zV;gkQ=Co_%yEo+^DrB0!K>a5sf8kZW&syv|AiJxXA7FU);SQ}?2s61m?Rz4{hlH8Q z?P=d3Nq91ECfQRd3xLVU!U=FayK(NrrbkK`;7o$Wt?GbJ3I#or(g$#M7EUHR!9P#g z32;u9wbptzvuj@!$qGq;*$ul*m`TAm_*VtehT`68gE`Fs48 z9d;^0hyWagxa6b`bWRS%dPnR@^iI$mZ_`jAnq~`kUrh5X8$+FF%v!hwk{jriHk!K8 zXnGAcdXtT&t~8nxn2o;4MpJo$2Fv?wAQh+cZ~*|!Q#OVQ(ipmk!2A&a)8yt@oZVE& ziw-5tVmVu|zt25=%W_gD79p!;IjN^1VOx$QJZ#Ex=S}s#r&96E3|7Q*{}?IcZ3o}e zsp|mLHq?hzNZ$ag{h8Ej0n`>01^ztsdjRHS>31^F(9fps17H#ip|$M`gLv5iW+Wgn zBP~142=M1qUj=DCWzulH%siaxnZpGSER_H~Qp2KBrvf~a;J^kfuj_gSxDc|I%P*uZ z1h$aa^4J?D)_U^A)N_C=W{8uTp;k zOhuM{3Bz_Nf0OzrK&wQ98ipS7N@_ap`>r8x4b!}Tn|d<9L4r}QwvNh<4jhhayU^0e z?^4TwZa^*8x5we53xrowSAk-M6sESO>0DOS0;eZ|y=q6S^I+7~iTd578y%d(7G8-cUA6mht`2b7$cQ#C9iu`eo41a;i z`v%E&-N7a{=j5SN^^Yn}5p>=6Mo&&JTWHAc3<>1^Abx8A0qt!o;NCR1i|6VNpK zZ8WXkfv(o*uh?kz0YM|r-8PWcuJg!nAwIroK5nCF^$zqZ?CVb97-5U{N1KrSKokA| zo1Q3PEC5nv_5qDKij2S%*cf&IjiG~Mvn;dG>nhG3-1VBTEj`thO=iG#VpMHk>xmX49}EX&P&UzS_pH^Tha0*^=0Hx7vj4 zN}7-hxG4|Wi#@xFPuhg+SPnvIkxNKz3I2DRkUdQkaz!;o*jhA`fD(nUhiMu*SI~AT z0CAIwHJ!|~9x&_aq$TZ=c_7!*$@ytJkg%qcR!MlQkx&mL%GZ|mAV~CFqG1>b+tXeL zQ05X1vz>^Jw0{DTt;gBUv`O1AOvbat&7?CXdMa6#IAz!ad?XQS5RMx#ckC7-X0ZU!O56#3&EV1j^}=DGMQ z0}QJ!L;zkvAP)%KYXijqr$~|u1JLjhooU`^Q&I!E3~9%&+fM=Q#^eWag(Wqj2`!sG zVq>Ttjd6BhH=vS{3e)Il7lZ&)Z8UWkJ0fji(K zu2`Lj2Z?a06zi)=F;){EdKhKEP0HZk7x8!cHn6zXOfSElMPLK5L!}4!x{n&Y6Vpn1 zCE@1i*^F0hLnC-*oPlkn^lCo0X)tHVIoV~UKyNW;$U)f}9+cf?7RXyQ>9t=)e%#`W zc_4*l&O~wo%S^9hbd-5q@h?lTZN=A=g4HVmH9Wr(J+_nxudb^ItSG`Us(5k%7vogb z2;dUyeU}*XAf7e{D)2s60=b6c$Xv>Z2)xNPDghw}cN$A@NGrZz4VTk;BO$;kZKNEP z$dNuG0y#!gSAl5@EM4JzTCE?ig5jxLOC8P|jQ}p5JI7X)le%cmT&RlNYX50-(^XI6 z<^-<@Eh)1VFACJufUd9=?*RKrtzR^9G6B?Y>)k=UqHGCXVAC~sfB{`$>)ZkMliE_b z0}QAi=a5jZRs2-7aFd2es+I#9t5iJDZ`H{GbyUd#r7YTz;(>mvJ`SkJJ&FQ$@!d8@ zb!+@9>l<-IFxHM*X%>7gn%^>csjmet#=kh#TkxWJ^XA3r-hu;M6sLR}K7U@E@-1)) z{>5qEg3l=`IDv!sdw z$}MrCfC@{9C;*3sMXgalrPb4-fF)KBivp@}YLcBa3aG}($vD7LH6|Xg3@0e#C~A~9 z9#D(3m2nhxIAa+HsK;5$I6x3*F5>{pariP0fXDCgfG`eY#!>K0W*neV<-`M;RBk+= z8OJo^vaG;C%{ahHH7Oo&Hco5CQ550KW*lISni3C~i(|-f6vgVqc)&b0H6AcuofHo^ z9VbBJc$BDV@qh(tdOV;|&4>qt0u7C!I#m!4wVv*r91rE8BpkLa52#b(5e@z_b!t3F z)6I+r)>hXwhSjWiU|@M8UN}~>#empQ32vyft zsMF)2VG*z-9>`-4IPktqEr^F#7O685Aam5236QyJVFILBElPmQQ;QQI^VL}ikki$^ zgfXbHghz(stgLbY4-UtJF#6&6a00AI;qY(*Y>vX=;W$_@ghR_=ocO|r&vA@64hL|3 zO^v7p2aDrSK|fAQ^N4XA6ld!Kp$2^MHy&JtSIgCt3BVxs%o~I1sRVFE0B>6a)YA#z z0NyKkCILncJnXN2o`4V&RnI0sY18Vt1fb-9J^=`^4kv){1dw_tufgGQ^@{}LvLJTD zo3J0QUP#8&;&6X;ux6!taRi+7$d{54!5Z|`Unau?ct;?lUQR|7sb3`n=cr#N1LvyW zBm;}pE6Kol>bJ?j`RaGcz|+;M$-olzS~75f`h7C6Q2ikpXm#G#6EHH8#KxI7643r& zu%^0PuT%b*fRp#z)t?feXgq5S{Br`PvS==@0E;)}%A#U*BndW8y_E!;uij3Aovz+V zf|aQMO@b{@?TgM~V)gd~SYSncmq0HAU*`&qL2q*L)s&u8Mpfx>$Yj^U(9u(C4A&t7|_GeYzU{ zJamcr(&wQUs4pj=Yy5Rfiqwt~pmWsD5ukI`S4MyqtLsL9&QsTq0G+RH7y){^x^V<( ziMnY7=mK?f0@PoF#`R-{yd?pFj|ztZ%hgvCz+8$1YSh;f!7|%nvpWHUC7#-o2*a?eZcPBntf%|yHxp4I^m+BI1ZZFdp|>SK(NoY5 z?ivYNsP0YxH&oR(hVkBPI41v(5=gAq$6^HcBoLH0hVTkp`O3z+>IQZ1F_7WLGQs~i z0S{^EF+h3njP6TDij$$Sdy}!Y107KJCnKXSbU;0jjHNsOU@|!7{y&tA^s9%Hfo19^ z$-r{;(_~(z!fmAN0Y&NzTH0pA`mKvC!-D|qiO=-uzD;RzC>P0 z2&u=DQT|%kEKNlnOh#6e)x_{mB;)aV9A4M(UIvM#yUC z>14QGnmv<@z^ev7Plg6ol%odf*<=i^Yr^ZRp@4dBL>yj7!<#JX`4N%Yk3Bph&RenH`LiS;pS?-wtYha zc3D{kUgB-6ZKz+eq$Z$lJO)~dz3CW86nb+4DzKF6f?E=xVI0d1s;?$Mv4ks9UrPqg zQM(d>G}}<1ng0FPN5WNNJz%%VH#7kj^3ko;FrE=5Tt3IMqH@e5Gc|8&2v3Eqn>$a8wT{hF6kz2+q>(b>we{Kcuj^o`mxET|V?s5Z^BaBqlpu zE@-tL+s^>QF zG41&o&_};$g%=H;BCjr(xwF3yQBunq8yYZo#i~j&Xg( zqD5M$-*i#NDXvfWq!$m@r}8f^VWV`~JoG6hoOBo1w5v8Lg71nAcPpt6j`mdVA*kfZ^!yd+^cI15ytWOkD~BzF&kyq)n_X;U(|fO zK{fN=>9B{cwvG}7T8=1PfX&A%y-c%P#sEo-5U+{Dd zR-Iv;QEU<0-vjmI!d-Y?a6WLs4w;3GA2s7JU>9JE&cmM!AQs<(Kfk(Esk2r zU<}4FXdr{vj=@0kYaRRnBse3X48L(-9D{B$`0yAEbn}Q3GthX#pxgK;j=?rE;Fvm+ z68FTaFwJIAZJfE%(m^R(VU&9rsCF-2a10*AD&^-1&VNFu*zJ?Ha(N1rzZ$?Pmnn6j z2AW188qY&i*+!tQwZJLv^Kr&QQ2h)tjJc}pCJ^kh^A)MGy-43_r%P4Y>qtKnWl##~ zoD2$8SqZH04Lif>g4}@1ng#&=)CMoG!TwtTruT71ldW;VnL@W zFhuL=CN?;K%)yzJEJo?Zt~bw7D$v`3k?!MlC!u@oL<&Rp#~h_yJIzYzz@M`J?n0sd z^O5mFl*jh~9XGlak__27@MmAnuT~E5wXNV98N$iZm|%~%Bdw=VApUd@fe88yzpEMI6naBA?T{~K}4X> zh2KOdf2y89Yz}1g-;OM_k$K1I+PA(0~e8qjU&(+l1Qv-CSpGZys89|*D39F z;7%?6DJGY0TYlY@h@**!cP&H?q!ESnTh@>Y$ALMD5)u4*6%k7l5Q`UC2qzoVRMjR; zNW3Ip8P(!WBGYAJ-W<5w0Yxs393y`qmj4Dj z{{?r(<Y2Ri&l5|+wHTc#-%ij=aA_ZgvPFOT9sNJrX^g; zD7uR_lgnu)3!%0UZ|O8P(@k;je0XzsJx)A!cDJtSSH_l3j7&mkIDa24d*Sz3pK z_He(hyb!n!qTqb35?8;6+OtM_cY2Mf%EF*oqVYhOzRqmofvcB9@aqz8OQJayO3?gdfj{ks;ZS3JfYC_~21yNr`jNNn&d1CPbG0UPV4 zGaw6U2*dg%lxDfzci9XcGA@W?a5fnnI0l3Fg+bXOpsztLa&`4{Jn}$R1Q<|M*(zYa z4lL&@jp|j4uK@6H6S5dVHyZdXV>z9rl@3MP8#B0D1D|N&$8D5xP!#$a@@^A_Ufymi z^q{TKrqel|95jfE>hqB3lh?N|;JVNL#(^@PG-$-`ov*E5@hx(+(|2wxJ8m>=2uxTh z5~#8TfV4#+cWzXRR{+8p6EtA*#(GVA7sde7q!aI~Ps}j5VzXD6eRw9WipZ02jIREfS(-}r;DIzWg_x35dJKSNsA?hUK9dp4HcitL)2 zr68X#O?OYUn*Xq?IYP$egY+j-Tw9ROFZuq6e8C?hIc77`=ddU|-nG`lm3Cx@+u$vRxM9hE1BF9f;>*)-vp{)zD+i}C4 zGG1`sI}W>R+`f7R?DEL@C+^>&DvRa|^d6Op5gypPB{40u%r^m73tV-VTH$Yey= z=d0!-atmljv#U_H>286|6WRbtLrCgz+^389vI#-0;>j) znvN8R>D1o@;%i8JyUVv0gId&yUqrY5JP?Ybe+~1Ku71Q^H1m^A3$gXz z3bEgZ9c6R{BgI_T-Tl2}A-KmSLhve$Wu((W+~yFX z-*h$y2ThJHR;#=|0c$9-f6n!?Ez2(QB2Z*`Feb~y3Dlh_^?Y-d)xWoAY5@Tnv3K zN<(BV8=Tmx6Op4~=ikPS~Kudk5xX%-z{Zn8dMDMmrOL0qWRxL+!k`Nvwf=s$U z$$n&`e0>cC1Sonb_lkxnL^w~>-bXEtnACY@$RIO%L*gpA$#0lg5S3xMF+yUk%ogP`fkRP3N+=F*+<}f!{6F=)bIf<8ofbnwo{k9Z; zA{PQh3KJ%1N%0YgOG(`1&gw~$VlfCsinWNy13xXr@_#Qy{$z}@WIWBi7>q?1UnCa- zMT$FOQmg>+CK8|GzA0IXKiE=aWFtT6v=lr4y%bxfC_JqO7>h0rlM8_&#b+@oegWe5 zNSyAzGg*rHK1+%=M3#|GOL6b9rQpb84(`I@AA@BTIui%RXTh2Xc03La_8vQiqpFlk-Of?6zn^}nkpW!BG=n&P>J6FMm9elkqrob1(RdhhwMx!`%}P}>8%knq3l#x z2xkrd8F_lF9o?t(VU4xH6@Zhg|6)YQYMw=)2VZ;g!}Rq&nwg{j;%hO^aTa82aBS9- z&(h=Zz#a=bBgOm~SjgnFoo&y_=Z9>2VrBAq2B}~p=w((}V@3R5v?AZLCE(<<%O>-} zUL2FpP6$C0G?dAmjo7mOZ7^TVp?IW;hZnnA@{*(w5*ee-9xxDj-4iT%XCbnTSdn)* zQo(ybFY-QSMf`7Ck#mrpx}e7v{D)2UR#aX;=L4$tD;8n0377d$&F^WnHSJ+f@>g!< z-v$gnPUcX_9tuGYCR%52g&-g@FapO#`;(DO21*B5Oc)7_9_;b09U4&wS zZWJ@cydC9;!!QhD>-if$rMS~VRp*2cZlGYX++WIuq{3fZ-pCbbD7-+Zaf zvO&8x)8cD0&904Jea;ZM_dt~MC}$rStfic%nj+&*V>0q)+1=Gw*)oo>F308W_}bz{ zwn#parvWum%XQfQH$j-DPO0}@|*+^ox|tUDTvMY@r|X9-K$RRCeMtF|a!D~sZ_a+YXi3xrsJqY1n-%Fwr~ zx^@o8PTv(^nN5}z=0xz6ruzoSE%V~kwR`am$B>^`*xY)cr3dYVfhJc52Ug_jR-;xb zu?N&wOC|mutwgO|iDvmwuSFT%Z>yJD+|628CkKM2J~^;L`ba9gec&u@gR3#^w&7RJcQ3y87}X*c)rtVkwlVb6?2)U* zuOMTi=whkPKIB*`)w%E@yE+%!)zMx5QW1PSL=pABha68(&MVFHkVWJyipj~ZrSD#B z7L2TZVj<`6Y&nZZ(tG3jUM=D^B4Q?ZX%WX>Y>RkJyog^E5i4vFOOfL>inzlxkVQmX zohV|%=ZiQSXi;U!NFs7b_2XtI<3kf@*awc?9W z)fFxJXqg<_!zV?i^7~?~__SDy^TIrS-(=Q^7=3Vv_<4fo7t2~!@GPYAEr>x@YRDNe z$k`flW(*SAq(KWEpo=tUkppzG1}%<(@c2hgVadH+xNWYq4_7XjRlb!mV7Z(GvxGle;M}Ul(+51rkk7KG2l>dSmC&}9_RflG`;ovL zmAitM{tK$AqZ=|bV}l=e#v0Rkh0SW&^R~_;;^RO#SD$h+9UOYNQ+Oh=O|_GTAHM8q z(-dZx!G~*f(58Gw)6*0k>-sweEQ)Uk1%2KrLQ0mJR!Wp3kXCVi;`rcW3O{A7R^u>m zOLc$X3xloQ^3A)6<$UVL2iH@0q)`5-4pNo(@Q6ScuF=GEj)@ECNp(tnqI>wV<)1ca z%h$H9*OKpmJl%MkO#8X%CVygeX>->00;vn1vq}vdRo>Xv-`%m^V)?ki{Cw^@r8U!5 zN*50MZD@gigS&w(x)WTy42K@7=-2TlR{pwoO**Zavf%kHz)F z5$o_?dWcG;OEZOrq1I3>op_*OvFtYZ=uy~NCIBY-DQG;OF!}K5i15+OI<@W_*IS3A zMf+#0Wf85b`>hhbA_|_u>=@OujA@?nqurk4Jz2)MQJI+ZT={DB=*0kGV`zeMd(Ier zW=i#VJnQlT&Pa*{mBc917(E&!qYYqE3qU^!t>z&u_OHepZchxIK1Q=c#u8vhBRQ5? zbuweTgVPwps2)$2V^37o<4*&%7re#_uN1;Ft;`UOys|9TR&pFfBx@0T{BdzPvtv1N z(^V`V4kTK+q+-X72aAPR?c~4%!2@uJfrmQL3W*TMi*PCMF-^Oo0zV-ttEgqN&zO;` zt1~4<_~Z#e3MFJ^PK-%W0&Y`d5;A$xaau7#nm+~%SmS9TN|eR)C`T!BhQ)%q1&ac! z04sTNG_Me!5|v((r_M%YC>n*%6VS{QhdyUn_|Y-^Y~YziG#E6uU!tBNg|s!@!}GHxi#rC3V^3 zf(TgS%&4=ib%LtLlS=+g!(SZfV(=`?+fZQ!JpN&-zZ=2bjPX4RAQ-H`Pa_z+Od}ZZ zbhkz@CTGl5SQnxH>ViTHj^byiCI)svAt`9N@M~gV7Zlpf7?0E<2LrpH&~C=KGy;MF zPgPKY&~C=G1WmeZ{Z~t{oB>Zz8LF9qEx~e;ASC>n8Q2mm7YR0N1Or=w3yCPWd8P16VlJhiKHFjlV-40wuHBkW>-fU*us zu|Wn(Xu}Lxm|N{!JBpEU8qR=a37nCs8qQ+Q(oqIsi3aU5wjlWx4PsC~N@{Ln)mFeB z6?B-vWB83yI45~EYU)WQllSA7 zuKKb^Sumz~Bo1VoEfA9|Cxc`~lPsuRGK;Z`<^k1vM4I4U1W)Pc`wUVkMDSDug*wV$ zp+rMGtJ|reT?htrbO^!qI%@NO7M$MGOuq-rz42I{Q6($b)g9VxVi)Qp&mOBd__kYJTK8`3-C!u{iPJa0TsN`aJcn-dRWS+wf* z7_B1ht#H0Tt1^(s%4cVj16*2yW@f9#8Wa;2gJFq=8Tb+=yJj;yaxe~n1PsF`9O$zM^FP{5xoilEv8=gLRuhBy__yfWd}@OuvER|A8MeG0?5q#9#qC|R3U^A2FN5jESKBM_N(h`h{43J2#WQBSSE z#NI$vg3#8aBM(nKZ5C{h0SiF$=Gg_Fk7{T;3l*ZU#Zq9%iM3 z>P^NEQ786(U`0YkekP8-9UF=x?iTzIWuUwG#)-CGNcj?}+2V}wd?Tb~U=0n~WMK^rQEC5X z;n9(ZzD`PLVn7Rbb{?Bj1SBm9;-q~E9Y_yjp&)SQ;pb>^Vio$SNXSSkevps>b5Wnn z)`Xw4#d$bVa}5%Gj&Kb!SS^&X7AGY~01=9`z4*mR$kTQlQBu_gm45W-#NC|2-oP&k zu=QzEVxq8V9CHRiFW?998N4ddW;-txlQ8`f#7uBHc#tkObKs~z1%68+T;<`lU>$tCu6e14}=U3Phqs_5fHr^Pk1g$zX(4NGB|<)VHe*3 z5s4ip@{<#k`ZazaWY90nn^-J~!Q3u76;+##9|#%fHfUn73i;e>@cPXQkmEf3Bw^

    mN=B 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

      K%w9UkuqK+;5m<*>d9 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�QwEJlkNozJL)(M^o*VDtc^R~Ws| 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

    K3Ld`-NMW0d8N#%gh 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 P03J~MQFiinU)lc)4#GZQ literal 6105676 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%0A5G}Z+ccUclpn)UE@RI#^M!3!)l=Xs>+GZI-N z7Ta@}xuQK6T5M1NFW+`81h5FnRN|ANouT1P* zX;cGaXBH!N9srf^0BO`;P0Rt(sCOCD71JoZBg2Wf%PO$AVRtVy(0cgpfNoZSH0v{@ zQ_U)nW_7^?g3THw%^HMI*J3p5d*rtC(@JT^3}mC4rNX~ucwUjqy2qlZyv$&U3BJ$Z z42)=snshEBm*`+7gZS=@O}!RDS69AW{uEivOpjX}TD~svOz?LMGE+s}&7joqGhyX% zhDDM-7gk=2tI~aGkT@?%A69f=Rm$)B{YL;9jk%drjJJ>$Gj$)u8s|K<3I~u0H^U0n6u> zx}IPfjIk)GAB8~L{AcMEe+S)W6~2XGGO*UV7SZo!kiDXU-(!#rRKXgFjBZfDze!{h z{0Ko;j|U;IUkC6FQ}9G7I1}4*irFeWfngRr(V{7t%^(X_!6gi`U={ocf|v^+-bGr9 zE_5FOu0|(Q!B=%M75pcI()bKF2hU3}J5Y7#=H}>m7s7ox`V>NTvyi)WiMu=GS%#qR zfEXk)I{Yvi`D_nAzu;uU&f!*&3YbGr_e`C`7Un=?bOdCysleDdyy3{95~RhNi(_X2h>F)LT*@%}`*w?C;u;3o-zxY$2HD># z_(ufeo2pxLT-J4NZp!@uHL)IEhb~q&_&PUj@C!((jMa5++TcUX7{=;)H*IhdX6;?M z(Rz(B1uNVfL~h4CQ`J_5|HLqByV6Z#^%{e$tqT5=LDp6UJ79}MjFk#zGe~2lf@2VL zb*)D(=Rz$Ni{5r~d|J(jVt@YO=J@oA{4R*iLKQU^K`~aZKqGb` zy7iv>DYQxqz+?~=br-0INqyhFOH*$nRm{;6PjzfP){mCrTxs4^?-NO5)b zVZyz}H05`~zaN97nxeu-7$*OI@1|MtV{Ib*Q^7tAvMDNf9fLIXDmYgno8W&T=<2Z_ z)td_7O;d286#NP!3lCNJq~wKy3*9s;=cd~Qt6&y`ELa7{An59vf%XhEmLkzZOEH}h zCEGS0T8iH=%=Y*^N08rrQ27nkOGOAXL z<}fQG5d%LlO!t8lVh(=K(>jOQ%z?4%9Wu`_%Yp*eO>PJ;-SLSO-dIyp!iJ#}DQCJV6Vyg=8W0-86 z=cZ9O${^XQg6CqDC~Q^1ELk-6cTCD;t4F=BX7!b|YXBy3H0%5DQS|6#GCAuj3vT!Q zuAJeZ?g9RCH}>N0hrJvy1(=D@Gh!0J6#itr9euOTYy=ca3DyshM6Kit)k;1aX{;L^ zn*s{HqBBOGTc^(rb0^Pb-R$99xie%cin~Q{19O?d*JPg{w+gv;hP|3DghFzsL&9Dj$eM?@vGoaEqr|wPQ9Rexs^B5ynte{Wp$H2t`!e2fvkwo$`>i zrQj=6_13HEuT3|SYou=J3U-|;g{&W34{PQl%zkS z+&1qqTJJ~^Q_;L$NMt>H97b1J`gf%ABOnfag!k_X?;k|CH(73WrL1>7v;n^dVGxZ7 z!W;zL_a_fxC9DII&V7GiP*4RK+kJoPpga{+k<`v?Y+ZhcU%jv3IW zZUDM<#G_3&sO1(!89WG~?;$k!1^}M!0Hy;N44~@)&?}LCa49ek0@LG{$e0uJg~Toc z_V>WL2J}Luqk>rv6lVDW=tqA5gTIM*hZqlL;&H&MAi^{u))?>OU{kk`fjbF$w*vrr zUIfRPMz`&F6d;5nFl1t(;d2%0QUeuoBxH(U@~2|vCzv= z#3RHHm=e?G_ZZccITLNZ7Qo=E5$`R;8&C?&UC4ntn;0JQiSJ!>s>?N`A0m7Y_!p2X zY3@>bUMmYvpBuMKhF$_5lc_@oX<)ntiZt*Xa%UV@5|zpe=t|dBr8DQ*-&^38{H=Od zwoR|@pa&?KNg~V5W6R#KiG6v9u`j_Rk47x^m118e#f|Oq-2qMxa}8&l8MEfjQwA>K z8H+m#Y@m;TYXs?dq1(K_oiNR+a)T-lX6EAs8+6&ZRu5l?B#-ZW-?>)%!~k0A4!V+( zt^^A5d7jJT88QStC0TpWF?x`vG$fGEZS_CQj*KMU(oG)TS_L;9|-D+`g97Ea{TYBRgbB z8SN8H87^0cPL3>6qoqSJa~#pmv$IKvW`l1%NqN%dG&@fTbhcAUpi8s@WL#bvn{$4& z3T|*R-OdV)V(@}!$qaT)vL<$7stbX)TS$Dy1y*(k=2@6@qcp5rf-74x=uXNwq|%g& zoKc}>%n>S-gkEi*$gD5UK~n6_ITJ$RnIY6i#e)rvHjEXxG|H4{(|Sia!8m>Frhyj> z_H`7Hz=HcZY9@#*C&J~*b|!$~>T6xqS&15ZLKXX+;UZC&IZB2y<804rlk_;wuSoK-S*OlF% zBv(Z{?yAm1sG_F2B7Z}qp2Lu(Yq+6^NGZyQ=16KDe)HknuKQhg!{^>PVdt+z(Y+2j zVyWMw@ScUUTw{l#xntnmu5dE_WpHf(CoXcOS2MtC+&C9duu-;HpkkjK;G>)DAYrUb9d_(M3mB!Zv9p(J|8;hZJ$I(Qx&sz~n!xJ1_iDT(k{I4NlXN@8HL zBf>1e^Wl)T23~^#z2IaQILkGT-e|Zss5>~6Ud;eMF3ZL&Kx4iJSk5+FlWgw04gvU3 z*guKhKLs31?^C!0BpY~f^&v3zs4#ZYC-6=v9@9GsXGbDabKwGL%|n*&RF@JwOiWQh6fH4OGap6fT7{-ZVUd&sC@qNIN_kXJQ0aXQ zt}R5Ye=zKWUNT7COfsm8yhd4pT(05)d74U5bdxE?CNeRsQW9j+Aa&(f<}|qWAb$Fg z`_s>?V%zUtt>dt&6X4vi3G^8sx}?cOF&mJ*^!fU(qf2!O87)ir^at+#aOb1cPoH#G z-;IQ{OOC{v&8a9lQPppu*9N**YtDnZSW}l8s;(a|HN2>@rAO@(@gvX5rS9SgLh-H*Q^UaO#+-k-FUaTT3_7bn@Y?IylR96FrJU z{D{p93&ty~1=DqP5xZsKEn@33-T{v|P(p$^GMVM%c=>es74yG5^@cc)MM#g3FmPwm{UzaRW~LoRu{~b-sJ*@ z=&_+ae7Rs+bXjj6a?<(Qd3K*jIoWj!E42KF>)dP_GEI7ob zHwRAoj=+3{=f_R|OTZAlN8pfjc{Kr64sx!`z7*N2vd7cA1`bquUxP!cCDjCGDZDe) zNI{LKHx16?DqUJlKt(n7YXwlOJLH;IW6qJ{$INBcV$Pyp_=rj!69n6ntFT zmEJW1hUl?Bz_P{F1XL=+XrA};rV0gvJ~vGuW?p!IP@rZmV}7P$dNmoTjJTYO=od%ml^i!~Pp6I%NW@2`FHDO+aL4GrDg8w5p%QcbS6L20(_p9Fl zkb|8h#-YCyPNyf#Lu%4~4u3rygl90$Fn3?Yaq9kUIHsh( z4^HPw_!FCEVLzAW?qDvx!EheT?W+llRrpEpehkN~=)VW2vm)$K44X;+LO9fl-lcF- zE8S^R!JG%-U{mOQ4-RVQttLPw0Y3({nh6Jx-tBM_g#c>|yv~jHom8q2Qz@$H=bwSP z4Gzp&1nT!Ctx>Muf%3Xg$KC_V6GAoixgHdi^CaG_Q8}CS6T4VZCw|*dC+b>}`ljSO znO*{#h4q>A#P6h($@E@@BU=B85$zkof${Ws@dEvk2Hp;ULmTL^H#nKnzY@fHNMeqq z#~T+&bUtDYltiY+yyfu+p-y5Kt6nv&%>$)KsN?AI!U$OIt0tgQjUxv-NS@>9v0f5| zfXdDE%5ak^#8irEdWCtmY^QDzxzMsfn#xu<(msG7noEzhbTa0rHV%B#iFsMYk+o`< zu_iw^2@F@B1L~h}5IB0g3nqd{fC>pb+cpahAia5T5=8(}1H+ZgCRK>3s3?xn(TDuF zm5ll>2K6yGN7Yk7DG=(|a!~##R8!Bsps4yx`Y%va&Zg&SP84+_6<1M>tdcrLa-K}D z6plj4m~~RhWO{GGIc4={h*l%1#?kvT9GdN}CXg()$26N3OQDPeFxCffuo1d%c$4mB zL5-)kL%^~0nATbJJ{yM-O(*UQR;CL(Z=%-+&W%N!{t?$rk?GlFW4f23faOx>o9I1h zmq*K$rBcyT142~s_;)eJOR917c+p1GfdFrpKp@EJRLNl+J=Rj95MXwQqN~{5qzW;W zq8ffh^EA>*)Xh@NWO~yDG?G3G!BRMI!8DV&`(mR#gkW_n>QMwAi$(Dcjb@6jFL95< zv190~7Mt>42TBb= z95TTRH_yXiymGw)KcS<7brRCIDZ1A|H|$CY;D8zqm7q5c4q45izYGpT-yDwZgxA@$ z=in!t%On%&rNGJ9o&(?p!B3+19XMu1zYb1kMfi1__A&gEa4-S4x5q9b94bPOckeKu zF0UrQ8wEQhF(HGWZkds_^uB z3pk11LOAA1zZy>GO86<8Mt?6HDnjodT+BS+D0tr)41*HTyAVzcCjl}Pc(!Fc96)+g z;3NtGR^FjMK9efMREiqXecc;W_19g-7lHaMNjqLs2ZA~s4#Kklly3@ktfpQA3OgO0 zx*QZT5}>A%qG~&d6jiPLSk0C0rNTGRhQwpG% z4PK1uC^9jQN#2nh#?de~6a=U};2KN6OzJm|-XJ)MLV#lFkel8nRfwq+HKc1)1nQ3@&+*rQx>C}b%9Vif z1EG!`3(69qj@4=J1%(<8`M(_$stQ0&CFPfjN>5dMA|u_aBGOZ}F|zgmBCeM-lj$i_ z5q2#=%m*dWWO_{Gl%@|6)g!iH9KCjMV1~PzK%T+=u|L}IfNfZLK;*Rd)6=#(y z#8irED$fMF;jjTn?>#u@w1Bw%icHTYn*rc)SsAAGnLrJk|X0+~RcqZyz zNj#a}0|FY!`4)mdhI0PSmYz*E<8G#nb96ATKb_x+<=*e&?UlYZ%nK~n+A#01 zOtE2JWBC(qurNMvvhej*!urSjey8YO2iAzQb`RLaQ93FBA{t%QsmR|^~-qI;n1 zJazdQQo}pYe2>uWDov!HDsVW9op?7KqR=ZBbZH{}yA*%3=-&g^##I(>d$`N!bOy== z5iS;l1XT61+Q3hOGqD+98*zm|#b$svQ&|=I!vzj!(N~NpO{7m|pdYh@A*y9rY;g~P zOB3lUnG0t*Tg;|mRAkFOfan0E$4a|hWjVVoXxOfZm!+SZ7Z9Sx60S5jvUXh^7dj&I}-n^ny2(2&d4n zzv2juF1jN!Dv-=3F%_>~!#dNu4X&+=XPc!s$Lv{vd~Seq*zT86?ZeWntZH41lh@w| zjrk*qE`}Fga6P1&N}!rEDcT&VK?#c0v6v~#MF#Y4gwrHlf0hxa6P#qtc_)rdW>s}P z2xsEQ#vL@(I9UHAMIn41#hRaOE9gWXPd_% zx&#Ov_`;tVVZ{~+3XgSgZ7}}J?SN<$R{%JX;ckZG zZ4CX(K-zq`(QqNS32?l>qJJzSfC};w1M8rFA>j7I@ide){o|Xi55V!*yB<#e_?nQ$ zf5(C63%@^v`w<)uzx9uQ)N}+KPkni;uYbBswt2Rrp0D5_?lrg!97HXE(?7x)IC0@Y z6wih9?-jtW!toS_#~k_>vNxJT*x}$_s{UnRGm#sZdVf{pxqCYY?oK#vrRpCyT{Vt- z#`?z%)e1Ph}sJH{Ae@@&T zt>9-n@O+VsyH^juaobA&^yZX40nzxku)Vpjz;TgDTn6Uy`p1>_-{5w` zac!!9T)Ju;m%#eRJottW^Qd>^!zBZ!ja4d^9g(J%pM|ltYH_~-OzRk;NolUlFvd z&r{C9)1vi(i}_lQ3!m=67gFYx&79@xS5{im4}X?x+Pr=yV2s>u=(_c+Gv9{zFuF3mj7&VEAVwr`_3i4vKf(Dro@2l9YyL;;S?CE(l_o^p0 z_nYl9&+5HA{Kqi*S|F+((Fh>Z#MWmLTW>-AjE$9_KY>{vIAvSam-Skpbz z-~JzH$gfyLoQ4d0d(f39Nqdlwt4ypxgoJmKJV#wmt+;Zw@7iqQ7TeXl+SlH$=M{Zz z)JWaFK^k+7Zp$FegD6H?SFLj^vNIckFTr>{(>xC^_non3e?&K|^OOzoBuQSr^O%(1 zWAfzkA&rr4Tjm+#lOF#i@niY;f^yIr`=+jAX4PLd+t$QukYwxI#eAg`qCFRt8ecDx z*YI%-A2;wZ(DTIdb)I{yqoX{j_jpo#TkaoR4wWeIln9R!eXl0^4l-h*@9jk2n;P<* z<9qwqQ=apF=z9iV8ZI39%%Fa=ecc`?@hsrSv?Q`SJ550Mr1tKt_KEIHzovLn+*y{V z>>f|RJ2Qy4&LCtWx)?3EZ=&zpDg~+#TX6We=cwhr!n%%0wv~A9UDnr=bF_N! z(Cn4vBc=VmE16U}QzTP@&GZ)^9zy&15H%Iv_GYl$;6$-Sj1{v;z~_d%o@@D#?1doE z)x?PqNir!?ti?hSZsKFQiQ;YL95T4?ns^5sI34eRDdaxSDArmG zq%_@8b*R_ya7*FlXVDPPW{bU^{lsf)Nq^3y>}_}Kwxwd5JdG~t1|(9Y-$ zx3=Fu`MMUucibZCo`pa3Y+bfa^HV9RFfS@Z(csgpmjs3T!rEUFm&M0hd`L3SBE`P8 zQj_ND1ewgfhjD#TS(I*RR-_E;iy2W&_aPsnoIAD6@zJDObAh zS_YNiFHlAxMU+cW!g`73DIVhaG2ShIYWY3YgZnSPN;2>*wAFUi-C8w2_v(RUwZWb8 zDtVBMMBDn=>Hf7u+m#gwQn+x@bC;-IGZ6#UGdc{mT{?HA3}d_g8*FPXUcw`px(Os^ zSePe}@Ip+UJQPFjk_ro(JvQgg5zYyD3M&`OzDJk)+E)+G>Lc`L4BMj}AOv|lLaKD5 zFhm|gh}vBVwzT-au);sS;n`Q0Zo_vhK=QPzX}j^YJw)(H^CU^s?nuxf zzYwMXsw(jnh?;qD)H+zBSrDdZ$f3(8mLp5a!J)4&e+34<_`paS8m|T6^Y|l!|J;3t( z!xi@YYRs~ml?7#`D{t=g=aIdq4E}X|ueQ&~D|`1DJ+j|*m%4j&!V0Us=kT&8 z_jslc@pSFWXIo!}?>tXOUtf2h)ao1O+!Yzxr+TgDl&i02Q4Nqsvz3 z-sIV~41Y1q+T!^H8y5Fj>wf#|U+fz0`_asIdd;5PuTQ@|a|T`cOt0B11@L8Q2&l>Z z2LI|;y=IT}rT(f{_26fI)oV>}->*EA-9hWRtgP`@%~(BX=uPu{W!LxVebuDNs|S0M z*Ug+WX_e;!-%(H7A9}vM?5Ty%&zU^*BhMQy@Y&t3L+SmVjC(u>U9Wn+4Lf1~ggqpFBZZ%t<$jHP;)UN~oi>x7=H>T2_)!HHvCP3y8N8}<77at#X+;_t_-`r`m;gEx7+SN&(&K^hHVM(6VZb$g)B=;|4f~dx7bT4+v zU5TzC*y>c!)!4pQ&^cg^g37QhtDtSzI9JeUY@aJ=5}-?vORDQqY)SVN=pH~lB1Z>8E6Nfi>0)`8|aVN=2o?T0gy`Zp~0OrxJz*xMNz+Ipl=xHcLsXhK>T!#N|9!u z3k3HqRxd;CYp7QmXtbe*4DKdCD(!4TU1)H8Ax)K5WuS)*^{0ST zt@y5<%H=r&Z3Cp*`&WZ|$3X7`vRi3zNjN}Oxl9J6$}KjyGC(T7C4oJ1_euI0|K#v*f z(+2l~fp!2=rTxR;_(G2=<6Mvw^-_2Wmjy`GWw61GG|&xzR9&VUT#11e1HymUrgaAQ zh=KU#jG{heaN7)Yz);;7B~@M808({nZ*YA3L{WPHQgz8SxRD0p@w|_e+C&#y~F^Xt#m*hKEYa_dHbFjsa4+_;6`KQQHGj)bju->cxhdWvDrZ zns2B#80vI`n`dyvfK+}f4D}m^`V#}KH`J#AsT4089AAi3HT}Rq|1wZA-hfh6zFeoE zUIxknq}on)T5X_8K&mc3G`L?H=oth3#XxTu=pTSoxlMpnF2@b^q`@U) zrlsPY4@lMi5`*KbPActSL(Ma|8%(@$26u~zH`h?_Fw|uRy4O(G8Qc#5sTw?HsLvSa zB?Ij-@tO?oeL!|A4fUkKC1d4dw-S&lBWQ2~4X(gIlMPg4pfUq}3y{k1*9Ny9kkZCF zgL~0HI{~Tsy<>2n7>I8LsamBP=pqC4H_$Kx@w?$Fzncv1b^|RjP{csrHPEAgRPBEX zNagYeL*?5>in_^AUoq4@hI+){J~y}|%+^&qcIH&J0Mk;PYf;**L+k>I~pixpvw$21du8>50J`*?@y_;6Af;L ziC1E%%M9)w6Yl{-{f@!?)Wmz-;MSXX^@jSaq4IO(sxEIC>bnMa6p*UlNkjEx^`zR- z%|KazRJ>e+yWZe#G0;2%-EE+680c4kRL*}f&|U-arpu+~j(!~W8L5VQMcDZjF2+>>@ zNeByEn_6gaHyhkf4DRO!_qM?uFt{vikE#4}0I61T3r^wgHMso-_qM^|_`;6o1EkXS z#U|k_u?47awTm_xvDQ;HZ=9X~f(#Vsg>=^LK4I4pQ#a8cCaD-MHgjPm-< zoEDyDW0*(0R`i`-TB;LyT8mQ>%?OP}J{c^s#jlHvMe`A7BX(luwTO4IjiC&AEdC{@ zmOu70e_$HoxG$DKv&U6-9I%n~!BcSwfcf2E$H9ULaq3z17C&B?<`2sk#F>PV&PE7U zJ?7Xb%8$pI?w~}$QacVN>WGsWB{-mEb{tHC5vKwbrvAkKDjmhE7X7#d=4pe`vhh+2 z%)S`R2MG0@Ics{^Z2aZ8qWK!0Hhp@@tc5y+JDD29-@3eW_N-DJj1A43d*>`oDGisn z`igi2mn>PLu|@n-nXX%@SI$2m=0vDJgVX|pKNl2>lRvr>gVKMpCLZ$EoS5WtcA&nV zEV1K!W&Ho1E3JG=`qn5u=A+S4@z^g#3(EQ7XF){26m9I;%vlTj&hM9zopX8i6$5ex zT%MDWad}pDMh5yp$*~ju>+07 zyDUr6=|^vT*3>sCPP`oUP4t%mFz3H~u8NKvSJW6M`CT3>@juVU5gFn+e-iJC*mB=~ z0&g_G>2p17=g01lcmw-8le%6(Xn&RBi6%(A+{<)Od}`3|zu7!qR$jmCtQg(hG6x^a zLcE{Z~Kf?jccE81^&zslAPLKwO)k$qfItY^~@!#(8S4;#^bNCr&f+htDGFD8g^>+)~eoZ ztJ2+7;a(@hT{1t&eBqF%{D9@(kebx+ci-yzqDbluk%qGODz6Pi=BG)CYkNl~v&0T4 zF^vN>{`__-|7`rJ{p;kf$McVNpH+DoG3AwST;boa(^={}aY}73rLvu-R8{DP=Iy&S zP&HP!FHjZkc`}@Cmv<2D^CmUy_pNz$_0FP*_lC%hvV*Obg(fyHYvI|ouY3IVt$Ee( z_3c(mUDvWyuvK+mpmK6r<)T2<@KdXIRwaLn4X;X1tO}=`2w$A}Qsygm7bbToZ&=ar zX4>ldNbXn-HS|tU;=&!Q|K)uxnE@RKrybC{HovQ+~_e z^Fo9nziE|YY##Ksd0f=Lw(qmN0<_Xp6MED93gJ^wH zlZqk}f{Cb2Vq*epvv+IbfxS(Q>A}j>V3b*}#Hm+D)GHnJ%E-8%_428D*}$fvbzjt8 zpy$roUbNJw3yeM$`D?vNIV+%2MxmPGR9`7C3yoFY$R}rIFC6x%_H6Cb3TI)bwNEYE zcVV3NIZVd8t+p_Z$x!zA^!8WVC)i)rK8K}f-9E*!6vjSjd(o=CUKG_=DU!xQRQ3JS zs%oc}#zL$_bA631U(B)B){XP3!igus-7=pSdjXRS32NA%=HIee&>c6#Hmj`k3vKR&Zic}-g7q(EfTjzi(p?0Wx((Zj8ZWH%=kyULD$7}?lx@Iq_* zj$;u-yhibUP4CDgj`{)cKER1o1R34*wNv|V`r0N86t@0G^S?pm---E87-p?Fx}qZ0 zQbl}lRz*;89YrYpiQ2av2gClV)KC%ZGp0mtOo={jJ|&{H@dcQVni8S?&F4eoD{l_^ zD#xc)jtC&b4pqq^e@y_{t$DR55;~c?rR;F!2-W`b-jVTazaN<<2dLmkc@vr+Gd{)U zhtbx~uW02)*9w#Aq4=3nkxizmy;^@3$#l&-plWpglRG}By4igqeBq~i!P}bDVUl;l z-vg1RZ(tWf9c?+nT<{DX&}e^8DLOi5%BYQ=+m^juMT$D1A+aP-awq z4YC%f8ghQsgtU`84pogFcp{wp>F(_M#)K6ZBh@U#U( zcWu?f`ARZiS6SnpT@c&IGBv%>lG_pDl!4w0sxckH%Q3zDSpn=`)b&}4`hW)*5_*H@ zS;F(4C&E{e2eI`@9TrJ#Q6J}UZkY56YSnTUO{G<}k`cXGt>Wra?U&N0W-6=XE1JJ; z4?1So!vHxA!r?EWt!6y`68g$|o~6EiLH&wRTGjqoeLZ{qk5Sb)^W!-B(?#^BE_Ikw zRX=P^an6IF#?HpYet!XdO-Fe<{dL~44f_NBEfMd7K8<=SOvQpLh7Kt&QonHXezujnY6^Z)l~m3>=@Dx6e7A$I-{k=K8qLJB%f(iL}wY zrdBmi&GAL^>^Z(3!Iiy<>W4j^bp}ssykplqThwsCSK&Rke4~~7I+n*@e9&w*9^3hM zRW=<%1xJjchJ!vcY`%MjLbx6e$PR!#Y)b#>;YqFkzpT7dDb3L2koVa9qWY-ouLjXp z#ybu~CewKO*u{*Wc7A3AZE8M(QeTn-QMI(^V;G%P#`gT=G~=lm-|VuSYI=t8jSX39 zOR-3>8Q)G*-bG>$Fn&kNbBw6i`iQTl@#ns=>(OMaN8^rPS2oud&L7si>aW=uXAska zsy(atYpY7s`k=b*4C8737pYI&LG`7$wMvUSs6rp~Xs`LzLch<~`sc5G)j4N9cn0O8 z{KZU*mHpu4SgDKBzZT^=?8&h&YELM3(HXMXlmC`J#wd9_eLVZ|F-EmpwHIGlzoR4g z7uRo&hcaJY^Qu#|&oCZ3RlAk(5Sq`qBDPaw=I32w%5$hT*R^p+;4irU6=yu`6JMXW z-J~|ZFgDui{ExVb!`W!deJ?#G7TNl&_PgSge|hWW%XU|sv3XD2dT{@(fK?rFEM|pLlhr5d++#FzGhfh}+=O3xE+}1O? zBJQ_o2Acij7VW#xQC^K|9|wBf!b7JkRJD+HK^Mv*&H5uQKhquM)uB9RVIQ2iFitX@ zh1mvP+NbRAb=*&AXmYRK8unLWJHZR>51lA)vaq`nZ#zNuyvF{ttsdDj{18MLZ3 z=g-aReI90R$y6D&5$(lJi0rpxt9%oIxcfo2IA_;armpmF!vq(5Hw_2V%nbLy8MQR- z?vrDDiEj^fR(kLEZ)rG|W+v=sYY!YM8rL4gm9LAU@>Q8SEZWdORHolOvzRs4S}8wn zd9)8Zl@wNb$FiX)iAxhVmL_LmA5PL18dl=8`eq+U z#n(5K=fjp}z^UJT9r~@yn-KKw#_pM8JXV^%ucfB9N6V;osrtx?duG0yFa$$P)M*?o zy1k{WRJ<2<$qta-=)GrG!>)5G#cwk*4 zc0$npdmZhMj;4R#v+HzbAQd&>ri`4iOAT-)t9X|4RAl%F8ws?8Y1f@t9fPG9(W zrf}VS6t2%dW5!oU`=e8qOw;~hvF%R{I*r8s(^n$O0SxfXIH2rZZ2P0-U+iqZ+7f~Y z#1{U}*%l6K(X4P|FD6F*F~0omW7N9qed?ly8mO}xmj)B}B=A#}{+gSEi8aYZ&?9eS zJqPZB6OGum-d#v9ks~-dqxlHlar4#5JdLlsBVpx4h|(q3Z2Exx_f z>Lm7rTVl$d^w;)8CJxxEXoR(lu`8)TGmF@L7TVp(Xm`}EkiXK;4*hPWKE1Vlan{GS zGme_Pc@{N^S~#s}#=@aKt;u&kTfby}5#>kJ&ZGvTla1F;FX-nRRoA@W-H-Khf5K|5qsem+_vai2D!J8ZiR9wmQv#ZH6%K*l}9*M~7(jH}YW0 z4^+n5pAoU;r=WbAo&2DeHAvAlNQMPU-i@gf{FKTGL7!PEJ=d}>?VFn-+;?ea55J^6 z;zB9z{0;4+$kD>5RbK6@EK9B|NQ-QWpdFE%AQo4tRSOPdCYAa|fe&nM55YIlsWpn0kA+gFYcaH3GPwB4zy{Qjr>8~nK&7hPU8R+ zRh8a8ckl9mf5WYaxi#}>`G=O(xT9$>)^%l#*x&W?EOAln1*#6%&J9Ms?u$%JuA22R z7Q#5+v;lj*glV@OGDMY0Mo0A*`V|{MzKL%*qAP=F==Q-8XA)hzY7+o z>6POGkuBDC|As-i8_5bbxO8x2M|Qmj94T)=8(e6^McB(p_HV#?5r-w2hbyL_L7ma! z6P5Qe^j3u0FqBadN~9mC2qi!$@~qFQa@yyHgZazz{TuG0B$YRL{Tsr;EQnLS z1)kpJ-thq#jzVzJfe7qO3kJn4uq<3+02M`MTOaK>Boen4hQtTXqRK7rgDQ=SZ%vx( zTa=$*Kq{CC4nXE)7qqId-rjYMyXvIK_{!D!8 ziC_Gpmp$l!sl~RCV$gy4LgOiD8OIyyL$d|vDoHlre8NInrBL7+xWJHSbU?*7I-v1e(!i&=^fji#OYtihVne3m2;}>Rf;`7COXDWLq z8M2y|y9HybL*~H~k$JEJNBfjY1;d#hR>vro!5CZaFMZvTDXBUOw| zsJuQA8KVSj$tZ0IVLXE7R1|#X-*5yXoW|Y|-I#zr3_(}KDxHjgF50mqsvRMA(h}7t z(Oz59yw`9pt@WqG8`YnZ1g$^*wIfw8QHQ{U_`TGs4jKEt@;%I!UDTfIjfuytqDVv4 z@D(uetAZ;)t{UD(th@)|dlBBPyf;Sr8lMS%0|B6zx%}}0VU=ra^g>Ng{C|lV^*~&J`?cdNv z>Dwr!Z)=Yr&+M)1RNobsAMknZ4XyyLqR>|n^0Q~AQsF`=1Va^}b5vJ`F!7SkgHB54 zK_O*GX&d=0cfHiqe_ti?(Rz3g8X683UwW_5q*D{6$58EXaH=2@1cCZPVFl4#SzC0w zEf`r$(tKnpaVTqlJu>;%wAae2YSNk{oJn7`DUHg*Ey-F@Bb)3Ys!i466*5FM7liAy zAVi)~y!yiOu-O(h90*mV52QVf?1PcOWH2rF7`iwV9n8RCQEV_4lYpCPeG6d~VUd+` zw?XtQfBEO=Eh@O0Zz(A#-{_-?>kfU1QAEp&%jAt)gO=G=+-VOI9rmD&m>*jR)odl*zcz(3frUop!@(73BBz2k z#!dw>hlO}Ip9|WPK2^<4b*TrJjfwX&Y8g<-VUbG2qY2P8+$+UR<&*0G+e{c1fY zGuYag^;~VU^;|7ythIO9Ggh)$aa7MoYaQ#k+OO7gUwS=Pi}f5t8S6RlSg+@5&3X<< zuIFmadQSI*SpAuuJISo)bg!9-z3#Q> z{H@lpo~!+8Jtvzd|IYQCt%q38p|2e4x!NUqJqP?$>1Dm1144DXUe5s`%G#pa&3Xt3Av0TnlaIdQNM5F$G2mhF;ILE*N?}hZxPr(~{_V zuD0a=a6N~U9(_Kij(d`w$33aoCry0=>v|m4ai28qK^;!%uwJ)5k&Jv*`B^8cmUcLq zyUAbUU(`#smvKmkYq2=ou}|r0ZawL*kyV|Wr*zm{_buFoy+$whExy1hUCZ^UY7EbB zaNfxGa;u8<`OR6i1IPBB|O-`3}C;3rieP03SgRcHmi-+(i$Dx4t}Y>d3#aLfa;I>8j9cZL&8ZeZi= zrgC^7^18n!&Dxl|9oeN9MR4R+QwWpC^M;y2Fq3Kxs=oSB3 z-gw6m&q5b@g|j!@If3l*u%{?81!omYa9v<&Fs~?5l7f9^`zrbf}%00wP;|*j!Vrk48~j$9ipy+P>ul z<(YBpitOFCu&H|QR`uU$&flN~;7@8~lj$#g1c%;=9>SeaV&rvX zpAPotZf9?RnNghppOj93KQtyvIokQle}|6ZX1zLxgJrSL;dnTu`mP>~k17cc+@Keq z*u7W$F#<4a(sf34s5XPBCNc|GYQuSZ%@RFt*PUih^`o8UP^=Q4*>0~XX{Qy-zjmDJ zBr4a`ILalR)Iz!JPQv?P@y=WH6^olOVs5Ishkq-|aRld=BRFrfBRF(ZYe#VCljtcN z&)V!$xQ3s|8I2dG1H|H}Z^F5U(TO~IJM6ESl9JoNo+$Ex^YaI(W`_RQ#`H-+Rj!d9!aVA6RtsGl2THF_Db{=P|u6-Woud1Ms z$dO#Df)P=tLoJVJW8`B+jC?Re`JiuYiZr6DMWeSkl^G0H$_&QR7AvEy1*8!A8WORA zY!s$&R)Isg50Rnhxjv5zIM3rYgUW8lX&idhXgm7;DAAOc!w7uL0EI>C|Jmt27jIhk z9m1gu_UVK}iBBG7q4}^|lI*Y!Df%?n9K?0hM&hC13bZYbOhCGEDAH^YKJ9%yeZTVG zvVN<>`mOH&mGxU)XMf#)!1}EY>$key{yN9{t?oZz{Z?nzZ_?5B`mOG(^&9LM##86| ztq$wAx>Jx6=lZQKcKudouit=nuHWj+`mOFic>Pvq4_3m#IP14MuHWkP`VB1PKvEZ- zW`en9AgTLm{r11GeyhX!txnc&;J#kJ)tU7hklezrGwV0qM`ry71h??fX?p!u=UBhh zeYJi&Tx%Wcx4N&^Z&i{W{OD?DwgL#J*3p4S01TCr4MUw~i-r z;&|b->v4Tvw+TBO(f8+CJ+G5}Rn)8X^D1tE z^JO%itzvWT=5tT5@&1~@=v-`RmbxQH*Ss2eHS*b-SJBI3Bd=xeT*o)*B1dq1$G*lM z>~ZnE>~WlqEx*`ba~=8|`z5DTryufKFZpYdFx^iTg!Qt#L56Y`uE(}BKU{_4Ly^1H z*^B&ytVTz$b;q&n-qJVx44z_Jd}Mp{@@k6c;|T{8Of9kaPOGN z#{?Xr8ToLY?_D015WGSMra)Gv;2;#j;uT?02Yp;Js^C8Jg54kF#1CsAZss&Q;l(jw z%MCucf8H8@a6UEFKJSY?@8!!EcwNYO;CC|){BGtu7fXXv$e$_dz^@PoeT6viyBYoz z9QfU=5Bw&mcPmDB;_I98UIh>S(8x8fvc24o!*L(qu$~|%fB3#r?q&w^{A=s6Ta}GJ z`GASI)L-_#)LCGNyu+xVID&vB3y`H1+Bh?fNu%3_*46JK_7u^pFf$K;120^FHrb$KN1Uo%>5yzy8X zY-n-xb^0R|$g{R*G5r&jUwwW!!9G9Srp^z)NDt9GhIoFs&D!X%@!>TD48m((1pB#h zDhFBUp91vHnipZtaSVuFQU_k;&!cyEoEYsN=zplZ!9G}=;J@$th@twd-Y2|v^w}|I zpMB=+vlA+iCA|jr=NgvBc9GlJMQSqMN*66iY_*Tp7DW3f^hNuq+4Iv$Y2-8L(o%JJzJ$88MCsCE=+I*5(o*706CQKN34t`cFVeYk^x~!KpNK=xhG9Z7rUXNGGzdcs_~quVP0h zOgT>lrm{z-q^f`@+m!YyAZj=zpaP$&>QF3bi%-MI|A2{&Bcm ziNZwls-X{hmIv@fO9}W< z*bY*#-Cv#rDd5ssoML!OulqTi3*5p6xtdt zvQZdM!$Vrb2RXXc++uAe24*eQObqNr*VNO9K?z=Qu#LGEgAxo3f@*2C*E-~&IF1}( z*3@!%RsG-U_`34FN5H~(Lu~YXm50n#!=vY`4{>bx}&yKNgs?73@ z_PH-*!hhc&L}5ov#ksGNxh#>a!wfh?^{65$QMJvV5>?y$DN#M+1ZS$`4(W(v{#weT z8tuS~mh#8}^33uWHG+^wwHeV&9!2gTi%T%~izkmI7}H~orq(At<6Y~JOZI9Ux%@Ks z5%qc=-}AwF^S^PwqE78s)cwD@Us2a=zXI+3kKeDT`vixQ*q%VA$L?3uZT%12udpQq z`xRgcmjluLin`q~`xOX&wO@gy%>U4S1-FgOenlPkD;x*6ywyz8To=1vfi!Brg7NjN zLhV=7edMqEYQN%tY`=oNqla^~U(vFQ)MC``BE4S`w~Orkig!jKmpQ$S*ZUQ~tNjWaulFlrx;(1Id1k+YA|l#~`I*|UXf6r=AA9c~9o2c} zc~YXl6vLiqc44yt5mUh!N1{rJz$DOHe z(A`RHywllP`)r@xo;`hLXSOpvGrKuxcBhXD47M@Y4kVofxjQkF_ND%|&!AUL_JA z249KfEBID#O;=St2qNhqU*XJCHDAH?E?-f{?1pi_RqK+RU`3m|c^J9>&h%jU*Pal20qPd#v z4dx%D^X1S3#ztQ_cHr$M(p`Dd{&@$dUaiFP)o!il9MDe=2uN$bUkxCUKk(xw z{|8*3DczPT58QZGo65GoR=RxGU7vrC)N2;dG5rWwQMUMUoJD#Q{<3&E{?C9RGY@ys zt@Zh`rOvY~(f-a=0x12Xf@5juWUMEjoI@uUCBfZQfcqQlEX5UR@0%kr-M{^{o&TCs zah`?ka(ewQ)PM(6f3*Y2>PLvnO6v@e7cjyc zjnd_@6YZ*wOzilQ|H9{g&O2ltq2M!Fe2Rg&fq}_B+`+qNiU;HVlCveP`o}y6^{@;i zSEnC~spt3{tzgCxFP{F50SZvQc`U}Y8CJ|q?D|Was)9GB!tph3NcI-|HQIXkQ|DXW zxjz3&eyat3v1-mlX{naHiEZ|NyC$yBffA|p6OEOxY*HgTE_e4k(e0$ zF)cIwDXrSdqOdlK2lYk5WA2&*A_Or1atOw9iE@V%X2qO8r(L&RT*zOREL6R%ecQq1j=yY<6B0Nze`!L4?v@l>{&?)|QXAE_uo3U3rC!se`{PEF;_ox4{*#}7 zZ}THsExY(+A{4}%dEcz~NHWG?rHix^e#-BUmuC7$8L!7;hv`qvc|PDW)|QTkC+0ja znG8;(bSs!RvFm@P&R`}-zY2ATQE9$RnEwy>&((X^^i`Pq=jKZMixI^= z1>-^+u!T_$WKX?-3H7<~z@~gEj(nsvK&Y&-^6sWFRMv8_cdoQtWY3nCYZdd1iC@~= zJH*gE1rzcy4gARXjUEUVYmHgH_)FB8M1{bd@1B>b1>GauW}Xrvy#hvDPiXTw3G znXQf{C&nWuGSw42#v73n>FNpglpYID%z3`}N~%g1e(YL)7Pd`zd-}w-T0VmLPYpBy z^Ocy)RlhXzdFSK2FFkTKAO?+4M~|-jLZ={`OAm+i(7OGiM>1ZzLW2fHvZXa~6oMF9 zs0$k+>LXoRqmwDGxE~7m=bqvfjTTN{>AS@zQ*~pW^S*A2s=~I#r;IHbg$x{?_HR9_ z;rAKBHE;ME$Ln}JI`}mn=lba2FH3}j&xtyzNQNh>q|#64j3ih;Z?CN$JhfyvdsQzP z=e1XD&Yr8t+*FF6&IfS*9|FZOirAcBg=Y-A)tk54{Ek*PzvFtTmg^m5S|CRYy1JFm z>v`-}o8RHIOG@)Q2HH-QcPCD@kCoPFnSN2G8R_C9?+BE0ihLfkB#bd~i;(g)~XFBu%=s;H1g>`oHE*41IIGMCGf4 z&WWf*<*Fz0^%7MlgH?&*&QUg4{!&QP32dla8WNflL{UX@*<^kz|ThmA(>3?N-VM z!kOj+;d~3Sm~a}UMY!UVnL64vdtW~y+Clc>Q>qTnX|Rz>#PJlpX@AX2(pLVhZ*U^- zZyfWX?BFjgiv|Iv>*rfPCNX}ym{~2&J!rW@YT-CoV#g~y_d9DS2S(`@3U)IV8(%r%b z=On;Lw`3jZmaHS)l66V9E^Q5^`@2rMdA6v%EK~=d6H)1IuAbmEqV}>*A4H`)%0P9} z9c7@Jbc;o+zkyADF=U4c47B`YctZLhH^C;iI(=|VGbED=^172us zz@ywyryQc(P^TQC+)$?+qTEoY9HQK?Y_f7tz=4OH3AsTpQso~`WWy8HPN|cYYZ<6^ zQzys8BbTO5%zumc&pGK6TdX|pXY;mJc^L1bOlt9d7Bi7`A)HMlo9~oK{cb&wy4>+U zO7K|>OtD3|tLdzw{!+qwy8Sh%F6TM5Yx(EjQ;6XoCg}GLS3~~v!xDa{WeM86!-N&V z5GcS+{RVd=#Mdn(D?9%S#E#oo64>8dAJ{vUS|8YlAw+fk5bR~cc+2HGf_Od}&A)%N zg|KMK>%o%8VHiN#!Ua^5XKcIC zXuNnD@k)dr6wfQ3QaU26HwXjJlmgIdSa06D&8M%6rce=e@w|e0C4jO@0IhEthaJXC zOX8)=y~6=d$d(Y(Yw}+Z(<_iCo@ZF{Vvi&TIUNKMY4+j&wzLHH;Cl_CdW-0#Z8#gK z*nDZpc;xb2Gznmtl1y<_zm}E~fy=^VNf6!tfvh)a69zb|9MS|<3!?iecx^(w+K}Js z;`@t>?v3B3`%mIZi{Eg@Y!9>)YS}wd4U^J49z-0opZ|HVUk6DGi{V{HDf94Zsi5Lh z8iN!AwS3$LkAt%uICWH-X7VU;t5ZwC*-p6E#FboA)zg)>+VwBbqp4WG1MjvzoPi&! zf*S6JQrjObm*h?9hiZ?`n%Rk-hL2scrA7tW#qis2 zgr{q^Nk1E&9t(&R$b~|vJp4}L)ciWazkN!7i3wm!1!R*-KX#tK(0Q z5wJrX4Q=g*b3wQnVgHO*d>TsC@&defqlAD|kQm%01k%uI`52eN;%s+K{(1Quw5kFk zG9w@}8x48jS%jx*<~>^qe2ef@%~xPIQbG^=rJCV`oA}L0f?(14LkZ^})=Sis>-$|u zy!a912ZHQCNV1e2;5kAvXs48p9pFT2OM7{YP`Z7Lqnx)l<-&_Ff&@1(aZ~irEa8$1 zVLg^!Q;+0Bw5%7&NjZam?}(58F3-cHF{Z3$&0*w}iz_D6j>yPG7U8LyH(AZag{Nwg zOCaTP2jQuj%%@9=FKWzC%OB`t_Ifl0` zJt&Cyf9H=EKeYS;*#(9c#YTR?4v5($qbOT)40b@UKEVbfWD{*Le&a@`5GLdsa^xGh zjb$8KbkGK+&H5^pP*9KZ4wH3caE!+uZLJQP0>or9! zZ^5g(EJXONnr&b(>NQ18E1_Rpo-zDZjT0HL7wdSc#=qznvJo|&s^uf}?$R$oKH@)q zxccS%{B`O1h?+m(5CT+((<~$?oI*jxIEA8=bYNGcP%tYfos1ozVzPmX$$7=Kp^76jXd_!UtGnV@u{3^GCKL>Xj) z(up$21f>&YkRWqmY*pp#JnyP))9I}-eoet~D)g43K8$QuB!BUrE?rek%wO1ges1$U zhi@cV55g@Uz&^aS<-Svdt0@O*ump2gezt=&l+n`8(8`3)CdNxCp8C6{a@SSlEwrWT z$jn_gef~QmGaj8!1<=!he@neED?-FadToh-qYux$_W2Xb&XUYH@$?7)(g^-W`%^nd ze#i#kqtkzQ;t`90mi77@T#jN-!Cx(;-QjB!eKqip(4C&Ro+bX8z3+W)J!ac)w>9sU z_uf`p4#2&uEtN3!yW;heq&e{SP38EFBTd0l?d>Y~cP|?o4_5U4(Zg4aJUue^+A*s8 zPsD0(IP$cu2Jr)X%O>{GR{CKw_IeX2pah`7Z@eHF~oih^B-X zy*rHFmzB4LdkKbPae?%n9?*Mau@Y&C9c$`I&Z}!T?cW+XGBTIf9~-$nKJqjh|DA|U z8iGaf+88i4M~of*OE3~~eTIDhm3qE+EK$$*HI|3}BmPLh@8Sm=0-yC>!rD_FzgBp9 zfy3}+E&7szAI1*+BtEi;g&lr-Y-CX)U<_~XpJ3ao%<;_V<)&}+b|Xg}kEBL=vm-}G zdNXwOrcnvmxg)(PhOB4gXuvJ0kwbOda`eQaL_}_moLCf56eG_>dCC0}qV?3y|IUr1 z{*TTMk6r%e!{)Ea`ot^$$H>~a7dW;{Qao5{WZHqhkB@Y+8$jDgXQKVYNN18+H3_e{ zm!Z|V3xR%lyLf=jDz*Lm#*t@6QW`xJ>c|nQ7)N@?8HnDqBS&GoNn;ruJjOCQw9lMa zl&oXQqfqG?n{V>OVGL%Don@x;-my{=~@b8EA6% z$g|hJdZP1e@lWVut={~)%L0x(hX_1- z?TAF+nd1J;Nbi`m%p1}&fiOIKqG=K-7Dq?-nG=hnV}JC-;wWW~oLC&C+jA!tr|W2O z6gnU*BhN`(yuDv~KWYejnY_l4%RklU!q1m~GW^Na$5ut6g978`aQ#z$R|e@XAk^j#>nCfD*hyvJB8(6oaP`ovN$!e znEwfE;7F6V_gyG6^6clI9-R~D192o{A>KsUKT|xF8|iJq07zbX3nNEf_fk-u|IAMu z>1~#-%8xvY?7Z&H>1-S6&GFgY+WsT&>tEBYpFxrqpDmurInoExl*LWdU+To-%!wm< zKpIJ?VvQtrA)uGLuu4tWgqn`lt_d|AC%7i8VzhOw@LeQlPkDP5OrY#&Dk^2t7gI>u zrT8xaeQW-U^H;CJz94H=?D>LdYxX5GG7SMc@b@!p#5(a;+C)>cGl(0aHqxne-Vr*o zM5BSw#Spg~1QJaoh)_5sy2#->THFu8q7)sI)V(3Hj*mPmn!YGw^o*!_3L&&$U@{fs zQ7R^CRCGe6*hiA<#OX!#M$;3;DH*FHMTC-ew>! z=xv$x$_jig!g9;2m70K#l$c2E=&HHhn;(h9T6qPbL|WI5c}M+qXG>S|A!e?BS;lAA zkxLA@>iuiOBWwCsdk@9KfQ$XIY5`Xc?VEGjcY(C;0;hemXx%K@SJT=T;9BR-;ti#n&tCf)$gI&jY1)yQ>C$4-n#LEI9h+->A+89*v2M5`O%&$1Vw_ec${yheM8{@r z+&CvZ6%GzVzDvV{SE7m66CyK2SHn{unw@ukso}8``KK13!9wB6K;Sd5P_ttpmQ?J@ zU*lLvwIX>~NTmSR@Lf*nf*wuV*YxRX2Xha*z{a z*~A+iSXqe-1)vbR+s1b~RZN3KbEB>4qz`3zE7M*(RcQf{jU{MrqTgl}}Go@Z9 z!MRdz2+Z_CkoLn2luhpPivLMQwi?)>zhl+d&incxC&jOXb=STIOZJb^%IV+@F|`iF z&siOW>Mk74OoRXv_&FrN+5}&ePbc3ASu(n$OKX#L-5~|gyx!gojs|GdhB03-oughw zgcJzYOPdf+v}w`|LJ&-{c1ko1_)?Psz82)5#pNQelN?;<``}tglnTRFGL~ zr?e?CpF+J-w-lvjp>#V=Z7y{uttV6Jb_|*?bvu?!+nlQ(a5bQ*HjW7+57}4E_BdnH zY8j?=1;)Qw2bx)DibYl^ubvzSqS3l62cp`#OyEWROVPFe?6t2FA<|zXLAFY?Y^gt0 zcdFT_(_CVAo9H*3&yy+j*V8g@SLaLp^_nasas996O!?;&M>_v@3K=^ub*uTvM)Y;@ zqPPYVz-0Q#0pnXh2^UIRg^Uul=`~TyhN9LSiWI_6TSf9y>ZY==Ce$@idHsrR=$?Xl2+Z&wRsvM#fxozX~1_rK8KJHIuC8092C^k!hwXPKa}%+$+>CXP|o|q*l54FWu2t@jBZ<#>ReT- zbES3lqSs<_+EQAlTh_jjweBqCjdk4x>n@bmHP!*^>UBWKRO=e+fcbT|&YKR%%g+9Y z;BrbQ@Vq);LOc-g$0YkYF@SZvVfJ-u-q;OqNa$yn&_i7()RM>UEq^Po^qo)DyMJ8TBks<&1iU2^Gi$_NsD5Ju`+1WSw5D z#*86rm;woy){e} z%B7fcB6aal@=F^w-tpea;NT$ke3d;YVn&G!?H|N+fKb}9{kuSyb z<&IeUTRWPs{r2bgkIoA6UG{A0MS7;^kH0;bjurRE+Q;uZ#pV7|5Ez#f|KozcO0Z=R zB=BQAPp)_<5k8L{)SgFEZVH%TxLV1BREcEhZsvr$8RC`^V%O`ovvelg53=|5d)~e) zcFr7K^@vybp11F+a_jBIS7PJ=ynRQ#eWS7G4xDRZ6yoL9IfLu-)4hFUAdjE3p5zx| zM@ZTZ_FrbbgS|5b`)BHK`e1*&9YXK?CJ&N=sgnu{H@X3iWcit7#$yy@z>9}6;S1Tp zLH3(G&-fbpN*;>=KG2bGs*dnAHo^(x7dO6N{gB636FZxEEp&v&H|fR~mvOEu_0xj) zj1GkvK-uTKeH-ArdAqv2${9jx7SU?*DyO}Dt2M&Kmz%tOEBSkSGsB=yW6tiljc9+I z0ga7{TW2zu@tp_w)g%ntD8e@G5TTnH%tG-{Ivh+pI2e&1_xuBlx-!2!euk%|M48>k z;a7-OT9P`hFdj=^ZiSaK{+sRNqPMqiTWrTo{!^eEmahul=4akM3P78vl=t=>kBw-} zZ(e21yT{)e?B@N?#9o8Bd*9P5?0V+XUm@fNO=^&lZR1&$am>2viH<+UhEDU}VhGYi zvgHA9+<&LM^|EvAuhW(C_T2&<9s;TPce-pVO5@DvY%Qn6KVna&p!4{PW97obOo8|I z%`I{XuW@27_|w5%RF!2vV_(@PR5=%@NN^gzdN{WmbZ`lmD9HmZun&Ec=c-s-f9|LdHLY7PYiC*0@x{U z&qe|!hD-4R(}o(0PnLIU<QfKaSuBAb8Uh6z_oIN!jO#^yYmd z^nU9jr8lo=&OopkcD9_JX7vqe)i-QyI_vFQ+Em_s<9ItN{tm5wz-DnU9NjS;pp}+R z(?MeA=T8469ANLmvZYXeeV!dZIkOoaXQu(&Umfw)Tc#IZNfdv|(JH>r{<2+ph_`eG z3Po2W#TVYbF}m1JmRk+3nKgLp<@5|vtxor=F;>mvPDt=ZxaE0oUtfN@>zk=QV~pv8 zYd%5WzFi4*eNvB;U|Rr=lg#6X4TR4rr2>bh8!V7&WkFdiU_Be?{Q{mq_=Eg~=~E{^ z_{+SGL_bRvLuaORH!1)DiJ2Pk_T4v)(`od8*eAW&mqC4~DRwGQR1ZzZ$YNa7jC;lZ zRWkL84dCeKyrCY3mF*2!7q*WP!)0e|nWiFPVUK`xKA_00vEmbP${)Oa8^>WKZ{I;l z8AH4VeaM%*eaqho$C^>KG1h=;r|@?M?>OsKviaBuY%A zmedB@Mj8&60g=#t%oY3iK&s#!5fC^H=M27U)&k zoE?6E!=|$)HLS>ulH3$^c0y;eF#Al{5Y@)mksTI$4$8*3^EuAP#ir%>PH*2pzG-kB zBwNo9pps&-6H;W0uR^Ek2NRrt*RkHQF*~t9%I*X|m-hCpNLklsy~(0ZuYw-3D6 z1o<=QDEnGQr5MNG8(gQM#BSiz4zBwQN(G>H!SVNkOW8YlCl~TgoM(lVlskieq_57m zZh0KRjm!8LhxOCzuC!C-j)(O#gNu14-g|Ie#yy2SfrckOxcF11VF%Y;p>NQhGq`S^ z>9*{brlU&_yu;l-t#f?NW%^9s+w)Zd7ijA09PtHLH}C~pxO+DY+EYB#8tPg*ICx?5 z^~d`qUv9OUP{7c;>81;juzwSgu85li}z?;q~)mZ7^R4C3&5szoz*=g6&#MYg6T}>1cWIse#{m10a9j{WCbxA{7Hu zbYrTOfZo?_+mXOf-BNDy^$BgR8MhdR%NsF80cCoc7a$tKo3x zLfb|22UpLt4)uCY^} z99%tDSH%Zc&(UYo;A)kEws?E~Z^;e581!mYT4+Lz-e)zE9Z;u_XYVf_>U44w@Ndwb zV4s|R-5uyx;uy^j%GCT*W>?EUl?%=|w#1&&HZwTI@=keXXeq0{ZyV&78?|p63^9=B z`L{up0loLO89JEf6;;&YKQX$bDo-q^CF=zPtQYM`)M?O-ZEYJHQ=V)K&d=$DWi%G( zh}%Cjt+;Pk)>I@xCRpj`&t!JNtegnwitK#Jo3X zW*r4kgeFLq&3l!%^nx=-n?{%Cy6v#;=rjsi0_AwF`j;Je1S8i|x%o^=Y z4X!|{>EUeNT{}pIR6T<$JlLhVT<~1Kb(RYYj=zf?#*h!Lm>qkaCr4LtHHH=2+&sAM zGE_o(aK$J2ZW{Ak&VH#}z}u)k2jk4;<*k1(P0u*EA{oR_dPJQ{1gCh`%WJ3Xk-}5? z!4GSXuK27zXAY7R<})+6;xqchqkwjUE9MU_ zz7jW}!`t&8-ZeL%i|1!**`%4{CIH`ugTQ}Iww=myxqL1(`j>#s<>B?X4vZ*KY! zG}vsX!4|oE2g>#X>#t0m{yJT!zs^MT*Jwn4y);38{q$E^e>J9`K*1zYqc?`AHCvh? zU*3J$csu%iIWm9GWfFM~mSbF;ONH{bfN{C$E*N{csRdN`a?@(?vwdmq&f8Ak3mqTv zh?MX`RPTiW%x4o*?{I$7waQY9`e@ zqvmJSoISYmQ}`c)%jT&6l=|nZKc(i~DYdUud#^I;V$(`B23n~cMU=II` z!3}8~7aaaaWa>~tlEDV$6M?DgnZncsc(ldS&R<=Rzj}bG2U#?Rs128eTq=VaGtWgH z0QBD26gwtLpn-3l&SkAQGUB&ZorgRd;h7#Nzwg!=F}xZgB>HB$?UJCvt(Wl~%o%~7 zu3O+0ZW&(@I0V8o%dd}w2Tb`$iyA2!>~TdntZV>{%}+9U&)FIa!sINnd3nFc52 z2i-iA+xO!G&EVobe4Ij^p#opd!)7g@!(g6`j5tx@G7pX&@ z(Cu=JdNhVBq*uCi$zq-8m5bD+rd_vEMy+ZUfQ@(a7y4t-HsbI*ppur6Z%fX z!mG*H4 z4X()W!|F}Z(JXJI!`vfvrRl=;LW4zn@mf#}^l-MtT|2k}twzt_3Y%F4Hr?t!>rMsz zpF+pAh3*@i!o}vk>BmDC&fG!nF^6k;=2-PPkWF3h+%z1nlykU}dTO0Y2B(^F6FFs` zpiU~oV&_4#aR}Q6*IgT2$y;5ALs+{HqguO9%ixNCQafd?TKE&KgDVQbDf;GocN6Txi->w$y1!~4{$F?! zsgKx)pKwjRefaxdL;G-{c=oXH?0;mK=9~b}9)5eXH(U>BzW~=>8lWBGYmM;i;VJO! zYbW8^!|6r#Oi@7l?@{R&4`_$aa|w9%u<-2Flkn`}qdeLN1hoGGt#gTh_IdE^;VY~0 z;RHPUa})6F;q+HO2@ob(u z0JJ%pjA-k02x;rM9@AE3Lx^b?g82HvfbHQbusytSoEsnKk3@=~?cosG9$x+qy>8Sw z7!zQ?T!c#iw>O7E1-8+^T@B_3C=7~D6PbE`fbtO+gKzWn0l+;Bz&*TUIvpU~{}R7b zVZB4RKkM=n1XSM8h2Y!VLMUI0S#yuRxxZ%Xc7`Iq-GR8gp zYmRY0uFn{Ea_d|*h;O5W?Tphx#3#OL1D8{|e;+2b&x0E-$ag3j+ zlQ%>R73mExf1NYGjPmBeJsbhN)lXgsP(w##hI&AwIKoDNV{$}NhD_nk zj?=dwklxTGA>O*-B*>f28s!zaA;11pf^1eP;Yt+_8yMH-s(Ib?mc{7+?(Hf zKiqrxL%_ZNFUiu>xVIUw$+&lzAgr4&;`Hr>;oXc)4e+KBLA=$1{A9p%1WSN<>xlRo z!=R%HsQ2&SFMI&J2;VcrySaG)cn=HkrWqjK!*~3gMgVya-|{An0P`L;%$s%ydJj9$ zo1Tvy_5PV?IW_8S`JTzBH~OjQ<^fH}_gotO&5Hwo5ATpK1_C}DAmHjYcTW_As6f5m z-rt{qf&XT8{=%g};lqcyxp{+8ES$c2FkBsVXt+A+;Ba+J!o%r|0^(TcIzW8*ynr}Y zJ3ySvE(8!C{s%x@Ni@=(%8`F?K>XjG9}u_sJ(B_P>iiyui`V<>jrCn5eyhXB;hqn! z@jT@~pAZo8At*cmavrLx@Ic6ERu$eE8dZfiN~5aq1d`LPDLg~T>G@?-csA8-vclW^ zNMn81n4VMP<-9R~`EUT3tK|@L9bv2l6LDm^E~z6!yJqXi6rs#p0Gs!ozTbSBj|esA zhYrhms)NnxY>b<8;_)hQPUE0nMXs1BR(WD1_5Oyz*0 z_clb)Z`zE%{K0Ybny)1wonP&&L(G*WXUrjvyiH`|ShsB+}s3GcfZEOl5 zbsElK)MM(p=9kc7K{u2j&dR6QR=25p^+y3f~tbcfP`Xm1HdLAli55!dv&cmE*e{$DpCH3#AFP(P# zk#b*h`q|>4csLK)4krA*&6DBxwc2{=9*qb4IoWPuHYPLJ8tT*M+Mn=-X7B1GVvLVA z`NzGXo66ZQut=CHl!ty0`)=$wb9xw=+5XXT^0wpeP_0S}Z=;(@UH2!bq!$hv*O)D5 zW&HZ(T&=!N>$lWb(i2ZuP5p%DZ8%{im!Pl z4mN9~7+)>IM~%1YyWhmGi2G04xV4R!`{tc(f6^OT!4S=7!ol_asQ;EXw7p5=b|&r( z-NoOz*jvm?ee3u;oBb`MV!J6G(Xefs)gI69e2y_o*o2KKiY<~1TApWUE*?sSG`53- z!c!c-yZIwbhvRuw0GF_Oi?Ch>hFg}>5(KSzZz$mn-QQF$w6vevajpOOXq*=s;n|D( z<1BK%eLBpH}o63w)sEe8NcTvugfSRpfH;O zU5&V=Vh3YS8AGmJP+m_F#rI<0bJFRzwex-I=J}*M|x-WwANikH)=z-I1>RACG-IjL>CuroEgkWA3EwM;l^8&)0td4 zbet=o>zY}|$GxF5LJYm3dk~dn3wW?3yTD_dH_Y4Y6Ra{N+IAC4(aRMpA>Hb^);phT z)0)W36&YrDXS_WF!bRatUaisgaTb8&d7Tb^zq5F#Ig~Fuh{%`L_Gm#+TNxh}&e?j^ zk$SY0t4Fg%xV@omyhT{^OMUrUQDEl6n7!oU_%BOb!#p z$3^uwyrBnwuKBw|>t36l%pZR%_Cq9coHvOde-}macI?&TZ%Ib!NyM0^!0|cOS4i&q zCM=xhVc8I(@hXF=_-^5iTZ@OX;TzjQb-fM85Aw~$57H~D4-f0NMi{ZI>bJH|A208| z{G>N@OH=zh-q6ySjx+9y`$y=TCJOJJtEl>b|GIz5|9+{EAN_>?Gm1Em^4{K1?@abS zK~pL##`7@kyjPnSLu{+7>z&0XG`8xyUJlks$t26^FHBG8855Qrq3@=0`b#Wl8K780Jp335c>$$PqN1YMhW!`Mkb+!3aiu3gwd^59aT79$qYp(atSbs|?oiC?v z(|EftTvtxt3@-(DER@q5T>nC8jB?+70Bc+Gb6sEaX8#`6`a=ph;6+&;nS-mDUJg@Q zg&osu`Ce9K2lqOS`qhGen>4D)ZysT)XUeMlI^L|$pETyrs=m<*FjjArQoRw}b$$-r zXdF7%{F#RQ34p)-Mfme4jz53=vGZpK^4JS8`ryx2n652Y|HG~Q(W13K`YuC))=?_v zooau@8(KUIAuBlkTqi!wa#os*cUjlOCsdlxNAu2qa@tldR{5jk$Qjf;$I|>Fn#4HE zr$iP#xMEiEr+;Z~#GG<%4f; z$1PZ@1qd@vyFJ9yVY4>-_hqEkmKHdbmDx%DK59+)Y0Lb*%M{~_IRJ-*bUH}t?Ph7Fy+Ho*-4C);1; zI_MLlGsOk0;4WX)KQfwmM7E)X{Uo%}8I2xSaf|uI14)+NV+_wgiI*H_zRY>3v3(3H zgXrrkT=C#*$H%2Z7rns~K%w9JIk(F=%du#jz9e;u4Dh12IZnAjTy&OW>MyPT9IgWE zo^Es2MZA%l$~9`{={gy_uHvCWICyq&aB}_7?x5a%H=?ilkaDZ5mlcn+mUdC|J`l>XDo_=o)w z^zyk9o+0%IC}DaFMGhIxRoruFRsX_!^) z5;xO$i|-a{J)JWxu_yRpP2k_`-?gD!*aw7RJGZV}_yR2z8gOMl1r)T> zuC-c(n%u?B$S2l!SM~YtioAE-?*Gg_d;K5U=Susw9*eZK4Caa+|A2k2 z@K4)kH|nn3aVtu{K#9U;|G{PQ&daS|VKs`){`M|Oe>uCu9LIHw5gG~t*IFF3qLVLC zm)i~Iw%K2NlLoomwRD`wThAXY~eG_r|P;>d~*A>vq=yV9XZQ_5Z{ZomlwI#ObWp$_uvU1m@iGnOgXMV zWT_GJhFH9Z_?>g}xEFUAiYNf>^J_zS;&)fF}CbrRwn5?_ndakFZ!|CV644IV5 zVh|caIu001WQ~J`IzUS;ZbpDQy*)!tfVvUPt_JH;nDgJmn{Ps4Z7Ck=4b`(9)UW5_ z{0&O+pnofa)aL5K(VKE-#_={;HS=h1o8=#DACa1s zb?eiR-X@QiF}-azpDZf-yvdROv(bgde;RkFn=BDUVP<&TEL~~3#1tw2U04K?k#IP` z+Vv1+-AS%fPvD%rD9Pd)df|rcgh$*1epvSsD@mZv=sUwFth4=POx_re9fVd7yvDta zB#VAdZyJ&$W2RYu?+t#xS)?&@8JbR+%WPmeWiE4p>6E!-%F5@RxoqXGEmJA9HXd#Y zU*lVD{cWqa?c?rSpzBtKvIpVob@A#0>}url30;?sVH0PS`>xtgJ>}3g?Ss^frJN1% zy8LH3m*8s*7k0Bp!__ULz_4^Hnq@F_nrD7M(`;TKse{WQ<9Urq+6gqj2DIRx^S=!l znnfW#Wk*GpTuHY07HYOn3x>SjKW!a9(_)F2IU=m*Y118)qq$i8fjeXnJfFgwB zfU>(Tax!asBQKB(>huEROy!^qu(U_UeeDJ=$_E!|)dtxvx|)Noz;ItrS9N&@cU4PZ zm#+)#av`wG3-zn~h7Fxr>Smv`DEHNH%W<>8wH|X-=rMI?Jy+|8=*jx5Yl9+@((J^D zW5A1NI_cOz2P;kmHe4lrY>>4>PMfpi>!2o!{cn(QcRl^|WXkb=XSY{F`FuIPjq|EH zMZt*unq5!U_1s?Wx^J30?DbGX*K^fM9kg=Lqk|hbSfPV94q!#r2H{|t4sZ+>cj@3J z4i=-ly1YH#(4?E5d=Jmw-Jmud#nA`X_h6Cw@>`3C`keC8{0uvskWZabf4LA5{RKdR z4w7Hkg8gq%xnYa{J-V2v#ZQu^ETdsA`={0YoNuIUOTteQkg{F_DSno7d{$m{A#X14J%Qux+~j){)5ql| z$G+!I%ip%u%mPRKo;Do$m}RT(k(-^2SqAGK`PcE-_vG*1BgZ-sV~G!rTe#frH>!(G zZ*08I(9j=Y{R|ON;%b+cW!vm;T!>1cGvQjeOsWs@cY#z87jQt(G9aX4SAbN!;-+}! zfbtBfXryW;BNau5qv3)Mg!pt;?j*Li9zUzOO6~aOQ8g zCHD=PsC3UP_uX_1@2CYIZdSW;y9IJB6>=-A$aTL`Dy-dP85aBoHPhbS|3`}Vod3#b z*5$hh!ci1%Mhv=`Yf!UX-aV^$if?a8qiyLS719F;QRzm3kt0A2%jY41(!)}_m1ot7 ze%msec1DebRmDsX%Q|%jnTzXOW`x^mDM?Ze1rjG@6N2oAQWGJ{5Trkp>;d|A>sGq& zC{2+zJ*>4ixkvDFda1yd0v((PJ@26xU=w~Og z7EXah?9N}~PHD~;XRrnj-k|Pg*G-DzL6X$FwV2$40w}-^Z*#M|T|RGF%zK2dS_L}i`BCo0?P@QKQUzry%L1$?67@QF%* zPgElKL?yr{D)%~kq7vW}l@A-AFw2sdgilna#wRKh@QF$dpQt!|qT=w0io+)=|A0>f z_(a9ncpIDDeAt`485RPl*Q z6`#OhT7IwcD}+xp#tQ>uX$!}8mA(R=f7w{M&)YBK=2f=MX0HfR*Jd#jKHG+XTJ)Id zQzT2oVHgD@F$;nBH0qnQOPKlA@z-6(0p3E8cQf!I-67lwlo{D zrPtFvUzQRzza_&Dnk{8PZL_7Ah%NKzM0Y&PN1lr@5r7l)V}UhUiHt*V@lABf8W(^f zs%F<2#vmSwyA}XM#MUYp3Jq&uodtTDVZ}7Mi0UqdMVY|-HoMy>I?4uJ1=pn@$$*Ry z0a2vn0;{{O<6LNwg`9>K*=&8)2FuI~dPti^mW6Mom9dsU2!kA~B@3SmthJCIXRW~= zoax+vjdsS`8EOF#zzsV?LoN70E{~>>=tm0}aoJ|~?SAIG${xGcYG=hvlB{!rO&_(P>0f2eE^@rTN~5Pzs_clbl)*8+c7f5kb~NO(h+?|D{55>Hbk zkz)byp--tuVzg<`_r0Olf~lv#lf5dFIH`>K(u>}#&eqFy`N)Rz{iF2}d%n*i+e6>k zk*lBbAK&wWH}p4=dH*jqD3kzPXEu^1?UKeQhJ_N<`IL?8B|xvqdgQgaU?0(lZSxin z_RnLF!EwKXrN2LY&KtUF&kHJ?_?w-Vjs8>NT}Qp4E6DdUt5rjFr1(lx?77%cm;9aW zla{&p_&F2bZFuGVAi%wt! z0}Luu!$mx^bN1-6aK1D)?OktZr4?Ab9NzsewpJ4Yqg_qbiO^t4}*W=W)`-9(i{F>r@Tz!c4&$G?xNeqVd7W@*+&*5Xmd1df` z#2#{jAgH~(+ta++DIRji?=Z1S-;xw_ zANR-h93mNScc6FaEIgeAU3|kEIwlm?s&1j^c zliJrd&ZmpK&#lU8!!^rOvG3ZY8K&T8y*>S!ii8`BI># zdJUG9QcCRDjl#eIAN6p%-A3qK%Xm25;i^U+e1nR!pNqo+_2Iu|8qzEG@M9Ry1~3Ht5?YKBoh`F{FcqvD!M%>CybY? zFHx|Ao#hSlZoYG{Kag_N+0w?8DvnfVR35neq+>#C!t#J0ALlUOMyZs`;6)PGr}!$o zsNK5#asRuhA_`94Wd>KZ;N)c$ob36&W+_90@AzrH+?#YAc6e(lhr{L%IcO?D4_PGlsAO-=Sw(UDj63nkWpBP+_2r!}V!50yM zpCAG!KRyvKebGP!OkcRISnKUeZN0yzkN|BIq5)zICr^NgC z49iiCPFLd5E}t1Tc;`?iQ0+9TI=b131&;H6?kd~PjK(V@8l$7(dSN&+nxBOqc4B>XdbzOOlB-%&y!&Ns|= zcADO#ZOv>caMS9?-|>&x7uA}{?daZc9Z!+vk~DYA>^XFtnzCbb7wFE>&F-kQ7ShVo zV%Ha1&9s_nWvq1#t%6ha8yE`8ZMX!6$2M@lgyNM99s2>m{R>njNXLA)iQOAc3fd5( z)&^3LkrXJ$QNQPh=G)nRb`$hl3&YlhM(x&c@~uKRKec8O^4J57Zl2x0WRw|UbeKq0 z)of#;taQKn)lf<{88$SJJQX%(q5i&&H$`9CRABLd%<(z@*yv|zr%Sla$9RyG)I5aC z(5ZwF*5mG3#ix?RCwarwrz~XQ;0&j-YCKQlCF>P&amA6}tS^Uk!x-1Z@x))=^QcFk{cGjP+>huvKtcOVu^07(q1GYPxXRO&4aD7WmN3@Lqln8=dp^E|rZ| zNXCk(H=XAM|$;wWI!V{|wW#u|!$oL*6rikdOH9(4))f(5y>tu#`eF zs4Ibh8QhOAO}h?wSZ)^NT8g~s5}r&wDSF@n^`Pq2gG?@+?RroE>VZm2gBve&Jyicc zta+6kd7HDk>^k-@(e!TDDzF?lEjQV9*}`)Cc3Nq7PRfC)v7Pk9U5_fw*fm8xS|bLr z%KKI(wd`ulpZv0<%5$V#%(P|w6EIPRbL`c_)r9o+xxhbW=jV&XWH_Y+tS3{#2zIQY z-&N&&Wu6(k?3XQ$-XPr-)Zr9g2G3f#7?w$w(<_`6?Bsj#a=ceR>Yh)6snkwmVs)U$8R=b;D z@8Y(dR0iE8eX^B8OFTSyKEttQ6bT?#qFk`JrNa4CWsoM#E5DuNQ%^O!i0}If3gcE{ zJ6Yvpgai^Y3h(E0O>WQkWk^x-a*nadYh>b+GOQMcEypCw!^Sf(1Ft1Q*38`lK7crJ zD}KUeJc2YU?%Hq@&nVNZ-_P%PR@R(yhz%Wd7o-(%7R-ZSp*p&6q`QS~mA9bKboD8^ zZS63++5d~y4P4Yli`%cvBZXI6uc}u&=;ha!<*es=dOEci9N%HsogYBOkn;ne3iVE$ zLK|WRIbe8f2lx%wAlA&j|5r||d(as+`+ma2C-e7uq0SZtsy6%H#fOdN-#h!G{o(NT zFc2M9uS}V8%^#?41BXALq!N!E_yeZoYy5$JuW=64s_~TE!Ya4PEv)h(#-g4>F%a#f zPQ|bVuQ*+db#C!1PaEPGjvQ`|cx-vK}4JLVyb(W9~>OY=Dg<2AZe zi{j!~yGlNXilP(NlE0DD)^2zh@;34jZ=*TlZ4@Hj27A86T}HqyRmZGaRt@QmmAb;B ze8%}={6D8Zb_e=H<642@T)4s zq5$mc;(2x}oo}NhT~@sY?z)T6l}ee~o#6hvkaLP=YJIA8V#cLbYn&X+cy}9o(up&K4pAv_A}D!+|2vg(UAfTRCtCRAs+{hQ7CyP^DY1UMfnH$x%8j%l7z zYO>kR|1R6T=^^igsIGQ7Zj;8pqPnL}@CN54t%tOUa&jY`IS!Ln7_oAl>&erilYw2? z&yV2XxjN=$tIKhHLoQac^OX9^@h{Wk>YkQS_vBIzE$(cuH)MrPcY``^75uoYOFg(( zclW5Lm4g*J0EfK0TL*0%EaN)7F)M&t*6CF6CLxdOg950@<0ol z%MJw{8=j#<`u9oepdtPHoEpDI`Zs~ZD6-0xCa(WB0pF}Nz&9(uD15Wh5Z|nPWca2M z5Ugtk#3`e`TeA{uO}KK`XIa-r;3gX(0&Z5G_Op4AoetrfIDJ=@Tfd+r>I+`wyTUhv z(w5of)>&4?l2jGTtJTV@egT|Mp)=y8tO1-G>j6&O7DapLCE2f{E4X^^r1Qsv=7f0u zLh;SXBWh3mej|#1_i^Bx6^CzD&W~@h%Y78zto%~rn-zy|R^AWaI<(2CA+rC zL?S5eAn0HzM&Oat6=0HwzVvQE4)0#L1B&nt7pw0JA1_zP#%u?va$@q1|7*36E zz8{5g+6>?P02Kb%@Xg8?nK9hwN1;8>Ep$_djJm@%)c{TUONVS`72h$iLN}ARCUK61 z=qXXfwhXO^%dy_oCl*Qjr`i9FhT~#p)jpYp5eIv?a^R8HWK-- z5SWNnxOz)mNu5*paNV;tGRJ)kmooKMrHG%W1xI_to|*;25_@)$y3+n>SE!~04ol@@ z<*TuiCS?Yp(ZrH93!kDTYXnc>%*wl6$(k(@Vv$i$vSuMsP_lM+gOarku4L_nuw+du zFMY+8tZk?(SyP^7x1yA*dgwt=y>|-;e0ahWI9a(+?PP2ESL6U(PQU0~Z4E6NFE|H$N7Uuzc4? zif>jEq%D=kBEg|U6E5uTX{@XSgbo|$%HhN33>DLm718%#toJhO64S%`^v zroaz}XX<GQ=}2(faF#XFgg*Gi7V5Xr?tnG}9U(nrRJ(W>!7~G_!I9=Q%_( zE6>vqnprs#=twCCVw*{5W@QqZS^1l4cJZS?GcCV38O;>F+z8K{Vm|f5z+i6uqdre) zZ%esHt6(l-JRj9Ot3@VZ7@kFed|@{h1@Z+uFAA&>QV>JFe()&jQ36Dj-VY>SFEIJ` z3i=WymV%ZeOd_6NQI^mwjSBRJ`kB3nuj^B#r%6YZ)0~ZKfiYycf3D7{I>!(MRCaeN zyapF|rzP>o^=qLf8KrBmNOm`UAF0=>*>_Q~C;PVI5$7^Di9`CTg0o#gkFVt9%wD+mB{lb=$ae2#vFNhC(Sj_qm3(xD%nCc>Up5w zlz`JJidL@ZJdc~Io`)&4!1D+S7X>ngg^NM4qtsnkxENF^Dqao?7bCTdb%l$96J1GR z;GZaf4%QP;C1Y5|714kjP@lxGo$do$s=qcFi?eC+7xY>R~7^(3!wZ>39B3-~_D>{F|)1 zai8;Va;|l|^KbI5)hm~!1(yXxaX^UT_8uJoByI;t91xJWy;}zWiQAXyfP%*DT{-}D z+`d=`6f|z{bOnvYu%J}7qI9s}`Jn-3Z)J^=c_Mh$gO`m-%W;uL{ zZ7rTJ{buo%xIcQ}ovUJ}<~(0~IpKZtSj=CR^zTlzx8`^Lt#T1Wn&i}b{VzHXyKeg& zEl!)~S10fA6Y`rDfwp=?!>{A6z9bQuKNQbvf1h~1T)3=s*<c`g%PcbMn% ziccl{qk6u>Jl~UX_k3r0m6JSMyhPpM6puD}ADIx4tE-38w4egAuWXE}RnpbS2YE@hs{xBIv3F@mF)r(C@pKAQW%XTn(GeV(%425Pq z64EF2k&52@bZD8?>bTESWb%zAjPy!A?I{7Ri#3^`T0{4qWf2j04> zT`Qs`cg`JM_XuwwRu&nt-O19;6a^>zZy$K?Dw^@qm$ew0e@ondhzVtM27@n#<7-KO zsYWUh8=LcX@u#9kjJjcVqDbxh-=T$o6{|3sAS6bQ$?3;{9*ycN-1};sZoMzjwfQ?y z{9?JQ$0B#k``#RnJyjC6mkM6^G1!tf-m#jUdc29Re9N@r6RFaDZ&csfe^alY%ujsT z>D6~V=v2azv+Yc>+4YxL$P6KOdMX2?b>8c%sfuA4mGkFZJ)f4c#;@Yy=Bhsz$XnNC zPq-W+>X)VCeypyFxT75**Tv>`jT#+xWjX%aG zYe}hDC|$|_78>Z4^-K%gds^Phw?}_V^H0T3%0~6r1RmKRNrH;UC7hb1sOlgYLq!Ss z(yk<$-Dk~I-8xy?sLIxa4@x%Ty3(bME=dVDhkYt8jPTc>fbTjjbOZUcYyB#RiQeEa}K-tHuxN)|0 zFSC4Nr5MM!+v>`f?oB?%XEROqCSdY_SA1Lqd3N;ko23u550bXwDTtR5RC^=7PPc4; zBuNA}JzKgD<(TtZao%?vek+x@O`2JX##FyR<|5^Njhgm$%N=66RfUfi$UvqLZum$d;B_A)RYc(WGhA z%&FA50^Shhk}@9Upmk^G>6wJe@`rdkDPXa1hQ}3#rDUs|Q~{Fuf#yLiQtnbGHVmOOyt*iEGYna^jfy3Ex0atsqpvxhmyhVcm!#NRP{Q0 zzwm*IKkW>z>+qNM`m4IRZKuDg3w=Qy!ntq~tQZUzz0u~IlPAH3IX&@@^B1Pn7k|7T zec_hZgOegl|6i=e*zYvPZ^HQ(tuH#G`r;6GsOgKtv}*d|nO_xsaewKL^4bTp^tJpW z8kny9HUxOURe^rNqROpT9%J2bN=V8*u~SI)R(9JgEmHBOEF&MSrM2i~>Rnv31M5nQ zMWuAI3zN!6w`=v7MeU`5Gly01_C74Ut_yqJm)|tH5lt=SoyYGnWx+z8bmfrz9=hdO zt2)lD*dR`G%Djtn!piUDd<%5Y25+(hnlZ77b{lOee(Gh@#nYM6TD;IO4tOB%qm+ny z`F_8D!aw&|sPymE9yYRXTEL=exU;3TS#Fi_pFi;SRh-P1Zj-vpp`KPvdyJb%xb-&D za+~Tc2Bug3u(lP7nhfMgU(!xOp+>1-{+1%ophKiY;QLXGd2B`3}b)A@3;Xz?;W)hX~t}RTKcqNH-^$y%rCm^dAb)=~s}i96T{BPN zZTuNpWSdlrD7RIz5_%PjG_zZ71s_PMoP{>m>L@LeXm+|*S80*Fk#5)O!8?SBXyBj2 zZ##eY^gPlpj{dx}d~eBiGe1|*mGmj8&_}=glWy8_CsaKr{n1HV{)$Az9-(CZN(W8- zY73`A6>?iM4%U-&_6PpTdgrg)X8vTvUwJ@Y&Ygk3qK|axHbu>wOsP0uXN&q-2VRb; z7B4AOl}XNdH@pTu2#yVoN$dnyw9a`=#@JuFzUq;LUQNeDuckk|q|Ka`kiqzJA9v~s z&$1JdbBlUHcB{HQz2P<8<`?yaj90y&C%mB7ej;Q)`6xso8fFUG?2)C12&20gS?*Hx zbZo$v+W6DmhL6(`C@q{4`2_NdI_d5*{#~j%D08>y?xwpZxSCL?l~eM*d+F}8t6x)m zb0T)a`}5~xdJIlBb5fpH;6)X9oQYmk_-wi)^x3MOkqsjE37?d~H1CaT(+p~V^+Ja$_4bUNwPezrW87g`*9SVBZ;qg(*INAq|(|ooGpv88i}YacxUtBGX{ADGts-p3R~C-MVd$o| zmTt@OeZ5jk)w;AnSsN|XZOM&T#4T}(H*_gX<4K*OSa3e2faQFeeha$sJf(c)c~<=r zu0}N}I_{@CGz_}QCg%*_Nq4A?)xFg@!&~SMHE`ezOSuiuZ911|)PJbQzpp#^?fd2hI@^MZR_tFL5UaKCG7^}sk^7)uP#7i|QHUmPmwzpxP*^6eZ{xVb z{O3+T;y)kaR87B5jGv?W^%z&y^y^>KYId)PS1!N18ZX@Uw+(b}hxyj>mZLn}<$P-` z22=T|GSAs;Bp!+p-b7Hda&c)jzj#oAFG-sCS*B1NoSCfBL@m`KvGeIlPHfi&5e1zv2U>Ws3T*@_(jQ{d5|%wUl{zz4wRA zs39Sq^_@JxxHShnL#yV1%Tum8;O4l?1E;gkIqvUl=eTcit*z#`Z==!v z0$&{1x%>2nI8V%YF;1GurTINH zz#lSNI+-lp)gBA zP+X&#Fdba|DdiMe%)jQ+R?TuD4rq&=iH&hZm&2y~CA&ipywm2voT=&YCV$EOTv>I| zyWItJ$&WXYP!HV5l>^~zdShp}Vm()wbkwfc7GBYBS8U=66O`H&Tf-~vv@5o9g~?3q ziY?(4TkHxcbrYZ36`R5!B+bc7`E>k$Z`_AwhR{ zBt%I2OZvnlboYiK0#|4KCE}F~-Tid059~_bU(!Rj0*X87mhY}#Eci<-s-b%e-CIqT zmvnKZF)-cR=pL}{xBVrZ{#Xp)@3oj7nv-V2IO)QVB^^9`;NZI{09+Eji3>lL$lfNZ zL4Z+>i^BKPMZA}+@8s-l_?8S_3l~_}RK1hYjyr|#>|%~3N>k;k7a94uC>#M@#0WHV zQFHa8W?s0!Md5hpqE>&2!lIVyMMg+2ve79X{6md_U;Hz~gsa7-yZt|rwhFEHUr0NZ z0-^X5Wf($h{ugG`|HN_+-*8^cpI9Q(`7!>VNcP&D754W0Z|`96|H>3$X!n;-no?y3 z|IhduI#3D}5tRb{>LDrB(BOy16Z0R9?R|Yzw2i1}o1&tR&*J|pXYubfeC*@4_dor^ zsJ;Iq)OyX{57Mf|Q(vQ1i>Dr;RkQcspjET?kJ75y`#=5vx4kdEl!BY&w>4uWWaonU zU|J6wRPILRRy3W({fbirzI2+;60(OMYkzasLMqVWOz1gNy1Y0V_n!9I4N6n4&P1k! zt+Xj&&nv*;{*9)D89qOGN>~-2Z?wL%vXm|@Cw%h#=7;HN-3+lA)%iyW9=G8PF>Nt* zX*0xZevZp$W~Hw1Ut4)P`Ldabnatg@*;|!aVN0iZhkZ9O>>O#$6xYhXh_eFxfZfk$ zUdjLu#MqfJ(=4%DG}h0#2__N+H!UUMdyKs$^mKJ~mY8~C%v;bbF{eRwSzy`gW{D+t z{trBJn)FVpL3+ogUMn!L1ZMG2Hcaf;!NI!uaZ}Q#I%TAOewd@sHOvqbKiLGn)Q3-? z8a^mnLBFzfl?t`IjGo-4k34WhH#wi8#-z|NDb7`Ii(Qq@xSWDzxrJ35+n{3=1`9mn(y7T&s??>^^$ zn<-};9K{hP)liJHCaRkcrT0$wOXai2dGF_oPq>+5OV5&WOz!$miUoQ1lxB|Ya)I^U zV4sM9A9r5}KgwfK9NEo-8xB(qU|L;0fXyHKZ6Pdq%g1Z}SSXo%CtjLK3kFcE@d`A~ zX#{qrProh$&!E66NuQ}T=tv2lM98L)A*2dfa12XVat9X~q@7!8lgY9S2|O|)USnv2 zVUgEEw%AQ3bAq15U)M~saB6@qAq8$T$!cTCmlQK5G?pg!%oa=4%@%X6p?OTq3rI$E z!t;1k<`PbtNyZ&Bq?sW}&fD`z%`{;O9%QlAZ5olKz(92I)|1z%jq1k+{Ac<>3aj zH#48?w@;e1u|nBZr6rp3)$C-4xnQPt=xKS(#EONp=`nWfqPNZ4YgOS|DsF_a?;KsC z`DGXsemD!oB+79(yp=v>9hIci0(jabqK$qTEXC*@oKtk$Nndm6fh2occ;EKN$qK>! zrL}4AIW9{0W3=F0vBn7wIbdsn|Bt;l0gtN6wt%aWN>V@|g(8y(C4vS8jDQ*%)DS=; zpq2s}l_3lPM1;toI2VFqjA&51MU5Kgu@#4IXAOhOq(r6d#8x}nw4%})hiSpcjqgDaXF`m>uAmm)8^jkuT+$aC z&`KxvDjm8YhTk;4)cc-s%NM)?p96bK;Jg@Y z9hX>7x&6QCSWk7Yf|@bfb6=p{Xv*0fwK$FY(S-30$i&={CY)^;d(s4R0KHvlLqE;L zvjDs`hcb7h@isq8CNEjJOy&&YaxGe>+d*7G^L7vy6L>rANSo9d5#D@r*@+!W5jo!J z#LAHr(`1vj#>zmIfNM#(o{|EBP9-ptAi9fj%STSc{HG)}E$}g{-vtmN(4(vXXeL1kNY&g@w zpt8}K66IP}9f|@joM(81tK0>^NG@Y~jd7Jb28ljpg1u`u@#YFXuZnRq3wzfv(>UQ! z9w6Wi=e}r+VUY7ntcF6)?Ww%;+yU|e4t`RBYy@OnmvV41JMjXC^_+@%KaoXwR@vwd zOF!=nmRr$lI&VyK^@<8ob`kX#qSAj4IKf)1rd-s^lNM3RigQsE5`1SH&*r5^hq49T zuq?oLAX3t|Y&73tlWlF|f|$?YG<9({uW_^etiT+SgJw;8j5DugsK1*nkzE?@X44EW zy(C<^DCC_p#^24R)Z<@T;h7>Yd1CIW*EX}+o)YY58-X@FU!>!T@VpZ99lISCxTh%? z1QNE_d-puCwXTleINEXTx@ZfI1blWyr~hhdjqebkd16q zs78hnheWYL-$7*~v5>%vT&rb6%SK`$2Ap`@GO~j(AGi#D9}U>&Hk8Beb6lwX{qvI$ z5 zRSKWsY4A{N*WB*$bYiGs%wjZg#cVs?Ua=i-x-5-lE#G2eqYy@q9({zNJD@Y!~TmC+akPgRT~k+{BFTD^N^M~z+B33;~R4o*Aak&0J%!a#_PVel{RZb*#+4* zBc&kko!bj-g}B_n1qxD%R!Q|Z*k%Mg+`^xW#iFPhBseZ7U`s!qHRC@vH83+yzZqxo z1h=fh%^0-K!hb&T<3?MY{*FE!Fb4w+>#6J@?@tc$h8Oj7p^&sGF33w`H)POKi0+Bi zRxbYtJr#^_SuCMpoO}M1rw)7^tSp%5khCR^8u%zpLom@H@w_b-d^hRd0G3V#@Fuz| z(Rt$=OD|?JF1@s*@x)llD>M-2Vx^-kakeXiw`4OR&VzV_*BdK*J|*G`zW`#lB@P*M z5X7;h>t>K(NE@%;93!rwz=-+1>C+^~kDb7eE5@cf*c@AUycar%ExhD!i<2`Q|I&&4 z)^0v=qf(d=#W~T^i4jPP5(`MV*V$G&k=MqvcnUvO*R9d>wHWLlhs|-N6Q_Gxr)z)Q zEa;z8I=%>Xq9p6ekGLyt3?4gSRyOmOl)7{8^Tl{Vu8plX>OuL^opH+u`23B%Y?u#r z7J+)R^&)Zq6f+YyN5=8y$p2d^Mv-4Jp0bK@Pos+QK%2h`!lp%-YsOSupx|3K(Us!=Zjd**4Y{j*On-(Wy8C{;aINn zHaEW0$ja{+x8mhu72f?Mtu8J_NzyR(2%MaJ}+SZ*ai1%u(XtL`a|IaOf=SzIgqoY%z~WDUv56<5_me~xsY@I@MD!@ zAm_ffLdc`o!lE~Yr4Yp+%E7S!N0uTk0lImF%0_ov`Z;f-Y(-t>Ib8Sh18Ka&a#1c` zF7{T$7h8+1dM+9y=?lH$iBocL%Am4~a=ZpUZMHMG)WSNtuh+oG%xvJo>Y{82y~Q=} z%VBZd%U@jMBj{w7SX`S6kIVrr4!< zh?CbsSRCh|H+Lwxq|Dw(hfMF>p%g)`ba#X1_?z#Pp;=ihg_q!@g^5Kt_TCkgE>hva zzB?#dTzWzt>MmYg%p$w2R~&BP2J>aM_ikhiue8;0-eUx8*OG(wDeHk_WS#f=`rQ7Ueo=jJ+IHsN?OG)#43Iv_%FmNo`2=8q{%8iu@LiD z@rkvVw~9}!#k^HK7h}*huFPA-7aE>WHWD|NINA+QFB{oScor9LucHBb^`5X*{@117 zf3E#{2!MBa$<_QU41CTR&M^jnD|z0(;J&9pknz47CkZb@xh~^nC|6Nj^6|2iOF&K@ zx8%zM<`R%gz6jcL%Tjs&fFvUzRkq+gyuw!=te2>>@$ObOe1mXe4Lf{`aMarIWgXSR zi8bx;ZNg!+V`A`j^LJ&#YamN}+Mjc&x^z>cfjQJJ7kB}n*}{PdrXxy6@^T>$;=~lO z8=6cGT(u?71x%4l^o~KCJaaHbc)7qSk{I+j8&jkM#6{kq_udgRgtx7158o@^Eo|N| zEy-Gb2Cpstqw9$!J0HMI!PMbC6ik&W9FPnvd8p{cttfUmihAKLG*atUj2RNg4i;_t z`y;xkfS|0{5KD~W;Wh*lLwLAbarg&|mhD+OLg@D2^HhO88XG4xm(+;Ha5P|9Lf>2b7-^F?x`0yezz*@ZoOaYllB_RiLI(#_Df1MTiY#@oNt zmw%y%#W93Smt2%~B}80_bKhIpf+&KIZR1q8O~@}domyp=u+Qf>GHURXMe z7j7j<7gwOH5tz7eQT%Y8Gr%r#hOxdk-D2m=VJDcwO5b#goih&p9B0LqVc7p^9irUhG7o@w(N0EG}!c50>3R>x+Y%w zpl+CWd-3g}Z*l38O7t&%kn60{mD&Qxi?5a1|L1MsUzxnwZzZP+HUny5xRNsoKv!xj z;{b#0eoWSt*Kp^bt*zY#z^1o-4&Wj~>C{`3->6i(WIfZbUGSCr;9po@Bwh6_#8uxy zUiJO2Sz)a9R~XnI$l!92^J`1~XVw>=$5kS1eNlmAjP=DbiTw4&Rl@%I;u>LpeNis# zuP<&CZn(Z!1=;_*Gdz@Z@iJ=d!Vp(pT4f(W5pc`0ATKugDxQ zc+-LdN~?_$=v0N4t_?dn;Cue(Vv_oPO?fld5_@Gmy_=t+Pom;j;C_Fj_xJtb{i&(J z^$DNEYSSu`d=i0AYO8A3)oiX=Q=3+amiIQoHHF=3*VMdH)0Xb5E$m#ov1aoJ>p$3B zyQ#LY13edk=U!^Sx6$2b@NMk6mian=A?1{$)}~|~UyrY)Y~Ev$rXKTR*XV0I_TaER z_>1F*zS@QHlOMtmIyz|x<%jrZh&~I~=7(#y)U2t2GrD0kt>buti)v#X;2*i>ExHE7 zDxJTPpPHuaf89SCOu<*NxaDZdsSOO?P@5N8Ft~KBM=>1~HsL>pR(R>!NNxVNj^!@L zlEbXlCh^=v_r4jS8BF= zlNAZ|s)0@ZSR4xZ>osfX=G@w~HLtzb_5lscK^UX2I*`NYx6TP?CTJN!E4^{*2@O|x!$OX zU_V#wW{Nk~a{g~bZ$%9QtaELChuZu|?N-czEwzP1-)H3bD)+rt5QxpSg@bB0BaL99 zRZxImu@U%Hm^XM$)|ESO&!gES zu!pf``7){A`s1zP{Qs9nTwZPd`r7;rwfS5Aoe|g8MxU2o{tN4eoQC6#`2n+_1M)*P z1_JVf#u>*BCO?M~(f~(R7^4n<<3)eQ&C48JIH_J&+a`6~jNhH{9|N_+(j7TVKZ6R4 zJR}@Qx^dKTAiaTjYjmvV%R-Hgb$mHaqhl>!#_%$X3XGRyI4@u0s{&?~5zH@n%rrxh zs$#j64XS;kHkQMX&&IYuf1dKy=Wf0AZ?0eDuRY`&BpX_dgd-Q^MQ}j+=|E>KEowNP zT>kRLR3(gwF@Mo51xP|Tjw>XwAs3z_qgW|fZ%m5)0pA4imrGx?@?HC_36POlJi@M7lRh0MVv z%)xV*gJ8{cmLBX2zR8A6v@D|M3}FWTWPu+WZG<^B<|rUtOF3)c@3s z{Fm1gc@5_y^E)y~H{|y!417*S&KzWAP9)5QmNR`=6H?dL{g}A6;Dj(%QY;BdT>9;= zFt9HO^D!5xEWg{*9aw8bYdK}}b8#3{n?DGLoZ5W+>+4sAtu-8l$ZHoPuR#IR6;~PA z067F)WkfCGm1tNh<8gHnL3uz2t}eo;DtI|Pk@1RHA7ZQzV`^<2=V}}e(m2La)hi{h zV|3@p!E%-%%4RKLr1DrMp2rEl#Ulqy7>Ra;O|Aj#J69JnYK|MO5fc?F5<$LP|vd1%kWngj;~X#);n ztW6l`{A$1aFs0?uxplQ%t>tndww*42Z#@zYzz%>MIR3pgNN?!Jx|D4JV_k~c^#bcs zXRAiL@G^pej=m^NS<8nta<;pwZgzQ%{m_jI)E@8GEZM2MuXYQ`yCiZY%9|E(SiYF^ zg8nVB=`qWuN0ChrR1_ADm=&x76|B6h<-f+318?~~90Q*Pg@uV-S(rGnVmLC0g*Y;b zML6U%a>cFQaG^?>iqB4y#3adP3E5#16if_} zC?(rXf|99014$hujSJv=)~iHU7prOv&9VZx%}|jQz-mJ|&{jzOTMTCd$A~u=W`Qgq zUT-)T7;`&fUS_4NLW5T+7h?#j)_aw*gq4!DUX^kdDS7UphMSaIoXJniU?$XW}?Ap-seYhGwsXFrS*-#oP1!Pd|U{q5l4l zWU$XTbCJQ8aj@6sUxfoQ*fq*v<+b@Y*5HYZ*@I)TLm%5gY&-Cc+u5&yaTpt_16Gg7< zSbXSr&6hp!mmq>~?#|kTm@)U4xol?Cy)r2dh| zBYX0AE8Lv3`-{yu{$Cvrlk~mm-gq6i_pY*0Aq?4iZ3PUMwdQ!p+BkR}cD;o)cu(~P zZ#wHa#_uTaUc7h0DD^VH{>b4i-=AM+k1pIw;y*FIIrEYR_py;TcbDOF{ki7PvRFt4 zZ5mv|`N-D`PE4%MGB6)`fnV0zZrnSQzSTM08>us#Nl7>J*PZ_g#|{j!EB623d`OCq zw;*ycvX4eI6Qiu)Hoa*nr-Y|&Nv z{6v$C_FI^==lki(Z(jTplkM0DX4^j)0VgCzfcNCa8vxvCiI|s-+WsFH0DGL5&0Ifs z_UcJe{Be!AcYWC?JR=z5VxK(S5Mc6Tc@^=9W-mUrrrFCo&bSwSyGDjC79%sty_;O# z0|ltI2MXTlqj+~3=feq+vQZt9foW3<#qLh&P%No1czDh5&pmm-cv#%vy5jRpn@HaC zu%;7fkA6(5cb@V{jiZK7 zES$qQY7*YtkqmbFfUlhQcpc_>uenDX>&{h@-O-Mdc*nfkMrYya7N_WI4B#no}=A?4as1O z5BTaoJR|h^iY66h&(}{4=R;zBv;)Hq`L|kDU@~yn*+c+fx@a&nm{5{uhB9>0)UXV# zsi9J17YM-NtmV9X_tsinDbW+0h!T!>>j+Z3srLj&gfK(0@s>720D2_@-2rsnx+S-8 z-g)QnRr1rHY+U8zkxrqml@m{YIwQw>Pk(rOPfvfCyZ))iKN!t@8{~YqaQZK;|GaqZ zG2ds~`Y&6HK>&uw;>CO)wR~^!qM&nGjN!F-c@;rbPywSLJh%oOn7YDQOL<=;Q5g=< z^BCRkbCKhH*#JVK zm4{=4=U19-MR%x zXP$kjeBz!ywi7gde1&}i{^P5E`}r7ZD<8i7!)IT}OFQlUThmdF`)^IF>_6Bq^3Pn4 z{P$+0cak&G{#-W9!UnPlfhFy;44>3{`cjhSc80& zsPA=UqwoxFNR@nm+{4Lfc?W>WpNYuQ36quKiQk5+UAYh4M51ZH!ggk+zkOHj$ z*unBcfl?JQRsaS5gS|m^Jw$o)>i|9DWBwX}KFnVQyf@=L-*d(o?-6CA21$}vHi~ED zInXy5Fta6EnAH-18O;NHg%IQ2SYG%%Iu~FB!D4_M+eN}>gI+Nz!Ale)&3Vpld>WIT z`JB)zOngr06(;UN@(L4nA=SplaZ5>zj||7~k)ii&@D1ER_n!@-fL-~H*2@01lHFhW zFV?R@8!vlYUliE-qCo2l02h3_`vd_Oh&EohdVs(UAX}0^;D%V#>CgZ~O!>V9I)(Ma z28;w+f!KgqdLRZ&Vg+*eKb-G2X5eJjQa*;_n8BKa4;|f*S?|4DqV{fJ%+cR^pj>Z( zAg1mB)yaVCnM6xXGT?f~YvC*1`_~Yv0}DM2;;7*BOK%AMSMtYqO^3sOc|GGjue4k0 zc8ezYlG)25ak*u&Ws${j+F}VxER&Q#P$I!B%OtZPm?c4xEqaO|D3YMiGD#r>g%ZT* zHz4?&->r#{Z6`8`7b;~Ei`4R;{6)`y;t?nliyndMow5F6!pZfXhdS9H$?#;<37Bj6 zsMIna&SJiyz}89-Fy~OfwU_0p9Pb(iLN3g5q$}H2ReY=(hR|}YTW4`S7sbH&Pd`%C z9vohiLAO0p)kD?>k5u)LwZS7*J!GxJS^wons+<+ck5u`HHTjV$AF(DsQspC7J;kiz zyW1YlfA>i$o{1t?+rwEU?FJ7*Net5I%{>g|<5=(EYmOeQCO>@5mL&P%t38fw=HctV z`A8MTplwS_x;@@FX}W)|Vg7IF{s}U;3cO3!|I-zqS8@dySia}=Ud#FaGs|39t}Mfp zWOYg8|EnNqkpHiNAd%(ElfjM2U{x}x@Bv@_pUMAW%q4g@@e|7q1f0yt;|G}xDL3(x zbFeRS{c`%4ER^UK2vqj> zA}}<8@w$GvFLUy!Crh@YYNYj}%=N1pVX|a9A_cxI(eGH3CEF1h?aN%hqT@}LY)AEp zzRdMoJqEHy@mPJbFLV9sVkS$rBR|;F=r_(}$#zs1`ZCuqdYZ|S z?I@q%%Ur*bGay4i9ENKH@yWi-$tx$BEZL6oDZb40D=9KrvK_JMzRdMoJ=J8%b_8bm zGS{!Z*ks9ete)e`T))U{$jTeqkyGN!T))^nlO@}cH{X}Je$jJHmTX60kuP)oiWZnG z*^bqVeVOZ5d7jCV?I^m$m$`mb7X|{+M&l~F#Fx2#0rX+NWIN(ZeVOZ*bGgZq?Z~^* zm$`o2)I@#Bc2t%6GS{zqxyh34s9xdAT))aP$Qs3?9@xoTzj}PQjk07rif-^_u3zAK zlO@{``;{+q{VK6}i~5r72;Ab!T)+C8OqOg%5gxPhT*_R(0Jf3Q{|St?$~%3TldrBc zS+X7Fcl$EeFMgNFlI^I!*O$3|<@cB@*^asge3|Q)cfZM!?T9_%%Ur*bhag+o(2l@k zzRdNDJZiFJJ0g$!GS{!(J2%;m)lXVK%3QykCrp-XN91W=mgx5zlO@{`dES?~e)Z2Z zj1PHMz39u>kFuO38DM~%qAxe>M_KG8lR0~NEUEHkPTy+pT-T517OidAkFuOKCgW@V zNZ)#2=JZ9^`7-un|LWI#8T(PT`W2Ho|50CLvoCY{A{%`fx|qJLzRc;X-eNN6XX>kZ z+m|_g_pXqIn+wJAHM(1CIOgroQs`e3{c1NRpw8_|?DPupjM>dNS(a5080& zw0?Z;^u<5$W$edub3XKCj$fe8WNhb;^!>?~Ieqosxvn3Nt3PhokFxUZCQFV-;4@$5 z^aXbKGQKa*t^dN8Ieyijn=CmVfp2`7(^pmR%bdQP?|qrm7yT>72Rab*hxXR};LDu8 zSdxtW$S?9!!+w+%{b(}k;g9_HvoCY{%Dr=4Kb~8?yJ0`d>b!ILnm_Dc84QXuWlmol zuV{zs$75c|m$4sZ{@dU*`1H@9oQ+zSaBqGN&)#$()~gtm|m~_}b~qNs>8zC7m1g zqyOTaOy>Md9eG`SnbQ~T;>(=Ax^BMA@yprQWXbU;>fy_rzUuvanbQ|Iz?V6Fl~I!= z$0HASOzBg~oW494bNZ?ef(!vB=8yc?&zCuUC4GGv`_Vr!{1Iw*uG3fU zohv<_zSW0XzvOt-dFQ%*8oP%z?5B9-m@GLSRRevQ<5x7mmpOh_NBAl*yc*c`P5}%bdO{?_AeU=bqTGA7w=+m@GLSk^8tY2b$;eCc9!+yYp1VhmM?SqR-f(5oW7jdCQFV- z&Rk#S^i|IBWlmqwd|&4DRn9Y6ay+8v`7)=kdVw!<`T`gGGN&)H*ksA^h%WJEPG9{c zzRc;1l=?EKuW~75jpj$*HNMR0D=+h9PG8*$U*`1HdFLj_BYvIrOO8kUT3_b$1+MpH zPG3p6$&%x-`bJ;o_|<#ox_&y|+^`>IIlnSlay;rQe3{c1zr~k1e$l&qnd29^!(_?v zSp9%6bNce`^<_?9C2qH^56I}r?1XCH#r`we{21c z;}J=cIeoEb8up|AVo#gQ`I$QEp7mvpUm!`A(Dy>ae$=u0Ig=&FBleOnbNZq$`ZA}l zZjCQ<_LjVCvgCMFuJ>h5UtpatbNY%l`ZA|4@+xFW*R`~_WV0`G`l>hiGN-R@i!V#) z^JK~Kh`nL`lH(D7-IqCiv1(uD^hLLtEIA%UZ}~FEFZ!l0bNWht=gXYF^0!UaARaZo z%;~Fq$Co*Mb?^Byr?0-&WXbVZUFXZ3zW4{e%;{VGu`hG_s`y0%|Kd+rSCCv&L;^9K zi(|aXju9+}h|4Q=jK(7fLKqpb+>T2kslqEOd5nhxIdF719tp(l7_YZuq$o}D@@gHU z@jN&%9FLY)*>OouhVaTN93yy#7#xCQe6@~|c%&6^BvNF@^3^&<xTMaG zD@)oy4nBcQ9pgnhMgmoKj6~W}9w{%9cG+=B&R)VRt9UFA2a5LAFB#_gAI1-QBF;cB#G@i2$ z<RN65f?LiDZc8o`(!jVcl zmPhv|j>aqPSRU;uyt0zVmEl0W9pmu>h~d;;I>yWG7>V>2F0a%PmK{h8KiP3f&OsQs z-cKkcI22b{#{`0W0u#sy1b)sB{Ji^E+;PEX%|8x<>=;~a<)P2f-YGcLLDukR+X*Rw zkVK*2aVL(C4v!A%Ke&HRbU@Bw19J`^aCkJkcyUSb{Ikv}p1W|$oIcTh=bUrSV*DOB zeeS&Taa^#V7{5#A7tbi3Kfic-zXc1YOgp>Z)Om~MPMe`MN6bMy*4-^U=n!^5w_%O!)*m?8ML6Fk&Ml}?lHD_V*{6N~%zlAsydI7)Fw%}K~ zeqDuEkiLaO2C{5mT-t_TF>B8)E}mXIJ&?AEE(nA%z$VY|^l#=lq44wt3lpL(6s3pf zPgz(z`K-Cq@NTbv%hSSB7tIKyy>U5OBjGv4a|3BxsjmZHPsZpBq*W7l7CvXu90=Z| zpqm6xch+FMi=4bPAr3j%3xlVG-o@pjXT7YEX|@w8Z=)g5@N`_SGROZh;nKpWbW z_B)!F8BXu@DNU0t=PV4QA1LF^5aNS~Q#{3i^la)1B{_H;hTE|oi}XH^Lsw>p^nMeN z1;R6U{-LH1!*}l7;yDWf={Y173NI>IFy)*Q%$oGWCK-5)O2+&@%Cr`x7K&Qv>i;y__})Uk1EHLJE68^&f%x7=zPAyI@9p$x6=2r_bQ=$i z#`k`DRD5w6VSFDDU(Po0&A>Z&t}bt$@4x{Xp-*tly%47aD}G4ueS&e zB;TjV_aXxE{SEm(M<~9(rIHT;yB49_&II3=gIH1rI$e^W6^(NQ6ashQujV{DaDY6z ziB|*0@V8K69^FKSt>FV>xQPtM0FvPrGMqyohOd+1ZwbZl4KjQmuJN0<4Uu`2cWm}+nyQZVJo*u@TCU>x6+>{nV0=F!-(JvU zd_N-J5rE{ooqVSgi0_}t_ijS*{g_H#1?-Nu^|*dH3^MwUDYXlKHP1)>`#Z0mu0@|< zMe8<>&)>=Cb7(a_etvxrc9ekPw)fZZQJw;swr89@??vOIi= zH$(qGFdW=}8*oo2IDjKl{&kX+4f5}c(50VV$vz#c^gkZyf3IK;&djIIiico8Z{`2J zg0$cdIQPJ1Y}zYG6VedFgJ433AZ_SPBpdb#(uiDQ8PPF#IeL!ScwaqJ_GqqyuwXqp7K_{V1h--0b_=u{ zw_)P;9^W0@hKt*eMB+9=+>WJ-La1ncwZ{7iuZ2E`!eJG4tj(4VF-tx@0;=W zST8%326=PD(&^U;-lgLGEp!?0Qt>_l?c`l1-lr0Y_ch{ONi5zgg3PI}0e6jp_n+{> zc>gMBY5$=FyJ)<5uX?%u&LD5u%#l|g!p#u#>YZX&54FbbPO%$+cCx!$>`oyPyL-g0 zf>`YC6}xr7U3t-VD_$78N5wA6l>ar}RiojtpmNeqbb?p2ks$q?pWQS+xt#xOkhhqw z67M50aE$k};@uk9ct0!N2LqG$^Wr^dqj~JdaqG{6(369dJjk&yZ09H=%=N{=X^nhjI5T(CKcp zy38L6G2^ztl$R*Ml-1~dx|qhG+n5GZSfdVrI%674VT~#VCezdu)~G9p#59ybrZvQ3 znwG)~mEIk|bUl<~^aqB~4ArQ1DZEmdjmAKybd(SqrQvwXEWJwAC51OT^Ko9V;_nHj zUBvVns57Qr#PqkoWV)}IzC$FY-NbYkv6$|c!fMb4HxoPV59J&PpC_0en8J$C9gTrb zV-idwEi-j1|C|)wjvXPU&%rC^(;P898S0E_j+ov6Or`_G^hqKy9Vn*1BNo#^DXggh z+~({W$2fkN&XzxqN@0W#K|>!_hxvHtRp<~rIz`ptR5XD9T|R$IoR-FecO`IK3U4DH zFa8(8SH}N1@m~ae#{W3+e;Szlj~D;n6N&#Q@&BG!{71{vy>L6W>uS(Dn;{VYaq{v> zyiZI1uj8GS&&C`7o6rFM-}(H@TjuXoib*NF{XJd$qwt{dpCtZUpwIYE690C%-s=JW zMdEMVr-*xhv>5lPDXbC~0e6f-F$PGWJp&{DXQ!}IY(Qh6QxRIdtQ+4GOJ%$BQh0NI zhFI1mSe_@AUqGF)JWnihaGRPe7bmg2KrCZuF_ssK*NXoXVDc|d z;=fY-m!QS?U!TIN@dj|u5R%)WP;4H)HHB;ReQ^hVPn_h_`%?IT1Kg1#Mj_J1={|8f z2?~tUed06^n4BI+;`E?6U56Iq^pH5c2i)^UC_X&F=}B?w!>0hec6bSmOdi3fQo8Zl zfek&K(61y;;#HD~=%t?q^U+qnu9Ccz!bdfyQ+LG|35#BmMR(wQv*;yR^dT_kVwEfk z;!%W+=QXlw9I@u&+7wKXyW{wdIGzYhjy2*qmq_`dRvgz5i{rbhA?@(Eq~k&;$G^Z8P;DIl zq#807je$;2c^vI-R|_m{^ag@or0_wP)sUf>494^eF`Wx_=FKm}bQLg}){E&gL}L1t zn7&Iare7;F{{^_?n^4YSa41w8(;t+b15q;l(PJ9SYm^(3BJO42v{XKbvkd%Wf@fMP ztMWi7GoERwtjddk$ulGMXS~ZViNrIU%BuV{v3RyhWd->Nxa$UF;J+j|?v=_4(sq9@ z1NXx_D>v+&stPh54Pbv7#FpD4jVp-HAFnhIyQT60;s~4p|bzgFH>&3W#^!g$}`kjsJCM z0ROvu{*5b05`V9P3{2&NPpcqPG5d}GK=FSR`i%cT@#mvC=8?n2-?$$k?vVo=_ajqT zK_&ustcGIz3yfuw5&yhYR*;9#80gdnld**g(txGBJUW$+WsPM|%za}yS}eCfov|D( zmhE~O%M+4Vo+y_6(PAUyB(b~*xMLm^^GafGrWCO(6w3{0R0TN>9a7LCczUWT$Y*E( z|4V%SEqmEjkZGxWoIIUcDmEnePZR&_-j4q?@t+M$FBd2ApCSHNqs92oOl1Z6J#fd> zP>j(Zcs9YmB$ZX9*MVfY(`UJ)QBCo^43_fpMXB_}g<^R-(xQ3!BC$LP>dea*iRCZ~W{lj8^GBDZyTI|my68lHRem${r<7273VrhRc*nbPtw?>z_j5N*|7H^&W2ZI!{NlT;Wg#=BH*sPGrkdO?aI4a`CYkjD&934jlpW; zUWVS_e!a&%nAak6n-_uLyQ$pTalDxSD(bxdu9!arZN~gvG2cmUVE&$%XZCf>-xu@# z#A5z|GW+SkUGqS0InXS9i->w$7_t;Se|4 z%%GNvK|P&y;Skpi(f-c5aEL6X0y9^&4sqRJmbD3S&2Twd%(Bc7>(*A_jwNW|HAQcz zHS6{Xv2Jxc)Z@<%niu>R4|K9RQxZ4 zK8sFN{MP`Jf6pZT2Z;ZNXfgi1#J_(I_}4)(u2Qfc!tw7X{uiO~5Jra`#J^u?2W*rL z52MlQ-4|$u(*nW%A=SGN*b?Z}3m1c)b>)pJiEo{&cex>Md%BKVDykCJ<;uD)hdJwV zW!+$4TK9`2>xRg>)6rtq4Gpp0-3Q!r925_NVvEek5Nq8xXi&x~LZd7jX_1KzAonKM zcZdKhgsXe85I1M7LdRgmQ@va)Vq!Z28Y~tuv7HV~wx=Yq9V@oW&|+-IiS3)fJ-6=_ z2>b$yjqOCS?LN?pLp>VBc4DXmZ>urlC`?Vt#LD?=0Dy0^gdwvt;iGU}m=2vUfU>GQ-)j`DtQh zhB+Zt#SpF=J1&HBSQaRTYO{Nhp2;7NMn#DoWcMPA(kxzW20HNu5=U4tw?+1>it!M) z&RI<#aG+x!7yE0V$=Jum{taNVzg+CUAQJnfVn6H%$9`FeRqyUhe^(V(g}Cj{YD;~>hE=km-I30QRk9%lOdD>I z4JAaf;a1sjJ+UHC5#m+Pi@;qg5sE)0_}{BLqdU-`+LDiVeg++a_Zt7!a5wm$@9_`j zwaDI8#>YZ&bRL1Tf)%T=PO{wfnAqn+n?>L;vA+>n5VTZqK|39)~HSnQt+@tWro z;I7pmcPE!$T9dpG;x*4+gFW`wI}iuhlP z6`ApWRs2UlpYeZH{I3Ki{|(}QACdTP6#osx;=f7W{|2}#A5~rkwZ{K#dA~c7fGXoh zB#I8fw?os>M{_=p8A4<0OSHncKyaH`Hcv?pOuI?LlZiE;Kc|Qqox2UqhoRBRhzHN?Ho~C^{dZ(JJFcv?@BO zX{wCrN1+9~4j^u!GWuiBRmQeyk&c1Dr8qBG@ovJpwrO0q^o2gNu5B9EEn|Qgovbu} z-4aRTx@8Vp%)0hztc=eB_Z$Sp2SBk|)-{clG5u&SGI?l}WnI%`)xl`MPlG$34cKax z(mSmj=Us)4!HPGq#uI!Yz0$&}AtcpT^zaXX4~w#Q|7E8{P4u zdn|Ms-SMJ(6)@?ZCb|z0iEg3j?j#o7)6-ZA2j_$C{ZQTp$~!={(Vd#cQg|sE1D$qw zbep>!={wbXq;*aj_oo+&>E;B}bHwy!s57SLi0L1I$#kBW{y-$AC1SeYaL4rAG#0$s zz#Su7DZETfiObp`5Am zV5l~x56PpQj`b4CE_6uYyFY9RB^M2_VPF@R44am!gbkKx0>R&;@zV*@sioqlgblxu z4WpsYy!{*5umYGiJS`i3O(YwhkqujkWy7=bcDLhTLlKm7x_yzbVXeG91&u0K#poa# z)|m|#qX9Nl`ZnNFr=|Jlm8;j&_{j>6vtY%GxKy$@ye=EAgFdt2b=mMHFm2c>8@?iv z4b`&YpaN&Zn`yilJq5UHPHG_VDAZaE-c`A}1Py(-C1Ne!xd0u4f3Sk|02;vms|0^; zgKL4mD@fbZxKq`ZqSFp@{I`q$YtU!>w~PN*z~uk2__xPN#{U!XA4;qk>`>$f}q-!yA6B-be{rB~YPz&r? zc@9qJ=Y^)>j9|sn16@207W*yGWbrsy?Ax7S?E8v+eZo9gl-@ z&fEu}+SnhN&dL)y(PPgJVt=Hu-xm#FU*@rIz9u>Ed$~S8ou73&TQ*!U$k~uD8;*fK zvmswLECFT&M#zRciDbh_*|3gSHXNJIniM$+HdH}5R)&E&P;EAxl+Kzo9*v3sJIIEU z%!bR*02?y8wOp+{3y?pxG5CyheoCuY794fBv)~L_@D#L}1!u^DzX8*N39_JL%vmr| z7UUAkf=TJDR#yOb%z^SODDMx|X2HyKR;x{Dlm+Y{3uc-HAEE&koa!+nfLDRw z{B(Z8Y@uxEafGvBzHCT4+1W5(HXH{`8y3ojnM8`hBH2(%EE~>K6y5>uSPA7=c?2R* zZ8lt{DC~O*mYU3=>>wL1OaCkE)La;eMyn8yqE!_lo~}jcg=`6Q`V?ZzUCmWFKT5Lj z>U4f~ZYItPRs@f97G5n2S3sXd>1tWH6_^%YBMZMIl7%Z|Vf(Sp!fO?!Nx&VWP~INO zzfM?qlcIDt8f76n$ikb_e~&)0@HsS^h1qD8g{#cM57-juG!0_U!t$my#96339SGi) z&QApn$9chuH3){y(F#yxl{ zxi`8f(>f#hc4c)sKXYk$YuaGPwpwhX&|u!K7TY{vvVBWzi-^SbZL$3ovDj`C+cm)5 z>l19>7u%f>9?Y2%!@GuY48EV<18=Kw)bBL#Ri&JcR*kX`tWxr{o=)gjN+OPhp@Dn%xfW=F8LQy#^eE0ePs~>S!bM`YnEe$hjM;86+vjv+ z7R>k={SPM+vy==nyMS1cNX=jsd=x4>wF^d>MCA06N}fr8LVs{1NVFp$}w_1UcE9{ z)ebpx54>ExIy561#cD>p)+BfxDqclUV7v|$uQ)Jy9VT9tMB+6-yw(zn*T4+ctE>s& zbrh6$g>v)P&RIPt0kCa>egtBOdx zMv2!)#Nstt{yKCb{RQQ4na69K{Iw7bx(0b0jmp2{GgM(7L<4?W8gW=<7*7%7K15^kXuG0uYqV|>0C7Xj197l<*x4b>Q5D8>&H zi}6JntP$@3caI`58QWzUtPjB=l4{9|-nHAc8T|CQ&6Al&J5JY%(|9N_PS=XlB4BbV z7pGqm$%`w+X*01nT`x|51MZ%i;B>1v?LP$`WG0<~ca;Y#GL%IZp#eV)*4us#bk{)l zX7Dre!_hHVG5Q$C_Fl2w1`WpcUa{>s)!5!Iwnq?&?E_*vhgfVM%wUze3Ak$v#D+qx zdGU!1=DxLP=)-M)PxQpYN*sevX6QPI4c#eFX75X*To-o@gdY6q^dV05uJcwljfhu? z`B>_O3~n&G66XXf_Rn+ny&(I7)0}-T$iDr78I6}@-!LNC_p`!dW$=pVE#RK5 z4}cKL&AyEpyc+5>-K$>Qzyur!ZZ!KwqM@e~`qj%xJR2vWmwpT;ZKQQIb~?gFM&@5rjPM6&AlvMRk8SXR}jMvMjSc?*yWz8?pAj_g?OyfI$Zp6nUi>ym7$k@ zTCmI>(FcOv!u<>(r$xO=#>teY%*3_8rRZnA7EFfHpY%f2L%Wj$nB`?H*7(J)sA zlYo2ngYtu*++x-z%$332XgGv9BnORfU?A8hyc};W>)zy9uEDp?Nj&R5LofWO`izDa zxE;43!m5|;W~;3QyWO3}LE%cAcNx#CxOIfHdywot4jRnvL9%-$Fzr4UKEdzd0R1S@pey$+3OeCJ`|%kb8+y9kXvU4w78lX!Mtz(u}i zcMY`2?tHWRHfw9iZm;T&3G@3=Y@Kk*iUt8a?o%s{a)w#(S#j^JaBH4S1?A<{udoK;M>hE2G zs$U28{h`)2&@B(M>MMfzc-LLDcezFIX!Pz*fp4qp;@LV0J^0hJsQNt9Hq%+kpG2fc_k2-xrC?c@thstG4_f|A!J+X}GA^dw_ zGbSoyPFdiL*n{ zWW{ffcOl7@75GjL&x%}GaRar=ilfE)Nn%-XjBrn^^UaDpSy4f(kPMR*ZxYLje6ju! z*sK^Xd=##!``t<^BgFc7Vp%m(xSp8Hp5U>j!M0kG_zEqo8LqIb4%4YBN=lW1=m%|Wp8@>cuXn0zF$sv}Xo)Nwi*!=XY{Inm|8#WrA zlbe^4mJ$rNr{<`o#H7N7E7TQe7+lnVg%0aCyZkCps_H$xF{ei+QO|Uit&I%1a;1 zD?bp+OP>hOx!ieahrG0dSaar6d1=3;&P$)kD+R#jrO$=Sh@TID%1*KVnfOWKzX<0q z1D0355WbT5Znl3Zyn$F=tru>MwS;;7E8#ri@$CP#@FHSl>Ok-t;m3&OwQq$#C6-tJ zD!l)d!27fR--J&mR#d(drvBzeBmLZ^HUC7>9YLI2@!Uzy&s|!xl9WS_`MFDLR+81! zD?j&W%}P>DEI&tuhb?!0-oG`A*NepRbI;Z+i$4=5j}@NvZQTVLS?#PVxD z;a?NW@BM{8A%@+7;Gx1jV7tXFN0|DXj^P^J>kCm-(_!{TsGvwuE#Paf)^76C9^6~_Ebvv+md7|(^D}Xms-z2fV zg?JtDWZ@5p<+UQ=p4S4)t5bw$5I@ZRQ-vQQR#c`5?<7{#rVIDK4p>nw7M@N#kLS-2 zzL|I`@l4^ji8UK$3AZf=me~{yW;dK zV#VnW#bph!#i>&Guf+1(o#MR!ug$M_2|q|IzuztV7h=Wb9^u1o1b&i!xmS1*vEq84 z@Uz5<`~AXS5^G#MAbj92fjjX02ZdwA^6Nvw%ZcUphlSS=D=v=+|3Iv`{aX0&UjdJ& zzDI@U5i9PG3ExMoaj{yM@84)P;p>06l&@(WJKQbh-x%wnRHG<;04+9~Y80iPsa3P- z14X6#O~8uMAB9%{Ta@Y)rEiEen?7vK$0FIQT$Da)&G#A$Y*G4?@TJ7?Jif50bx(|& z)x`4JpA#65b@(8q@mk)qW>;(eQMVeZsHhm{tl1@N{tRtq%`RD!b~CignxDnKH?geQ zEu0H%)&$xx13yVDYl3ZP%?@IXxs*1vX75{YKKkLpMEEdbSrckQYbuFlOMcBvSR?sB;d_W>{FecN6F4w=rKEwlAYgEuk0KyySm&CtZ0o8z6#jv94R}$BbJ@V%Fe!bI6IG% zU8ez?odv>+h-KID;=P?%c8?N1pb}VijrQAR_n1U`(`a&yI<*b|2%xRy%TIGwPL-9X zL91CgRaTzQcafE|WYtZ?vhpn9@SV=e*|KsOv8+5>R<0-3n4BZ4z63Ta&k^o=7x2RY zM02iKuOL?5n@P2 zUjxhQ?+6zXD=NPirvBzeBmMk+8~&M2TgzX0rt|an^7D1jV}AZ#etwL4<>%e<>sI12 z@(g4$C+9ut{2a_=C3%5Zeoo0`CHaY1eooC~CCPpa=c6BPX$emtmS55`SxL4M%Wvtz zomT^EG-e3TBZe;n!LabF#EMHR;e8(mexB{Eg=Z7XFKvYHAeP@Ug*Ow+uWg0Xo&c8L z+X){-thi(epHHl~MTDup>1gH}aX==&!rRvJeJ46E56EPtdkk94%L6i5>9$g!b6@0)|%~D;S%DhY(Gx; zA!2#8KzKW`yneiJ_h*0=l~KZl#ERNz;c{X{b&T)^;tte*f-v8|x!J%tEy|1xb8Go+ zlU$q@DNehg$Ktd|aq96b^eRplDK5tlD^3>+uLia_U7|Skea^+{QpM>UV$Fuj6qi-N z7N@xI7Gn8riFl7fOw6yB3qM9Izb_R|e*su=StdM@SaG{T_$gwX69`@@+~!4K#eKQ( zIAV>9tAtk(%WtK^Yl-F8tA)QOmfy>S2fhTXxLhNA4zc34Lim1S#r0a@4~Z4`>x4VM z46JccF3k6DG@I<1uGaIKR2U22B>JXB4RtYF4CPQe?`B6{(kn zcLQ6bsuZc2RW4F%GWpQ3f>@DSo5{~Ly#{QNS||K9u_CoTlV6iuv<6t7dnJLJjJPCQ zYBK8+w#+Vaw$#X$UqYAJQX^Y_L*26F19ATyv26LH@D5QL`-h zSp*8SQtr=L#U zvh{$rtdtiJ%hq1PJAf@}y=CiZuQ^)}l&#kg%hrQr+ta{iYqs$3h-F(JaUZb(ShgQ5 zdZN6XUFiDl^+S+)$=EImQ^G2(~m^b^Ir$7bNWiBA%qLM+Q;!Z#7i zGbamgAy$?;ML4(xSXpeW@L*zjW}I*du{<|Eaehmqg1$PpE&r^zT?PGWy7Se!^3^TS zWxhIBzIu+j<*W1Mn|F!JXv<>Z(XTsST_9h*MXVWcp?sC`hV#`$^34EX^VP+|F=E+% ziMX#LmTxW<{+?LAyG(egWd*~ zXII<##Pa;(!jBNE_B|o|4l%|FcB%-N8cZu$C;^6g>7@^zi?UBKq+59RCb z?>Jw7BwvpumaqRL-(CuAzTPfeK`h_=S=_UJ4=mq(EIg7}zWqeFlvuvsA^bY=leGO) z;nW&n#qKjZpIE;6T=+s_`EIB1EyVKeUxc?2%lBUhx2pwKY`zp8Nvzn_8%F=;M>SWF zd$n6VhWiTW>5gYPPw&-^RpAn7GEeW-j#c3{YL=%vw_{a!kyxJYBHaI7=jpEPSOIS& z*8JbM9V_5QVtKk-J66DNfz8wV3HSH|@Me0ddplOZ>xkD8_Yi)Y_<7=}aHscx<=Op( z&m@-TdkWt{tjHW7{2}qJJinLl0q+AVvb}|iiRZEXK;c`6rxG6|yp33%%@%I=0kAyZ zN4S7^2>Tx_d^xcqcZl$F#ENWR;jf7m`F_HD|CVM2V>P~A^@-T*rdX|=?P4`vu{!vV zE>`0et5Luft1}gw*~E&~1mQmb+pL(VSPiRlv6`e6DxMb!h=2nR%~YoFD6#(X9_<@tg$gm_$y-h?kwR0 z{{*~$0KT6sd@Qkif3|R(Sh1NS{2Z}jcaHG4#ER`);r`o!r&8ZM;d6;KHcEu~{*7jp z?Q_&>e^tA>m|N{%bGD1rDn;r+XtG(gN|D+~%@^~XZdYVJC03;F5H9?)i&Ui|RYj~> zb!R(ne*7!3B6U|gzE|{PoDX&QesJN@#ER5C?f550o+Xy&?oD9az26O0P43?76LEI^ z(r)$1&Z0?koJG&bqA#G)EP6&3wfh9`Ad6m-1^tO-(aXZafNktm$)e|pWzia0R8K66 z*2;p^9XMYWtrOm#SQf391?9xD=#>O+J~mtj*R+eD;?}_h=QvAhWXYS*WR}#(lCP*) zmV6-Q?LP&UC4Ur-1DhpvvgGf?vgAWqa_DEyl8?mv3}Cb5Pr_FaYu0QR^KXb{*`I}v z{Tx`M`eWgXh-K*~iT0MFMq7Vs7a!|v9W>Y3`jc#34P9pIPqLMNvfXS=&0==1CobbS z3JFi%>1<8Q`WfOkh-GVf7RO=gU!1KOSsaJ`fz8&i@EBs*)+&qR@Ofg{-decp7r?Tu zjqpjtvOP1=-h5QKj_sKhALrJwlQ2(hb=EVBb*vnk%+j7&tYfRGSy9cFW!1#8w2$yH zUph+O1uV;Rgl7=T zGlvO3N~~NpK=@C@{dxXC;eEdbmS+YDpF%9p9iBM9rBOj&ot#yTOlNEUt4o}(PL{7O zhA#8f$?{bNb<0<$$u}<$%U6ZM{l0O&I$gecideonL%#ZySiU+_zUlBS&X=zy2oE5Z z?GwfQUSj!Xl5jP#d^cIR_g{hK+alqG#2x6HDZ&pD%QsVnHxkQt(}aV61D0>6C(dtv zRB;^|&x)Sr*8Ja|>pT^grv^ilc`7bXoled2)Rpqg1;p~ya^cT_EmvG6PtEwwd8$;N zx|LX-x>}xj71%sgCj1rg^R)CDF`u#v_(|dw!p{)PGuH}deGe?pT_-%9Se`8x{xz{Y zzf$-|;_=jXz3_p52Sy&ielX!8VtMXH;aiC1*3UG!qnf=sHCr- z&8jYRYyP4I&ezY%*TbO8eEqC^J%zgE>zC!*CB*V|mGIZV=Ib@`_1qtwuh+`gcN5Fk z>*U)vfX&zIg?AFmH?N5Mhw*U4JpHvioegZB-X+f#5X;lw3qK2Np8mT$-6IIB`Tv7FJ&stO z{!yO24A?yVlkh{tn`zn4V%{|ccpdR>;d6=Qxj=+fV*{~9eNebZDzH4CB77dPB9kh- znOKnv2}eV~ifo$jJYv*~KrmhS9^$FQ8NweB%d=tO&iMP5=J{5_rw}VLt%a{4R^-|U zuP0VyGlhR7)~skN%=d3;RxnnFN6II-HUDqVbFn%+!n!sn-Nowg2wqG!5;>;Smgju&1@EZ>e2ewSx>S)FN32L)CcF;VA{AGp4r%KmwIsqT=^|o9>hcJ$ zq!$2Nq?QWbPOL~Ri||T1vmLNJcSQp0tJyLqd!M3N7P$?a_1T|;(b>MZZC|v8XwdS= z^RD%1w(2Vn`=T|1VHmt7qVs04rO8-M^3bXXKXkf79@@3od1#e9v>Yc}-dQCN-4ARY zx?LW5jaVMKL-<`_^H8NcG%m||=uUa4lvp0ROCG5JHV@q`{2Z}7bdNkTC;}`G-J8Jr zYQYacIh$7A6L}e&%~Eu>FCJ`HgvZEieJJw2YrTlA@=#~A7P9pb^U&jLX?_H8wf;<` z1Si0BrtQC%l+gb9=q~@iDRd^@?z4Z{Yo5P4HFWp2YIsYl(LIYDSn;LLa;m*?ocM zzdUrd5%wusTT{#W$bPU`-W|(Uog12hugT-N8zVzp>&(Qt{|{eh9&c0i{_%4Rp;FF0 z*FEk%T=yPh$&e;eA{h#q%TS1f6r#Q~m@~^zgxrh`3YiiT8B2+%M9EAU%9zmP_xXI* ze)c)OU-#EPz25t?*R$92d7ib_zUL0EhpO)UvOo({$N6J3pibx5uM6}tbp=&b=2oc7 zsBSHg$zM*&wr^RN-37+tc2}2@FIio7t1dqxq^rwr)#XpHtII*vAuSoKx*QS@2fMl) zR$VTTRhOStm$C(|F2AS_)xfSUN5rkks>4zFypyat9TQ)h0#+T4i>r|{>F}?wm>9qOwUxJhCg3Z5?Tt*LML>YY#vQ9V=Ow5eNt zwI9Ey$`$KJk}eSCy+nJQ-`D*sdzqgt*_nNY-w0ZHW8rJ78Cp z{NiooIdu8D5ck{asbHOi*NdMbPoZ8wJdvy_hQ#a1Rj4P4can9Ig~b=hnbecTh0?&P zazTH*s#>x=4hQ;oUFhjPp1XJAW>?i4q4uX53JrzoI$!4iUcmK734_;%-nMZM`s4VU z;FCD6Kxmz*?R>Q@)CE){q5Y=*$5*>T-Ac7k=#r^3eDy`Br>LfeilBz-hOc~e7}NrJ zpr(bYn0moi--612d@fit)WXza{O8D((MG7((6NkAFH`GNl~3ED*5TO9&;(PvP}Oh4 zo`tGiDHhU<`cld6WMePh9BTMDwj10P%(`oU_2SLy#c>$ydhurU;zF?N#XHn{+sNw0 zO5%G9TQ62tFRmhMhqzO{c$TbQtfJmaFM{!yULbgv_%5<~>u&YN$7JQ zxIj8sy<1IuH(9+^UEGMA$@}jWKSNe;))0>)t9S47$IIhYu%sIJF~ghrZLqNvTNJk&yYq1Fw(XKF)Vy$fn3s`WyjoB9$}bz4)Y>X-*ZhfRIgSGzz} zFE$9}9N=ZN&5zt0YI8K)Lce1iy-I8#=|QU=Iprt$Nuy zv8_6>EQY#HY^zSJ4|bjSggWnOvO2M&cn{d^ik;MnEiac7fWP>X6W2Q-7qY`i_RG^*J;&%hU^0wE|~A)!H8BR$xj=DA}C`T!WKC z{3j^f_v!8(W@~V=*5C~o?AG99t-<@jZVgV;n(Iu~8k{cv5$x9B46VV3O4%BmsWmu~ ztTi}GYwjbkTZ3+t^h;#Fj==>=lOS3mcHrDIvaw?nmu zc%5?;qO0IwsH)&Qp$?|zz0uUMroI~*WNKkwonq?j&It9bN&hHY|eQ}=r2>B^3`KdH&Xp5lseSQXp*mj?dT^s%h#xU)^kD_lMe>y2e*`ntC8Kz|`$jwMGv@U2rub9}G=1^{B7@0(C3Z z!=dF+-B(N+cNWSKDu+Tlpy(v~#~)Xq3nq(XgC|4hOby*^&&-6HLG@H9JklF`x389i zT8--I(9NcH^3|$P+fqFfYGCSkU#$zZKh?9Lr%he$tIeTKr}}$nq^ZY!wFA`ERL_Op zGc{7t=G+77KB|9&J~y?7uTFrc63TO#P0kdg|(@yq>xgdeqc2{@4iAw%1~8An8R@3*2HEm517!YA|WC zspY6@$Egn$<;CX=Nt$nUD%qX-+;a*hEx?dT+H?4OwC+351(W!BL{kiQdrrY5ejf2G z*zGydBz_(-o($jcr=-NWZ?!$ANYcN!+=Z;K0n?NCdBk+G_MDw1HLDk)&gQI2CWXg%vkFu)wI9@tR7)q7g_^MEjDoU{N~xr}HZIv8 zw-)LJs<$O|Hnp^`eg(BqeyF!64K=l?ul@kF64g7B-Zr(LuO5ZkoNA?{b*9eo)jy#2 zrdl~^zo|QXHD^~W3aWP|T{1OCWy`ey)MZqwBo!I!IZ@76i$L8;^{%8UrnaQ2wSOB_ zt|Ey)XUWQzS;t6f$N}FOPXNnW?y|4YH6y~lNOtL+<)#HP}Mc} zCT%k{-<_7xyHKlfY>lLorrzSK8=y9)dS6n0>=D{o8d24rvm2@+*K~VMcPjt&mgD~R zn!e-IJc)m*>PI$kR-IRE$7!w|XAFkA9jCc=ocUn4z+ySrXJXNGgV$ZMV2?y#Jj-Go9XhVSvB)! zhP)X;R`<-57fZm-n_1$0WSviM$%_Z8gXPuR;-|=&?2C8ey1aYW*X14mN}0TSJE=2r zO8A6(G8A>zTS-Hq$h#2;>vrT1p)R9$?Qt(V`l*e5KWUw*8~w3cp>E~a`APdt zJwsJJdkE?gstc0bY_jWD)?{T;wH{WJVXs?FR;nhUd#xrbRg;^+t|seLgGOZ4WW9Jb z*wti%YEr(2)#NkPv5g|4g{7Ci9@ECSN8+kZnSz?}NgBB_X&iiGNc=)#`-@x@sMxNmRc{YGUd< zUp)u40@d%5o-y?xRn;R$PrOf3-F{g;{(FV+Q~d);{5hm7jKsetI@zjmK-KsI0o@8Y zplYPlgd6yNRv>sp?%z&UHI9nk1-oh-Q#Fd!vT7VxHJX!EjbG*dAh4^(Z{iQga~S`G z+)b|yo<%+>u1Z#QPKjHSRlU>V{$#yjor#Yx$MI+5<5j)i(fa`p(d=qpKaX9q&$`mR5AFw_ei8w{T}bputM^s}J4uP(ys?VVJz+Zou4p)mi-_jKG9 z%z71db|+aV%&#tvW3cPRP?%p`TysBatzL|T`PD@kvU;(QI1B80F*VGuE($$hy_go} zSzn*5UW|r$*7pXxUMwtro%|XzFB0ZipIjHL-b)wXN>*0k5>h{!V+~`k?_NBT-I$pp{PqU!p~f;^f4tpJo0j7h$%(GZ~Kb+ zZ#@+LlO(|#!t0>8vja)E?)(O71*$iO_nW%JSNB3~NVQD(lBxTA^;f9fsooSW0tXfO z+Ionr{Br%r>ymQeDyH7yt5K-xzw+T0ranehb1n^aEF)J4_cC=PRrOyj8+)_szo}HN z{HDoIw5x@ub1JBHFe`bQbze1g-%1R1-B(TBw;Sxbua>&)AF{fywzzA3>%KbbzGGy) zN8PXPEBc^y-vjEl2f(iT>WZHuuVA;-Q#TwYFDBO)=V<^|w>>B>MOHU95Z_ORBlv!s zxC>d`+(Cl-vEu7%(I#TWuR^`4Sn<`Z&BThIN&O-562?=vKP+Z^RhNHWQ$1QQ zocg9$`+X3dTEW!%;X6$I-B+ua`e3-3sd*dP*jlDG2=_F#u&*{UwPARisTF+n5vW>I zjl%Oyy^pH8syo!#?5Y;w&89Z@)xJ$H8n)sn5;E7RNRBCH91T?o~$)HT>KGP zYkGwESF+a3NU`E)a!rjAE56p;D`Lghnj9@we686r;y^RR)0!SDW_;DC6n-R4-99)x zdHQ81$Zb%xI){XpLeb7#24UQ|YNieiZ#VTGU#)BEu<%(^oA~NOrVbB>W_Xc1`s!n* zjtG}G^+l>$f1{voWXDYi*Ee;Huf75G2-VlaT})l!tM5Y1n*?=Yc(|!Q`|5{KOH-W` ze%I8bhl1X7*Fdd9b#i!vsa1V-3)D_j-v}QxwKG+D{4-Q_dR91yzLk^X{jq1D4&&H2 z!$nP9<*Qe}fR`SsQ^R+g`jfB5pf002E!@h~KmF&{gsSy7J^Z|>g&xMNwEmi#I>W8M zd#POc1mvf?i^8ihz z*PE;paD`UiJhE2bCt7Vg!EW`f6z6OK-h|l(SE-wOlGl+x6;B{*HLVseA#1g*5$_;t zHLew3Bx|*<6Q{NWYc;PIS0QV)ZxBC9?#AbRCf4)Ykv|vf`C4ro#d^M0;}>E*U#s;? zv7WEhyh*I*XENSbVm)8G!Dca^ug+@mqPIp@g-qPizM&eYXZ z)l(ls)vmEOJm1tk{@Bl&&OcDK4<2wkPFX71 zo%q~y&V}3dvF|AT2kX^+&38_FPBjd6d(JuSIc>pi&-qJxOn>r7uA#rhr@`*T|3`by z!>w)4`B!_+D6;mPOWI?Wg591INaojo+sUsnUND(o^VMksop!{MzUwhPbVm)7b*!5yPUwd2uF`uvgIDwLA{RWda&Ax2?{tYD;pO_>0C={*V zS{UZW<>~9GIg|6e=cz4ywVF9IZpdc52$U~%LS8{n!3tYUxM17YD)5UQ;+%TaH!L%Mv~8(TJSN8 zJQ?b0s)dq6?|V*E_tkfx?xUKTT;9~DeRVNZ{`;@NwB-7xPV&{&P&24Tle?I@-d8t6 ztwyzQ@^Dj6QB_?JL%o{SOHY2+)Mz`K^J%DUIksr>22*SLYCimUYj3I<$p=ks@2kb3 zj-{HJ9K?!HUksqC=RN@S8a_9cT-4NQ{@911&gR%+$#@sRE&esvFj2>48FOii|2cNH8 z8-8D)cXEY+_*_nz{OxDbTbWEjB$r8VWwL^il}TUCd>2`n^bynk}SITSv*k!s|JeNF&RokMO z7w!hudH%Jy30awM6^|gxnQh`VWSzI)h<_#PJpNW(ygOLVd?$W{Ea$fSO%ACw7eRRSgtEh%c~C=TU~Kp-h4-vR~N)Jo-wa3%BwkKb;Y0ZY7<#r{UvXL zJuqG?;BRqJvU2}NbAOdAZ~hgpBFno=;&Wtq8z{)#?53Vz1A(99b@GSibqjgj3$dKnE#&n?#+KJ@@V0qI)b00~TcTb3ylI3kj@d>iL?<6kqB3QNQ zEPjNn+C3?LjVy1vh*y#2-BaQ}$ny4Sak-bk^1iG139@R_O+1yX+I1H*{*}9$Ukklj za5}syjh@BtwJb5GUzO9}Ba(CaRXP0!Bg^SYayF$8SWZtC4+p!henU>5Cd=t5ayr!4 zoX(Q7wZYEmH^n{3o7iPjHS+`Hb>wN{)P7(&H(lJ2EN5qkhmz&|Oz|qRDl`Q?O<1{U8>DPWYy{?@dmJ~ z)o#_Q>>#Vv9@VNoS*v2NYBLDzYPC;1gDmg%YwpP}gXQf3aW%5MKPc`+R&5T6KOn1i zhsB4!h^x8{V(DsWc9`o@d&cKJ1Sm6mbb^mzmetradC+uVAbYV@uOtb?lI2G7BSwogtr3$6+tf+%XZdDaZ z;aSm%k+rJQQ+QSkBdbzH#pl7UQW+^cE1tlMjayZjDLgC2l2xf#3eSqqz^+oo#Mcf7 zt5U^NcuKxNmUAV1F4G%dU_UlC5P*)adQ$3R&Y5HQMfZ(V_=A2s3qmQC(glkCJ;+H2 z6S#ru2&kv1-jpI`EtMz-FBh8)aa_3&M+__h7^aeY3YKUJa%bok=M!r#Cxl_|;xzl8v=gxg8 zT`=bacltxgn}TE>NEr@A9uz?s_wQ(qf=VNU^_)9(s9d>o_?F&0CGct>&`RFiiS^(< zn`$m^`eLZ_rn$VC%DKv$*79N%S>Ch}-~5Vs(^lThA!|Q=Oy2Ax%bRxcB4sqjV{-V8 zp13+$Yx;3{v5+jUI*7NCGkO0Lab4bZ^mTdH9VzAHeUGQi`Pg&lFa`&t_Jpdw>yWYm zs&iJ#L?~BrT<4U7HtwQ7Zn~*YrUc=Xd@nx6qAr4p)rP+_m{Qc#22}O0o9;KYyQ|7z zD%tfc>(VEsEi$i!yMkF;KC!y=QC(JGu&YZS)nymh)n$i(?3{@Q(fL&dNiMx_jhvD*hKUsAeAr8I@Rvkvh^-Ov(%Gc%ZIs}pP!&B}- zP6^I`3q=(hk<#LFCEs|jCgW0iL6PeP@jzG0BvW5anP6%)s@g}QP&2qv#-}VcwF_14 zBbA|6qB_CVWF(aMH?k`7 zp1AF6R+0Brk&R?kWR5CwhOCt`R~0Bd9^)}N{9RyI5%L`J2Xc51S*PE8@xNqMXn{C= z0$3GXD6UGb!tsmZ<8^v1j*riz{$YH4GI@zVUKLH6;MMJel!B|g>a<31SDmP-^HXjy zwTG`3H+4ZuBU6X?YFVi2m4zwYOnt*w>p|5@U7GTWsUP@iGgFtP%rW%`Uu|vb@{})3 z&Gov?xudBcr~G1Sd8+ED0Z<#VXFg5IjUG@pw)EBMP&-jwol?xymwfe8sQsy~NvUq? zRI2L6Jy0i6UF*7WHI?jk2=?Q)l!mWk2<{4I{j|pVahv+_00z5$+@^laF%k8CiS^r| z{)>^-k2}TV!0uH0LH&4&IPghXA{N{7L*YS^c$J{jra%{@WwwKd9sS zbFVmqtp436u0~dW?T?SocCF5BcNOj~~GjbPV`ZRnKEx}QiHZ0fadAhNo%5!8)*?#Yx{rk3&5r=aemdMag& zsSi+9{|$wDf$C}3f1RmZc{k)&%z?-$49E+wgITRNSoZ}YeB&I3p|1M^5x#NG2D|RN zD#AC;jbwFS9&wc^)_r*+|Kg#`$?Cp*5x#N$K-O+}b%bx6*Joio?h6F35#LE(LB2M^ zH_rFTi^=)LUy{{r*NKmjwOd{l1D)#*^Rrb3a6rf#9Co?8aBKm@s^Mk4FIIUn%Hu7|39 zIxTXWsrjc`Mw?BIMw*yf$ydKOwQ%GaQ``IMUQ>%i#+W+VSC5#Q9+_wAa$n6q*?U(j z7TIL#A*#x#G}O|}sCeY4sX3>aS_5h|swE(2krJj>_tod2cBfh@ zQp41?RJ8)fLmfu7bVO16QOWKE;2NwP3A}+jvA zL!QO^Ym3j2wI=I`lV*aoX73kQBx_ASAZ|?7nyD*R{7lBHCsur|x%y(o*P47#toT~9 z4aADCHQi9m_*#Qc!%}s7&B(#eE;~U6LCMJ{)`|o__bT55!`!%0rq+%WHFb!uPB67j zIc61uBi`1o;P)^uO5P`71k^=(bVs$s+WI*I-NcBP-Kaz!C5xv zzijNok#9}C$yalse2UyWa@y2~eKo(SEh5*W_tdcieKp0@mXWfi&hyoxP;=4AM}w^-*FyU%SC8Vm@E1w+Bk1HQG1w_Lp8)PKD^y z7ftOKS!e1ZUwzrs{*nEre&(yMm^vVG$tGRMv9;gS`8Udv0Vd|@qlcs*^tLII9Et3B$FW+On8hF!t?)XReEo$QhhVB#?cf3vUt0ChFh8Ij7SHl(Uu=Xa<(sm^q} zPB$vqo%-B&mPFc4#ozqZzO#Ot?K?}f?~KM^x9=>`zViXt?K>;9&uk%&q<^1?@1A4( z&Pwe&Z%?D?=kWRK z#lMoZ4{Z=%I}faV>ND|8WbI?0i|dimje+1s@l#~&17C>s{7mX!iuHW$Bb&r}zV?}~ z#CpE=q0M4FU;ES+@hHaEKK8X(&(}V;Rm|tBr$0kUv`W`RQop|Jtziok?MQ1Qw_L95 zHf3F;5fpXJQUr7ne>Qb}q?@UmeD$QM8zQfmy4P1PnEF{{j;UvTH8{Mmb>-qar>Q%t>TzGXDf)LoI~rrzwUBTfA&vcuFze04ljy{YVp zoHKPORpt90)V!(4cW)$&m8c57DQ1x!KeWzPcA`C93-)4NN`ctA9dmNcBME zX;X79u;&(>j?bB>9*m4MHAYpvSOKc`$U~9$Os!5;`%PV_{W6XY*dt-^N8^-<+|5V2gYk1E%kOA%YSwpVV& z$jbF`@$F!jYX{}}5?LMigmPU;R<0eD+g6UplLNs{;)`VE)>(7!w+yV@pA@emE4MD< zf62=IDPO;GRr!hTz(Ql+!dDckYRm5}(}Bvg;&RJ$pfYU?c9{-SWun@pkeYW-U(5r=oPQ8tnJ$W@`hk3P7UL8d&*A)xpRlb#o zt*%%qZ*CyVt7YQaVCU6xdG!uiUGcHJ`h_g7R>+&ART!_X_(WWVtlU>>?rX^MW|cVb zDOlcpD!zv-Z&!=^l9l@!@hY;sSt~w6mUrvKC0B#x?RtOwmAi_c674Hg?OpuFlbkw* z&Ch*@cb}YUiAc_=eRAprMwU}Q%b7RGa_SdxzBT655joY0ET@jjsVuUbIwog62Ro;Z zi_ef(uq%Gm%yX{=FDCyceuOM%PKXzg<=jbe-gRI(drI7zEay*)XOs2*c1C=OtoOUK z;=1d>a_)C=KeC)XCtggJ^M8ncA*(Xy#f+a_SJLa$)P1wBcv zuO!R+a^llu)uz0-#1~-Iu7a5HuiVxADyVU4_xEv@^2jpcL;L~>o-SWZ9B z$m;6ma&|IVPPY)}{nDInDW_YK<#a1KJ%uc%ACa@4ft}Njicga_v5Q-4=D9Y3*OA+Z zdywT^Tk(5jIs2ISJXy}S6F2_~tje?(FDI*VkBiebgH_oM;%?+_eBKk{&&ch_9mPeq zfaPo_aa*#S?<}50R%My(SNwnS6Vw(kqfDT`S{B)s>pZytRfdwk%Bv{ zA{SJV+rX|O|EdDb$g0RCaZj*YJApKwC~uNgkzg86lyAtYNRBj~DF1Lg?!&)qFOFin zbrs2##u-f@t0K95Rz*5t${XoKuCxaGJU>6g&FQ=t_ma0IRAeJ}b9`k@FGoSz#|T%a zjk5^9Faj^e{j}RWKmT$OG8o|vFL?0UG*u(*2h`Ip#^+#Hya?rR7yrBb-(17jkgNy4 z8Yz@^3V{pZu3%QXE5>3?{1{G5Nm$?CMcW{4-g5S8@4Yau--DriA!Tawf6~mK3)jt6rsiUH#v30e-!T z_Z3gedBCgJ^SC)?LfkK2L8`WjUcp`XPc>@~3GIsSjHcDJD088w^I|*#Z%e59Y8OHC z=nF~f@P@RJ7GW>vVM08LUGeI6HX+JTi*jSyHj9$<6QY<9k78H6C?#>1Wit^`3Zx;M z@@ZkzSv^z}dO9yEf>yNM=0)h>BB%qGdWi-rq-AnXirIzu^X-Z^`eipdyZwOucXwKW zh1P%HAGZFxTm3f?!(IQ~t^QjIcKugF{kDUw{<}|n4D9-^ruwhqZtK5V>c5U;^)GC^L5p|7gEX#Hb_n}Sb^ z>yhV>yQ-r`k@fc0O+1~fj_fY}kgSeXlr=7jcJpPBnsY5YlNLVWWwZ}^Ixof}@V12Y_Rpoi@#))M6A9;!*617o}xFl%p2q`Lx3p<#|Ri zAs)r9cu`(Sh;qiFypUGrsOQOCMlm5C#jbc!R=X&2HpgPTpVHZWX-`{}z0lKnQ4w^q z*lk{fO9}IcAp*-5?4LFt5!~rw7vpoVD_(^3LvdFtTZ92=r~L?aF&@FLcoA-P5wyEB zLs!?Zgh618~2uRX$uhc1nIv8UcBk89?JX&XZEtx)drMui_LeEyOa23PdrOvhJoz=c{HEIregV^dcr(QV$=YjXiD#0v7ro_=*RH@{NX+Zz@#b-_ z>(=7tmVJE6429m zQ4zFm>^86KD!T}BvMVBJM|wZ)xJ76VJ!V3D9(Kix@>D{UUKV9e+ReXtUW{ZE6XH?q ziWg;CLX`d%Wo}w8i?WJQOo&IZD_)du5~2)86s^J!(pFlO(~M$5Jc?cMqU1gj-wkFV ziuRNFX*sd#RNdmxVQ8O4Nn6uaU@>EfbjU)g3+7P_~V z5sY9L;}PtN7h$T4aOJlaeloi{t-=!fym0OBwzI6(&ax7N-OjRFJIijc+gU!-PVx^~ zJIm+d?niBB*{GdmJy~xpUub8!NY>8srFN3y$1ont4}W1<+M=V$H8?N|66fIvUZy9#Er??iMES- zkhN2NFMgGr%<((KjIZ@H8bJK2L~8;gy6aH{mXu%Q}nlbz1(@UPg5p#e{ei zUP*}3CLzjK7G-N%6N}Q9QA~(O;gy6auevDO@3uo)#{F(v+60TT5PCW<#v|~ygg3Aa z3G+A)N&DRoX}c`KA?C*cC6zxP&NCi?TcItVLPCC?>?C z*cC6z`h+OOEy|v>%4a=a4l;@f@hEo1i*nvYQI#tp%2rnSVA_ioCFKOF%!`VkQ_XJk zBHWHU%-QCMz!nM~N?VBt?rqR6#^+#Hya>$_B6PC|htn?k5$s|-f?e?HYrFL%o`KO&57js5as88c~087 z5sdQl*9K&r8#$u<{PktB&W)T=e*QWi?9Po`;?3mOSn1qRyv7BpodW9|xJulVtaBod zxD#3DNM7+vST-M2RRdk_6=*0*o#3S&E z+hH$zqaAAz@Z+j%dGX^db(JOZy=A;L_HkT2THA}nSE z6XFqgpuPBQEp9$avP$s0fI%Mhb>AI zMlm5C#jbc!IwnM^XHn9lWw00O>x3bUVnRHMUGbv4kr1W5MJXD6#-c1|6cgf6?1~p< zb3&9CEJ{XnsYUsfQA~(Ou`6Db!0&QbXT~^-k{MMtMWMy)VmyLf@gm&fB3${a4SvVF zV)PUO7tR60v#!k<^nT{1VwB${YK+0|)TkKccZqs{-KkMYr^Ksdof?(JxzE|Dai>m= z7G#|oRdi~MChOF=OQ*zgusb#G79S#SV(qJH7cTw>cpdp3aV4@&fokGXls^)pbh9YcqR&~Bf)^0Qgm@HQNr-X-?y|Y`wkXx3 zD=bPKMlm5Cg;x@yJdzM)fJM1C8pLaf*1?O6VnRF$uOvhnlMrQuMX3?3ZBag86cgf6 zcqJjq+Jq>tS(N*tuUM4*jABAO3a=zYIp?D2Ov{2)2*+2jX7p=|l6(qL(bnTt+b=9>uPBQC7Ps>bUDZ#_wUV<61?l2R&c*LQm&KMbKN6-R4EOlrWES zh`@FZJ`x>-2<|H=yBME?UGXBM{}p$&rbT!ZKWb|#8EUGXB^oDks=i_kinCx=C_ zi}46{#fxxXLWG_cp-uFDKZ0G1N3bhigohI%jIao8qa*zYb}=5ou6PliOo%YUB0Lt| z>_@PR@d$Rsi_phK&|ASWM9@1|yQr&!U5JmiE8gg_Zgh5EN%EcGxoCkE_Se)ZU1RSA z&*`0D7KXcbg6H&3unz3r30~AYz(KO!30@Kh|F(C6K6)o;N7g$*U%eAdBJ^^P!DJd2F%@V8>cOUZi2 z7%JXG);q{B@m{jd=;7jj$(bBKLY)3DSZDl5aaD2^>Z8Q1$$Ce4MckLHcZkvAsbsxl zj1jLQ>m6jQn9tX`eHN3h6Ghws(Tlmfb-M>Qr}Lt!t#!-W+Tw~=?K8Lo|LJ|8KO}u6 zIxu=qZZAUaOV~e5i1!SyB%D~OxXYppw!2McKwECd8xgNJ2;!*617o|@^l)@HeN_2xo$zl`};!*617iB?0 zloA#tD|$^nFQcy+#e{eiyW&MTm=L8LqUiLP8f|1za^yf16XH?qiWemXcbU6&5QWVc zoEDvEQEp=t6XH?qiWlYngeYw+%Jk@Ni_(cvOo&IZD_)eB5~BRaqRfaEyV~<*3Zs}1 zk78H6DDxAdykb#iMmt-SEsSD9Jc?cMq8vzw@|H!J6`gNUf;kbzgm@IY;zcQlyUg7c z7UiwzIg4^DqnHqnVpqH{6Aya+G42>|a)I?C zur4|m?NkTsUIf;Qdy;h!Z;0}r0~rU7J&wm0#^c=^!spRT*ta%7_}?G$k5Bsh=xTq` z)33F+o9{L0gBa^3{kuKg;V)`BwZHtY|}w*}}M4P4e56Pie~UW2Bq%DNXrHK2k4W ze`w0bz;4RtHRXJHY|0lj#aqE{$`{3L$nyD5O}Q^PHWrV65RZ30|E(!6f{?Axm~{Ta z8J}8n|1q-t|UIDvF zr-)CGHR(uUHb>2Tm~>k_p4Z%@Qwy^>o`-M+pDVh4E>(B|#^B(B&%697m(r9cVx*gL zDNT7P*iE^tro02}d@iRc|3TK2%WI06__r+Glq-nqk@X^Zv!>jItQ0DW=YeBqFrCUw zVG8GTt5Vp{8}&wfoA?~~igoaks$IDI>HvEVNzK3B>QGxrg|D%sYAdN*z~xkj`bsLt zxVA2*2bEJ3$S$V_%AqgV<Y$8Xz(`l74$9~aMpi~$l+njvm(o*8=?AjP^t4jA zK0ofqv+;A9;&NoA&`l}SCo9G7;xXXZKul*MQ&O3FD1~jjQDy2WJ`B#bOh{^Y;kIk7 zOb>-Dso_fMBF4I;hAXMm>#R&;E-%wq9M+SS<9P9( z;MfApCSIo3l|#AfaiemaD83hbg)-ghR@1wMGw_8~9hIqbl4bO+GHQ#FE~9sqQGZ5O zndT{@>0no;50uiEWR+>YQV0~l{djgDxIlb6xe9rqQfNlz^n;7UBgsl}v3Ltv7JMiU zg^+T8Om{lQxUU~SQi@d|xUVmliW`t+!7_1svdX+%+zWigGJB?ME8Km({k7aaVKZf$ zOqqbO&XjF3WeM1=#vPZJd8a(t4%vC~gFLt<2~)wt1Hm7~)yc|nmvU@NmIptHCz9pS zZt>S-dALWMCk#(^V78;^iE`Yh93Oz-JlHR8P1e`o2gE(db2yQM;vwK{+60Y%zVLz# zfj}y531*E=Hb>6OkvA~XIdWc(e9XvdlYivMk6_m(|H_h!WVOj9Sx`I~_v6|4xU2}z zjh1Ak7%akb;x)1?$RYlMEQ@lAFOg+oF7bl}VM&3{0)gky)h@-Witt<+1HoC4M?8zH zHpweqN|uHB#GAm`wh2tRp~%+H1A%II3jPpyK{MrsB0N0zVyrXeh9bid<`USoN%_>u=Av%cqCal-l81eC(DCd#rw(f=r(a`1S}747dHaOs%=bc zlS;~QJa3c-mBq8kYLh#~pODoiRm5AtS7?*l-EPvLNP#c#TRU>(e2O{JK#m;3Nasic zIg+aoBCAcB$&un<*Cr3ik_X9ZlZR!&%e-H0(p)^BtPg2gD8(&geTdUioD1FRENCUJ zO_oKEh)0lR;iKZsWLex=Tp*3R4br(A>6Bf;{%k7?YC~|JRy`(eMV3YF#NEiUu)TN? zSr$Joo=8@kbr8=1U$MN??;zQsov}q-`n-)zUyA3~9gIj`GgA1FZMbmk{T);@@Xwh_@FNKOBvf8vn zI?tC%VArN4(+5I-n5;G}m98(&ct4&U2$mKvBkLpW8)U%_ay#lbit`r-%c3&k#$;J| zlXwDI7MB(8B&!7F#L*I9m8iV9HCZLBAf5q^75E1KK1dL4yonF4D2sOT#&zUd#J`ed z;jQ98Nw6%wO`J?t32qmcCaXkui0>k+gq6e%$!hb;;>W>PY;&(DkEXBw7Ix#NU{-3n z73EPCr8ma9qCBdiOai+$Z?B^GhyLTL$uh{UCLL6R6JS@9C&a}|f#p$0c~pZe4?Btb zkmYe_@lvvC@TB-8SvBe+E>#+=8a^d%LspHS7EdIr2fB*4fMX563k0gNCi1AeJj#6o zZj^`5h*Qb(xQDnbSvBY>u1;2so)tGEtA@{sJCjx8|A_mL)dRi6S`>u-aTnrlWxy)Iba5rJN;E^}qmM z{2N&w9hXPfmIKSfU&Xb^^7uD#f3j+DLcENu8l4oMBCCd{#HGuFRpZm*wq*6d8SzAL ztox6N%j9=?w1qdy!*k*TWO@9D_z$vba9(_M1+Z##L7Yxj4KIo-l2zkB#kI&yf?}^)%(a80n^5Pg9->c2jPw zDX#*%DL2uSca!CFQ%y1Ntv2Om;#CT$;dOlP>chjT~f!(CLYtn^pvq?XrNj?U4KKBr>C2P_>HR;sb zG3g3>5`BJ7ldccp3O;)unGP!2A7k7{rU(5g57LyoV5FP!AWeBB*iCu3raTAiraVGZ z{*o-8M{0`act4(v9}o~{+yT~>@`|Q>4_PUU77qZ&)?qr_R@{;ws}z>-Ms1tp#9x4~ zSO+huSw*Yu4Fp#6$yrNFSRH05sb4VGB{fS)<*8)b=6g!Yf4g{JIhBI!a+;$Y8iQR< zbH&5R%3+>zSVUHiABc~DV`DL!3d~74EKm-GE8|9OYYW8{z}b`uowcTDU|%3mKFEwl zl(dZ2D5D24(q*(p8Fgi3b=K#~Xf)WBX`@n_M^>4>PzncmKc0=h&nwPxr=_q-DP)qB z;#cDK;8ykRGq<#at z)9v`>W%^Y)<*#Bn{iYl$fn81~#9hhC;iPhyL{^zjiMN1b{V|((na(JO9N2hWj%URw z+=&0{yM)+iy^lO|W}HF{_c`!0r7feJ89W_s#YmS?&J3OoO&M8b%9p{@;aRXN)72R~ z9j201rfV{II(*0b@ofC!hxqEd!CWc9{27n}H;{EeUng!uR*Kh)XOd+>0r6pQtl@z` z;4Q>(2WV0TPm}Ab;zk{?VR13CIyG5*2U%qVwpWt%4SqMXr>Il!AvPDQ#xa; zGo`Fd84h-3zD1_^tMOKO@*ZU8$!+prFW7ldj99w|dj-@Bc@h;_X(C6uVx)7Vi5wZt$ZC@oa^wTBYm=6;WHVW9(n=Ow;Qe?uer8czt~yvLKB^Qu zl4U__@tb5>)JFU*Sr)bx$L@tCr!d{;gVrYPlwx}b&Vu&hUSwJHxOgO47IqL%183VN zFlBJYf}gET=9V#22FsMi80$;%DiFhTqhS#9#Vcr00MGEw{% z_zG>}ePlT&gMZ_hKj<6Gx^$B{GDnUq!${}I967R+k<}&(<;VrFYm-H?Bv#WbSu6{h zgPkQGiU*PPy1qmy&Lrz~{v+{DvMg9Cj@AOpqGjUNWLdaeJcBHYKNcSX$9f>08f>E# z?9WeRL9{k*TufdmE>D(4tHd?PvhY*!!(_GDYH=5`+H8%uANY!G=9#)TBY?k;vr(ot zDQBkcm8q{`tTT15OkE6iZFczbHv3tgehb;P*)Q_&U$FD^i1^kzV0my<9yB4#qhsQc zWO;a8yoD@}e-(%B2df6ZiJOvDqZ8tZ;8=fT6Qrl|;FLVr!W-q$Y4HKFJUk=*gDj8F zim!eEtQ!0-PA98I=foAk*|aGZZvM=z$MHpKPPXYgctvr4%Qk-|54~C#=^V|UISfIb zU}UvvIFpCo5U^|0t~)iVQuUKLM7*CYi-w9zHUi7SVdBnYSv*`km#h+u5T7KgL?gu&8-rECQR3&o zv0C`+0$sT?Y~q7Q%c8lwaUFS#cr{rTjun4Lmc`@5N60F{tKz@OD$#4=0!_eE7;n6| zI9Y8zL0k!Z#WwefvOF_z)_(pz^HwX$auuZ>#=4>`S5ckg}4h@ zJ@BP?COGyQvb~Qrkw;(2qaS#qJlrh)jVzD1h=UJ-RfDg^1<8x)`Bw1_WYut+_-?Xl z{EfH~Sv~NrxC1zwWrB_8WM;-W{33WRgwOi$Hmk@jJy4F5S)cM#ly+6IG6ZMvPzI! zypXICT_xT?RtfWne;}*GdBwkx)dKm%!IpkW?(5d8YtP4??*3GVHaHEqOi+}&V-+si z7Yudou%g@@;}KgBV_i}1j`4`S4eXXljTnzu|1`KS#uK&~WLJ}#F`lp^!LBB?#B0d% zsJ1-XN0x_m#A&U-^7wvnQ?hFCfOr&HHL5FKPgV`VKebnkAk&K9ulXKwM-rsmjnOz zGHG`6?e*|CXT6^Z?ip+N7yf=0`#I~9UzMJ!%Douvs?t+cX~*bVD$lDb1Ho>oybyaB z9k+q3rSf9ztq^`pl=o|?yd*B!8mzMPiJ^-FZNRbqczhaea;?-a7R2woyawTacihV- zK03A!BYSJ&%PLtrjn>2$V!WI9Xia<@AFPRw*TheQ-NYwo;^}Q{;;(C>O~G#B6U9Bq zn)oD5d^0#!;O{^n>`(j+O+47vpLnzG-U>*VHdevxSX+#nt!a0wY}1~tX&1$4H|^P) z_B~)X?GH5VHefgH`I`1jvix44X>R8Ih>Ra=5a)c%roBkht^kfr!s9FY)BaG?ejLL8 z>o+F8Ay(iYd;!hqS*7o^iEq%v2V%UN_y$dUCLb)nH)-N)!EWMTY2qizn)qf-v_w0b z_!e;uvi$y96Q2r>RmbDwes9ynzk!fVe|sOJ?v0JbxVf74C4bs`HSJRv?WVm~(=O27 zrhQn`t^jt^{#ny*N!GM~(KHA1enbugkBAqLwapyWw9k^2#xZfJ$C1WXOoxNqHt?&` zXa&Lb|8L^w!P(ZsOYBmt+P{IoG(J6RXBDf*B_%cy<6UBxl-N?nS3PnU<950O>=L`G z7#HsK9W1dt#kg?q1iQrYio27QNWNlRxU)Ym0FqU-JZRoWeQg z7vBK>f9i!cD^hG9;v836^Y5~>iWK81Q5&OOT1ATSl<3IlN~@UC8VYu46<1pCkX5e| zO5-QqkH~>wNpVs~OQV$1Xh2q)rNx85u@aZ?6(7d9G;UNHOL^mK3{*zE9sK{+3yD=P zwiS`w!XJhoBy(S3R##$YG2SIsU5SM|A-)o;t;B8tyTs}!u`XmKcE1vNo%dq~_)7-j zugFTIt`fOKR=w(pZ|RK0!uTo6c)cD}A{`;PL>q_)gR`lZ_rYkJV*UBc%|SdnYZ`t! zz@^njY0biDmsT64wT{u1RtKeZ5bV-=LTTlA($eavG%A5zTAjpQ$yJzUXQeTRtYiF1 z@qV(>>>@7S1uPq$5_bg0zQ=S2B8EF=yDH5r-l$`^n|J|PZQEVEo~(L5Bi;$lw%(pG z!;4MFM;a$M+pMMcm@&g;Opd3_nBg)e26nGIV`Pl~x-(Y3+zZ*2dz^fD8ti;|RXmHV zJYQ3uYsvCqy!ZlHK1~qc^fXvLzAkPDjs@@=%@5KS3wv9Wm0Y_-c4{JgAdm-%ufcUN;|zFa8*cI~o6uG9p(cKJxQJWkds zSSlOd;Qe@hAh=Atm8>+EE6x1fz_Q_E@q=X9v_kv}SvGzm-VBbN!F2yZOqb>=rFmU< z+$bA9701Z3X|?!vvTR%uA4>=?ix4^2_Dz zazwsNh3tGeDj&W8J7128FOik!apjr*3|Kz=DsD=aPrr$Wk>%qF@hWg^I%XShms85~ zEN_$#r^R`CfaTK}aS5{8<*c{{IGc9yKIqI-yaImR_!YIw-T2hiwM(AjJPjVhXy;0v z;=>SV0HbSn$zPm@+zha5m+Ol2kXubwyIfzKhuj~$AJ4}h5ff+j1nVU~RGf!gYck>l zf=S}n$+96V-bI#8$>NM>!LqTSxII}mr-!#yexH z$k?_$#vN&`^Ag zyn=OUB+lF0_w~PD?!6B@I~V6aoyg`1X8l^zTjPjFNzP7W#dcYKgqJWkNEl*!74*vadEQB)K6Rq{QtHq zcE|UMx5Y2h;w=}(-dEdL$9QM#douQEuxr=(m$&Nz`T7cE=j%fGxDM=mT_nCp zmJf^NL$Q~@^65iy3$lD%A|6AQ&mW1mkyVGK;yiu8s?##@UEtU@WD{@KkLANNyiq=_ z5DzBH$4|tQ$?|!ncph1GSS8*>Ucm^u``+BHI_ByQxtgc1 zxw=EHmIAwW-7QyZgI&Ask*!aV)vkMG<2c@r=LdrO#GjD$5y^hpaFN`O`T_CH{lK#6 zp!h#z*?362f-IX4iv#_^D#Op>nq-yf7x4(P%6LS)4jfClHWUNc-a%HK%ZZPZ zH_?dl;(UYsy8QRS%4~grOW%I-0(PWjOxp*5{WojWVG!(2d zwiI_FtIVy$^T}$1N5sE_V+)XOJGkO(YAu^?N6$GM+x#D2=N%YT)ph+DIw~Edw?QDu zB$+@mAv6I+1w^U^1SIq-U7D029Rw-TBoqz322enHRRobpFG@#>1*9Vg-&*U;xgpQ{ zCC@*PzpQ)C-Fxl5@4Yjb3F3FivN=}Vk*qSb6b~k=Os&LI$SPxN@nZ5UmZ6P!3t8jR zR(uGY=D6VQFtb!FzOQP=i@SFqj`W~K_0d5j&GxhcnGp6XHtvZ>2gszYP$uZL)k`Aoh+0s}2jrEy$|VBJoVJ>bO{ZhO9a-G3&>H)dx$( zUBI4m$ToRgmdmFVJWxKa5bq$%=au4PWYuAn_&Qm2N)$gOtB$M1c|QYdT-Jz#$QqZm z;y1wmdv|G+;+^G#rEcO2v!hws_$GC2RSv2uZLr!@<)ErEoV$XS0gL%TMD!f*aUuC`~_Ko-%;Q< zz@9{$J`ch)b8t_Am;Brb+_^kG6E>zGLunVjdAgXU#Q*4oouM>u8r8Adgq@)@2dX95 zg#BD;-ZX}Sjo;6grr*2C3j2l9^!o;n$IdQyHgTzmHtg)BdDmzN_Qc@ykxtk-OYvstSJ|F8%;3X9JZk||vmr>xCz$Wk@1)gh?4Ln$Zz6myg zhltyf<+oRXZwGtM&HOCJk)Zl@xaF$u{gt3cDQG zgk4=>Hw2roUsc!x$@2R(g}I2w1@?4DI9y~d12vV# zARah{8`Toe0;gJ!Kw?cxpTkb(o#k>3ZDLK8*mqcO>d{n*o#g(iM@uF45Nr}_rNqj9 zVH0buM4Ew3Vr|5e$*MK^2vm4=b!5WjsNTu;J4^+KIiT?zrSuZ3uyL5Ma7uXE`1t+oDO6pK~7cXGnS$_DAt=A@{wGpdLy*4SWQ`}wk+M%@m1)H>X zDy;%DZCbmOMm?}eYqxj=xe@|$?@<~%$-0eyFMdE)nm>pueF>Hgd&Psno<0coQ>ML) z8|_n?Yk8nUCZ1Y@1XasE6&o+Gc>AjiHtmwD3~ztUz@}Ytm*MSiBw16Crwng@n|VCW?{eoA-y$o`7t1up ze!e+i+3=FMJ6Sg66R#r6#{A-&V9!K^i+8O8X%;NQ+hy6gI8Zhe62DHCO@+lx$g;7B zxGy-(c7ZWf%ACWmXZ~jN@zokzW2(rQsaS93sEUmF7Hrz(H5ucyOAYyQ6teN@3RynY z6*nWRUFwMkfKzFgz#E{g%Ov4E=AGr~O{^=e<;o1KHmmmOmr8$+1w!-HueyINtVq$ z#lL|)G57}ZdF*K(;(N=6-1BkZTAt`*aT&5~>Lad9mW_SI4al;&pSUeq?bcu1ADn8t z1&p0uCKlhkHSa9n_`n)FUB)J0y)kyWjNJt`?KV4QyUmfW7a<#8=gP+d3lI(haJlD+ z>yhQdSMs4hSw4L&UPYFV3F6CS`8;1-W+7O0SRigrR-G1#Cxbmn$YvzYX?$2LAAaD0 z@@a|qG+90_72hDs=Vjvbi@>VGa&ZarCML2%Tos%~yJCpl09T%S@%f=Jpzsa)s zq&WRju*z^soR6$_JuUWv(`;85n=#0RZ)Tczmgh9L#%2uSZKD>}8)GvDjmB0T!KPiG z4@&V?+Y3RwYm9+xe9acbyT&%K@in{nE?GY02;yC%*fOwu$|-)AEFW`;$C2f8Zt(%K z>X1jAemPim$}5fmd+-bDXWI3pAl_9z;(_uhpLi%)KIRusCCldm;w5C&p`iE&@+LM& zA@OB!D(xD012ZzH+ROHxWq%9nYNT9Ezrwm2DOXE^O}kc*tFM7gyH=E~t;lNEO0sc0 zkH`64?#ki~WW7aFMK;_ex1#=vIBX?YHdPh(B+JHX;`LyU2pJIim#raL@v7Xx`yoHY?F8*7S-l4Wx(aU@w~s4cEZR+-)sHz%u% zb;Lc%YWKIrqrj=Qd!R5qf~w)0m*%aq1F^O+Jye+0SZ~_BhYIrx*tC1!lOf zsY`#=q0DN8g8*Fa0pjLl`Sgi=8by|m1I1g&@_CT>E?IRLEDl}+R-J~3Ta#7CIPq+< z>O53@ovc3iRP0@gx@br>aHLROtdi?@EJS|9$Hw@Xqq0prkTxSGM$665pnkt;!-*r6g9Hsw`4fUIUwP zS)r=52AgqNsj_@Z*0`)v8CLRml_gPpk}R86%chsU1@t;bfI@n|KC!7R#_*yqv6Y*&*HzPIFvvceopL4qt6F{(zlF6Dyx`>``*jZ0)Oe?OLWGmgjM z`17ses$`YLFPr*-y)*I6g6RkW=X1IJ!Rru1;Y9pwIYgId0hGc}OtY0&Qv0CS&%V{@1oP;Ww0Uo-H=vH2{!_pgx^-e zabzW2R|&4;@eILTPy8oY3D;M`Z*EQJ3Ss2=5yEyxUO#vdVo>y-K*XQ(fRZ0On1mZD z;R#Tba5TgdT-MMeyqrtYs4u22Hh3Zy;orGJy8GMNbYqq7F)TOrja9n$z$V>xO82F0 zHr@70w+UJ4c2Ii5!6w~~;^}0i+ezu}2CKf?5Q6I4DR>%UP`VEw;uQguC@0-6N;lv3 zK)Qz@-ekI6OuBvuHr;2w7V%7dk?^44`uG;7sqg0YHsL`^xCJ&a2@g`jL%=5CVM=%| z*wlBp68?#-ghwdBbUSRqBgHXfB|J(APXVjG9S}km^sReT@F>KfgnxkO@{EL%T;DND z_!Jb?cQnM}TsFoe{D4bRsc+y7=IO!bu;@n|<&IC^(WX0H>3VkBbf+ubSHULT*-Ez+ z*rYp0=?*0;-MLC{Ige)m?s?+lWL-wTQo4C}+4R2_*9I&7>^`?EhIxDy{AmZgf5~|^ zN^U6iseBzg4~mQ#jAi)L5tIrz%v>Jl%a}<#fo?Mk#0%^R{5ZG+x0xS&#cs2U+sMWm zP~)gBFgE^0CDrRfz{vH%iCDH5$GPL{b+SgTmyyr!wnna(kzTO5J#CSZ&RaWM<>OnB zjgQ;pTOY9Tal7%AthU)9-_DZd>rUhAp1|B(Kt!6G9l<}NwsNZ`MC0Xks56-6&fq_- z+LWrtjW38Me=lLTyz39ec)LeD9jszy!oi8$W>0V=^43Wxx{C8kl@ls1?JoCjf||o2-`nP1eQn zcn07;Bi=!lb!TPW6SAy5C$9QKz{(9akF&uA5Rybv9McVJN+E zK4aYlS+^OAY0Hb^B(SVJfrIzb$_v4R?KXdN8@1(asOP9&G**_`n{4I(y_~TvVdlf& ziDhkD{@%r!`A}vyzy`+5hcdGV*tF%-lx^t>;q7@6WaFhfgtzC-VB=*v@h!5vOCQ3g zq*6bE2Vh;!cOxRXl|G~`LXwvgAQ}^Xg8G1IW(XN()vu^}E<#Ce%S<7BBHG52 z%wj<^i+=;l%d0pzXA%8;pWTL{Y0Fzs)s~q;boxhBQfbS;TmAV$V(~3sylIQJyw=q^ znJNrmnaySmSmJ5o_Gu3Q6jg;%@pcl+m=HPRMmf z(V9$AfzEh4Bm>ekcVH2a3947*6H#L_+Dxx~q=$RmZOwl%N>RlOdTo2s{0)w_Ys=zpZDe-1XI-&JK_N!I9h zQ<*REcn09^E-v^BSY_;?GQLk%nR|+7kktmg#K*~MliuQ&4+R`7?nk^uv2Tx%{XGJO zY6H5lhrc)#Z|y+fiBoAKNIK^@|itN1BfPpVK&6RAxo_~+EJ%kwO`0y ztFEQ0hmu8B?QdG(43#uTA5AbbWP7w7{d2u-6UWKy7cggCRh2m*o4eK35tV$(>?C+Ig zj5CxE)PH`+H7Kg^ek?QVvRQRONP49D%=j0v%EFKmP_)i{4C_46P?E=gv1;jsVrsoa zT#Kw;SSoH$*7z?Ij{vLouVb?a)_zIIXnPtiHflYnHK{HQS!h*mWzfB_(?pCtX4T7 zK226D{VXneGT?CG7`JO8efTlt`p1DnHiBpxAQ-AH5Boy0^a-dv95vdi`$I}wHQrHQ zv+7SFHLUuBqt>_Tfsj^Kz2&IQp{ikj4vDjBkyD7u69)y~{|dZ)m85p548^>?^^3Rx zS?zR4+=HxkJ1iba)}`l&cotcgo}=PbV71?3oNO`8`6VPX3a&0c0MV%Hp>C&|6jI8n z8Bbev8`Kk24~4vD)!L4F3hGU&heKLgb%>+>0X0i8s7FGESam5?J+Wk}fS31FkDAs! zN+s3HR-k!rha_RyXf^Nq18no&R`Wi^2Bvv$t9gt4YA;(4Q(m_IRqs}XYD|ZTWn}f*f9kcPWcA_`@r%EK)vHg%jmhd|m$xxenMGEwyT!kfH4Ev)Ma~2+YtP|V z+Uk=3LKgN5l&2v?)4O@0s&}7+?6&Gasw!;}s4+D0X~+euu5r{5sP(D3y!-=oD*UgG zS{`Z#s%~#lt7bZD&s)QuH=Vb#RU@c+T0>clN||2E;N=UKx=>6nW)!y~t5-9L`;gVk znZ;wtYk48aBL0TFiJVn@2CM|*aI!cCnbo_?hC$JoGu8%~!F%4SkEv?y6sR+}Hlz2c zRcoEIYvw)+!9{C;L3X5c5VqTUvLG3&1JWYmoK<#fz4A_ke9DrJCJqR4fgW2>l_}> z0Nf$sBV@IjSFM)o0$8mWD(*^FtA>d;lGV!L;!GF8YIUEu0a>FEA)W@7OB0dOUb^J< zw)`aE;X#O|I`g2abwj;Ftopa3F0pEuceYhaUb1V~ST)?c$*PSVb(2+n-jh}x@2GpB zYM>&#_pQ2ts^=z@ADzo?IknnxD5e!7#eb01s!?LsWw2V=FMg4%%Wkwdn5@fgdGRY? znUfWNWZ)dlDd!zLFknt2h{l{EP-RY}H{Pma9o1*mDDOtAe(R{!t?Kulu(zN|2xjB)@^Im@}_m8sib+?Mf0}w^6&GH)n)hRA+~v2s(HI$19RDJspkC*Y@Qa| zt9hLliXGIu%ORWI?WkV805-kbNu2)*SiRO+z4j_uz1T(kDOtVxk$4YTz1&rtp^|M(thM^V%1{T ztlA7}&f-wJdiz?nmZNrr8br05cdAu;QB_oZpz6Hcy=$#Ho2q9jl;q29Pxaa+D5e*C zi4T(1tG&e+$?D~g#rMg&?Di3txDM83x3Bmuuo7H@lT~AoeZ3V?Z(ZalnjkmZAbWZn zTeTxqt=$8)G1vC;_Oa?ZXYC=owzu~StN!V%y#}>A*Y@$Qv8v|}?5y7X$FBX@^llw0 zsa$pgA4~Y$JFzMruW_6^zQi!wxu2_Z`(U~0+|Sjy)4=AkJ5`;#4s0&F)6}|0$-3-L zSF1k%Cyr+T?iu3hWc}iErdn+z)xdw;W59+{aS7MCK5Hj z=uHqeBdd+)i+hmO<_p9l$r^)&;#p*k$s%zgc@_(`SiFa`HW54z` z_%tvU8E&Atr1pfmfog)cn^mhg>Tsw@ROfrgTeXv;ehKv|)rH<=R-H~&SA``|Rkj7* zAFX=OS-S;l7W4(8zhc$Lj=CReajHwa88HAF<$^b{v!23_K#ifg$c$7Bl~ivBfuTC! zJy#v!y0I*N(nvd02Q*agVFNQ%2Q*ZDz~**vIOXl&h-PXUWHVDoHA6pv%}gB=r~3!2 z9zU)g4<#dBd_POvgRB`jDPBj`44o1`B5TG@i>uuNYX*N64<)zae!q!#k~PC;#OZGb zZWje#4Rq&mZ=K-*8)G1v0+oiU0-f-7vT7SgjkM}X?`W%j?x@wQddj=dsv8~kZL6O4 z?zZY>NBzL6zj`lNHRl~0ReP)c=5>t-#9YZydt3F4x2RRyQT0rOatofA891jI7y-r1 z$a(QhvS#RlcqLggc2T^GtQou{K0(%uUKZaY@1pU)i}T(E?;ytY}a1!R~12#3&mOgYe_8$#4x3H|CeC4nhY;IxCh4PidA+l~^&xh(mDfe+a zOvj(i7gr^#{j-JgMeIOwE9%+BTgV!p9OCC6fHht@#r4S=zg*(!WQ}KT@l`TxbGh?~ zeGkDJ@4VvPU{#%e;4qQ?W((akDp0wd5KUckK-IWq4?StsbB5b4_V_`NIZ@_ zi^dlg&m-#=S48|RSSc<=FgZOq?xoPEF#&t_K{V<%s6kZog*LS63y-aO7-}`D`9r%~ zwLDb~~ zV9jW(cmTN-_iHKMMAnSA5f;7^|*z)Pq)S5xU5#XB_octHy@zv1(Sgjp~|JTZUe=YLuhivudkQ z_h*5OT2S@mtoiIMu8n43FcdQ*ZN-zxnxS^$MP$ubd+}znX0U_!7qVuwqxc4S7me>E z&Xx|WTU=+c7p$49ieTokL)(Ndwqe$SXwML*3O2X6@tU@;z~&Y=A(UU1 zxJ1@1?(_wtf5;jcr_VcBR#75~oXHsP<8aDj|A;jfi&1+YnY zu@Y_qHVH3L!XwE_c&QTH%;On?dzttaSqU#!!f$5^wA}-Qke`t+4=siml<-i9E>GUt z&weg%r4s%EiV}VaVg#41GzqWalK*{#c_v+4O*e;j$0GB&%c>J?x|@~muUKyCyIJWz z2AgzuD&4}FZMwUZZVR%~-L3S-f=#-6#Iwmt_j{$g4{R=P2toDzKJ+=nVEWRNh@biq zzPTChRjN<0M5(TUSd*#lHK`WPlAP)@A5u!0?8(rGw`^@ACfQ_9D%m%%fl2nHl5Gbz z$(~iRBf+M&=alSPvXVWo_0PB)c6CuPh@{6I5kgRIE5~9n~ z4odQ8E-x$L9Z-~T2Z;T+?6OJtESIEG+rUQ!Z-;Kjq8}MkeBa47-P=kx>vJ~U+e$YW zY|?$GbZdc4y8kNO4rHbKNa;=C@eIKISiF_2TjPI9_YqmOej+aWd?5Y55z<8F@n7gY zl)%(l#@vFkn97sTyogrDw8b*q66!qrnM-^w8joT9pqS2Zi$Aj`co7G0=Qggergod9 z+(tIO4D|$6cbHCagi5N{gn*HG!X{$bUS=D=Yl<~8PZ*!`Z(#$|H+jPNoS*xJ^npi? z0%3g4cOE$khVdF$4zlsFP#CX)&B4aU!s01p`Bo&XF}C}jEMJR?AAvP9I}wp)rbyVU z2uaEK_;nI_xew}1rdc#B)~c^k^_+*2{Nc9Z@-7yNxxJPU4+d+S-*Ir3m$6NWutjzo zisn{w6RK`-#f_KoRMKckTyDyS#lG!!y@2boJ3jkV>ttCuc?ipmlV#=PEwE|H@^UhF zcH5FMva&2$Em=XDv<`a(dFvz;OtruE>B?=L>?J3QgH2oZmy^}N=1Mt0R(2w*EkBWU^LRW1a1Rt8BkM)NAX%3u4_GfE z28(NvW$h60XJlC)Cq4+43q28XB3&31R%3d=g$#L-tF8}2pvr~8VXdqh?xo6|9T21@c=t=&1hdryo3VkpHqBNO{0cVXl#p_q=Bo!DLpD9IKs7J(5-eZ@?uFv! zWYu($YC4dtnlBcwCaWiwh_8^HVDI*K~u z7!-BJlCXX$mEWzhG;A6a6{I0fbq3+SHNcUe^k{!1e?*{r?L+sYxMW4%xif( z191N&zD8CV52%c#3xHMTpT+ITYJ-E~g=Do!lK2W(CA@`@Rl);dRc8e}3MzkFDkg>3Bg1c&hQeZRsk5Z2QWA(u6 zkWCN#r-nZgUA5(=JM88s4WmeNo& zhsRiz8=KmfhgzI!hH$O>f=VjmANbf>q3|Ru+N<%;@s+K7p>RIh@56F4{)NK%Xn!4S z#=k^3AMKwjX2;(X&S(2zvc|t;IG^oXfKBON7LO(C?Y~kgCH|S?z}thR#ZSp9bs2Gu z;$XExkSRS`tr9H$iL6!%5$7loaQHD&ilGms!atlF@UR9%(*RlD4YWt;@PSrs<*0eB zS|#2GF!3L&z>#2Ejy=*UA@2Yv7*QM{NcgsRH zz5Bj;wLRGMZe#ImvU;tFdhG|Ydhr8s=2BqwYEyA-vU<6hcsv<1<8n6_|4h~_d??OQ zI&fJ#g^biCO~MO)ZF?7@>D>!ZGjW#>!egx3m8wen2h?*kv1#~wR-Nyt51>Av+AO@c zReyHWjPK)lsf^;AY}E(Od2>V6c|QzKw5q2J&g&@)CHccYvFf#IP)skj6u(1GVA!q1 z9mwkC*5ZL=y_$sR|qN=x)$J@27P4E6fC5_82Zn%TO zBO1G1pW&kFjvu+ucJ3f`F8-84pmPVQa|;E-jd65um^!x-*gSO&SL=R2)@65uT6F}E zX8`Vz;!R|=+9ge#>R^8~Ry{$SXJlBH2+Dnc)#HwS%eOApGYIh!M)p6l(TeY&I zPKBz0`YgP&RohebtcLP~bJ?AsR+|jPwBqNc70GJViQ-M<1e!ZZe2}cm?qu;rvM#$* z#O|;_>+Z$Ly0e8o55Hx@C&#PD#dj(61mtU4*Yj#W2M zRqMXk1XoC&cXD_qt6rq4%dQvdJgQSn>t+v!lICR>&ATOh`v>;2`|1+gyj#?~HL!uX z>~2x>wgH=`#a$^cySvr9!y%jA-J@RJ2sXX@z4#_sz4n88t)LIAUfe7GfUI8qQ9PTh zUfw4@M^>-z7ng_tYZiVIw*sqoA0s1m$q(U^76l409imY)G!1n2-tbjc-9c3rXM?(d zCjJ8p-nXbKswjKjpTf&n^<%1@Mo^M3 zyFaVfra&>hcu>5EoWNd95^o}_mwyo-B-+O zm)%u%?JuTxUyg*5%4Ik3@vuL_>o>!rp)R{qm)p+$L!Da}%T4G0q0a3JHkaLh)VUMD z=CXTBt-FG(%kFKp>O~&U0Ni)P1){+EW%gaQ+I!?y)bEKWkkyL!#e2zW)d%8qez02k zp|~% zQkiL$2jS~dD)X)KFgz)xvdSv|hF?#qY_!Uw@C?gR#I^^D2J&%uQAhDy!cSv)$=**R zpQufXMI-TDb42^vfz6T+yd4Gjy)Y4GI%Vk+Zf3)V*Ar!PnHPM;vts)N@ob`ubb-7FFF2Mnio-HN8&}<&1%n z>g^yfRKdQ9AG%#XqblzBjEQ!rf_;1m8IBFiPzC$=60$DX+zxy`zJzq1!Xtcq1=$s{ znW?fqzJi<&HZxUDe2T0dkM!})f(#YFnt>>BEwX0BFP=cw3`L6%lW|)7DI#(HieSxP zjJOF|Gg?9XC0R3EQG6P#66{09>dr{t_7#Eh<*Z~2bOfpj6y-Z()yj@~)~bHrW2?4z z)azD__7z+i*m<&}-nD9ZUyN0^II62f;Jh)u_pEx=QJ=SJ1z&Hg=BaFBe#xp8eUq*F z3RO=8lx4%~)0OEV5>>nmCcH8Lck%vitr|8p)7C=M77I4Fu(q1EIIy{ewbQuGCF>T} zUgNc&$D;`NK#$m66|DB}sP=z_tnuh19zxdmbQbRs!>ny8w^1W@lS6Q`- zZ;VxMIqF8Me&kzZ)uON3^X{=~SKl71)^^k+t9J8Uv}zwmJq=YCknTSBnm|ThQ}x`3 z(hJu%)BZix{s*9#@#rN!PuBSK7T+Ulygn8`{~B21*GF8OoWR2N6-SY0k^6~jl68yg zFK!3cEv{%wylP=%_wp^aVGf6Aj4uUMW$Eer-m0q{wYpV%`z~4amZLVZ>c_rxXk*=O ziqx<>x3y{?UvaC}bkx39?dyBRs=cTx=Fg#yX3YJ3&8#|ys%~)$pw6S(-`wJUq>|<> z4nw!Xm)P3g;;ycC z`3ij-IPU~U^;mVYuYy&-bJQ@aZt=Zu)k}^VW7Vy`kFA=c7Gn0)hmw4Y+pZZ1hhk=A zhxk=;0%vBY_Jd~^%-6Nh$-o^Fbi?@($+i`k)htlQKCGm!jK|rD&)TlL%}BUj1i3dJF+6r6v4=E@ObQu-~EV7y=^1U62ZtC zgFUf0ee&l)pNnAR^C0}6m&M6prLQ(1>P8J0%l{9=MH(WFM1<1_;h5`PGo{fSf~iMy zaSw2+{U1oITSWbiZr52Q)^C$dteX;>iS;J2Zc6Msuz4x?u@ZA$3ieT6Cn1}1^i>`O z8`-@2iJOv@M}OrpfUGR388GKt1~m5@&zM$t(F!Rh#i(R_LP{Qfd6i1C{11@ju`+%Z0>NMDIi zEAXC8Y_$@r05;`XpR!yVlvfkTCa>?5$CqG}*GBPavhvuZJpLuCT${xe-$z~y@oGtAomF9afui9aL7wxVxt7sIs~THsv~| zv|em%(>ks+-U6GnPKbw+E3tehmBv=Gp3Y8*T}{AB^R!8mEE|3m_Xc}%euNJMu$;@d z(HW)r4G&BppB4W|R=LlK&yZE_^Wxj!RLdPO=3zucSNwKY#=N)98uL)b6#Bp#^H9cA z0-JI_O<8VNS>BwQLN?`gm*vfA64>~XPW%H|d8RMRn^T6SVEK?iT!Sp1GKvS2=5}pHknZ@8 zwp&+4yvPr$%uG(ssUw2wp`pT7mvD&!OSFRLniQUyMgXBs@uxXdUvZV=G z?J`6*e9q%#OPqKkS+CuOD$V<3v>iS%DvoRgmJP$i-N>?OxOf>^HjWTqAM$8Lvsk`wagfC53+0;D;`OfjpM|#$g=q}aUxmmHeS33oNBuTj9pf? zcprT936Z$tqjpuSZ|D7CS(5vn|52Bvfb9m*Me=VuWRMw>tN&SH{wso^5I+g zuz@U})`=gG<>PvBR9moo-XQKuRvo?*FD9!_8^ssEo+3>sh&a3vAl;oNUe2-r9OzHr50iTQ7(QlV!t2*|3Q$n=Xm}Bg@9i;_@B9viWy$ zFS5#TMZAivGF=t_0rn&!olHo_*l=Aol&n)@$hx}LlZ`KbgyUsv zeQ`aq-uY@E8$KhqVzdp#d&#n?kvKzFuxxxsT#YQ7-xUues|@dnH;`4P_r-U}Dq~}D zL^s&JeX!e=9yK-Z1brZzxhi ze2uJjZz+BPPPN?wg&9$<_)vWI50T=J#O23=%LWPM0n|2?UvfV#ZT^d0) zbs4WZ3)uaiX|v53qcmB>sr3I!qQXA*)VP#Fxpc;}_y$J;AE; zRB;os`e2%P3fPl`Y)8B8)q93~I?My*<4o}tvV8th{Ftmd%o6A71y-Hn#ihxr<7{yy zvg$lXT%Ww3b)PG43r=HPa1q*6Zr(7wL61w0JATQ2Ta`_!%6P0cRdqFovc16C|(NoY)7`q<5D=1caQ5lP(BtB zKOxKKqT)OQz^X$raS&N`DlV=&s>8J9Oymh_+4vb?D>Q~;Z@)D(9kt1Pu- zQzAH|A6j=iLdefI(rZONLT42I96vh&(dGFC3JYi6c797q1#`(!2oYTJR-_KU&%^(} zSL|n!{UEa1XKt7Lk1ul2Ci{VsEiuq0`+<_J4mQcgD%qA`lWa>RJCm$yLn|eBkjFCw zcWZIRK{nYoN;U@UW#l~(0{#yloQ=E+!xeoTM3*NH3jRKCV6xgN*||`Z@NkGVnQ%Lk z@DE&)Ms0B^>>YUyiyrb^@fnhAy1kX|KUi*R+gs`88f?=YpmfWEO}d{b-TGvuJ5cG3 zw-3&TIDYIFn|9 zA<1c`ytLT5BGE~a=dg@lLUhO9brPMVMC)M#ljtNR+6`>#I$eo=4mOF-P@+GOmFP?* z_8*VO&iK24;>b9g=qx4L4y;7;P6*U>R^)cXpt`Pv=<<|+l3dr>O7;L0)wLAFSk`s6 zN%$_8q*B+wTguBK~CfzkkcQ9G$u2p*9 z@OY*BjrclQm(FjMZn;lw`s>6!!J6SU2&o_QSQokJ7h7j3TcJ#(@@?cvC^BX;mbpAf zp)|wE%q4Myj9CrEbj5dKZE*<)F6I^+A`2s7ZLx=2$ih2Nw^RMjSonlWs@H;miTfkt zK6ksW;W&4E++l0tewi3F%$m4gCe{R-+tDvF(RnN9kUZ=F*?4$Zp3MOp508kqkTn}e z<=GXoJUu4%4G(xY9}%5kBF7@1B269g*zgv%d%6XBla2yDi&Z zC(G75;t^nFxft=ttlN>b5tHc_h(=uxRUX`l>|oWKR6U2Gupx|f_hen6Q8^7YtnwESBHK!NqePiV+DrvSPE@RoET$61}<~e4~%ofEbq!ZY{ zn3*k#Pe>2IrX}-4rFcTh8^tH2{G+XxFGleRsV>-f`I7h}vb@U|#V4fcWVK{|@ma9a zd>Ii1F_HXHlaHoo$vRNva=xfUC~~>j82T6sCAlRFM)Aq#6)48nLgIE{6{{N#Ryhhr z-M8CJ;5KSW{*4lyq)?Pju$xLMSI59x`rfFUScKn6p(V4Qur7M#;sq=>E_&r+y0M5# zPc&uaq6chRvYc$JPF71s%C^2do&mU{#4E^paP-Tz>tsDxMvH^Sfn{rXaT~I1j}gxS z%jUvU@JTz`93Ax#l{b?wB@{|yD*mW^#{)K>z%t`rBvkoRKB_F#XRa7;K#{L8QT6P) z`&{Sg4uv-l^PpK#yR}DRm3g93NI0xb!T`Lqt@Be^nqy9 zjZjBZtrT^{sw*6IJJfkpD@Wb3>Itg4s{aOc1Jx>~^y$Y#Np*w*#eX*{@e91jQ1PET zWsCo=ik}Y~nBu>y;+F@T5o(%pgqo@L??X1VZ?0O82bt)kwts_S#8o(L$LS$oy8jcQp8im7#5aU?l`z0givle~=FUfdk4z*}Im z2%e@*)Eax55fF{q1!_&I?W2;cy4g{CL5-!_HtKJy{!Ue6KNhOmx}B+go{3P>7<*hi zKZ%N%hEI9pTIP<=_N%S@C#rlkEH{<^M3s*Po3S6N%Ey7t*ng_h&n0W@hpE)Zcsv7e z4;Q~M39M3%P$_GXRqB!AVPv(!DDgJ3T4l8O5m*<$P6%0fj)=O0ZdDm8O-8O#2UvAv zRPNIOwY{T`wd$y-2&+zU)GwiG{6|OCwdyvio;6U?!6sAEu`20xD5m7Qc?|IfsE zrhwHlwZJuO){kWz8}+R{O?`+)y#aM1)p1dWtvbq4??YWo^|PpdtojXAjeqcT zJk(JgZ(86il{Cj6O|T-$HPeoN)-$#VR;UT`d|{hlg_49%m z^D$u41M9@w$g1gj)$|%!HQyi(o(fh^d?#*AR?ln{&j!oFml5#^Cb}W&4*K?)@#mlK zxJl)^sO-O`P#QzYf@s|9qe7vmZ+^puX2%v#i&NbgRokkMse0m|B#-}Q)w0ku1g2VV z5&OsqZ1%0<8f1IJGA|5H#k7F$j2b4-Vl%J>IHNWRlXV6jQ>eh zejwP4|0$Jz7FpweTBZJl$1?!;uj0pKy&d$MN?BnBSZ^1d5%(pl)Mv$O$!djj;u~bO z%6YMOCRnX>LEIj!3&2LCBp=R1zI zRnA4VOsV{3mGe=bq*Pq90+*5tQ8Vqiw(?w_5>W7FYv3)ZOKOj6OlB?3x-5P|R{Q)e z&hsTWf%+A35LxYaRa}LvOU*TLL$KN{4kw$zlrKdUM}d`cJBUW*UnWVUdO7M9tInmW zwAVt-%ya%8)y%5L9d!>>*?c8xfK?05vTKi9^=i}%tHw}Ot6sM1HPfo^QAzbO6=>GX z{+sc*L#tW4T(r%a+0O_4IBZ~=HM5@&`t!i%GL_Ar;z2*VpAY)mA)8*!;pc9{&*>!pSFJ1`j`obK$YdfpH=#R8& zc}MMI)tCGYtlEmIXBw0c_O1FXzn?Eq#zQfESU~(0Ie|S>P`r+;J}xBQPgb877M~+; z;_*eqcfso0%Q)FNCYaxU!iG^~F2ay{3+e-^Mf~@y`VLi@`p~9Oz@Ha=qMje@s9EO( zEHCIUXVqoS&IO?6L}lHD{PnGRf~xv9!mcgs*RC1oK}q8hi<_(8pK~s5J9w&a$Cvrt zcCBAsTMo-j*ZS494Z-FTTS;Bp6KpQAmDRSB$hyQmw!2epP>;O96-1Ks0KsRjc{G zu<98{?QYfT{xw#8F2Syiv+AqO`x)=KtHOtsHe8R6V`b@V{_55Y+^#9{!1y zy!a2(YHz63HbOD2_@?-0vRbvK_#!!h=GGEFAnTG_Tbyk^SflWk*aKE`=9q^U|7@W* z{8MZgwILccAJl48-}JAx>QF~54z)4Wn*M`UUFoP*p?0TQ%m0^EPdjQ;s1vEy_CJqC zQ-c;=fb*(#heB1!-ZHIQi%Oc8Tr}^;{^AMtl6&^5ZQhU7yo0cTY2J_3ytBdPlKV-@ zOYT7R?iR?VcL%9gZ-Y(m4i<+j1gqDEsMp>hs~6+MUyzZV%RN+_L{=| z{03RGFkBo5R_``LMlxcEzuc98P1_+FwXId-{B@u{bIJV}%3|6()ZfXjyY8$TZP$J3 zA8pm=7TaBCSaq0xp;i5ky4b42{kyFiOVzU%O7bOlr21?e6w`;J#B<3BG-kB;8?yR% zjQB^gF1cgHXUMwbjuYPot8eqo$7=^BIMV+XYOVe$v;<*DeHrQrs^k0}t=f>PO!Y#Q zsiXX(tUAz9D_M24e}Pq(I6J=u^(J>7R&Bz*qwc;6MjmbCS zBVbiv3{qAFR{AquPtmwjp=9x4#})pPP*m6KD{STB?YdR|D$Y9XxZEm<{`XTVo2|0i z-y@~+lU3IE$E8$$waQxmf|SY)D7tKa)`zF5&tuFIkUS-c4W!268qE>yCsz&Qot8Ou)6-y=6TS8#C&ifM=<1I#1#T~!& zh8?c+8m_U}zzo-U4cAhzxg}glc}uve+1dx$%+@u{k}DC`GXnQ@aWq-I{)c)!maJL$ zQ~Whqv+|et3|X`Ex47VHux9Os_&u^_@uqk(S+n|&_$RVv`Ib1tn!s$`M8-1t4}aUg z0w&jhXo~yLs(<>2Kz-(xk#z}P&9f=~^3S&Gx;pC$L)ET-`!`v2f}@67^@jhXRW~|n zWvkxw-?!@Tj#|g6|M*}0I}mTKwKm>nR=wqqv}$Flo;WCYi52MoJL>=TP|SSX6%QmQ zut@jBlgOH{`{IRU&EEs@CbH)9p*V@Wi|hXtUncJ-KN3F#Yocx-m<}}Wj{lSmv&1(D zQ|fwgJ7s;TJbsClh=&mU#g1&;c%Rqy*7TJ?~lMp^ZN zzq?hRI%*B8KJ-tpYUsC!O7qs(s{fjKYeFTBTNxg}@Rvg%?-J!{pH(K-JKtUcnWH>~<{bhuSr-`Sm?TD4Sk9jk^q zYL4ZBs7gn7vT9>T5fu!d?Yf|=%`6h_fidw9%I$Vj(QU6IjUjNi>w;F$?kj)>I16b(R-}= zo}*@4ftTbFP<_!Ctvbw6Uxpe)H6q%L0nw-@Qq}w6EudDTS~gnBDJp5+;xKe=qjRpd zx47~5?9jE<(52sOhpw%Lt|Zvp;yP>SoDVs4(agOD+05KWnz8<1GjmeBM58vfYWL_?P@lQQ@h@RCrola;PoAA9R0wm;~aIXRr^H0bT^RAI;x&?P?B$P{nY>Gp_uvTFTO`k zph*M7&u<57zCIBbCu{x&iv48G=OA%y@-D6)EN(&8EpCXo7g+OFZw+40)4YDsTWpxK zAR4tf)X`LjM4z_m5vnR!8>lK+|LBKSz2&IAtvVn&A39jQUu=h6JKUcHqmR_*Vo^Q}54x`$O4Qq?VPgH;Ecc{@zye{XSbB!6eToXb5cI%zEurCsqg?%Qdb zrD=PD<>nSQOVd_#C!8F|L%-6ry#hA3xUZutJ?C-_AnO*F5PiRb%e8>VGXVE|@dmQS zZ9()M{P-By^AM*m4ltL*MbQi*&o0JYfXDpr7xhy{zb-oV8@FpPj&sMSdtjqqr|7F= z6BGS9Mc)!^qTj6Ohk{M?TNM2kvZCLrXrJ(S?2O+AiF56?(QjAuKCtIAoIW3pG12c- z^o=2;VLC2xNzv!9ZYB4Q|IP_JNnsDcY7=&n!k)|1%JgFjdmGqyWViZ{#9WwhmfY<2>h?;iC8&Af%kl9{r*dVAI5qU_+JYA zHcza;Z!7RT-`l|NDDZk@1%6k7P6Qjj?}-!03jDqT-vRb)#p#p%eyG5&LrBH%z~|;N zm(RJ*{w0c9|JtxKm*;a_t{-gJnalGzt}NJuovl2d;~IdC-`UHv$;Xowc8>CF@(ny5 z=XbetiZ7CN56M-Y4eZ`))5tCMgFTfIj{cbtJs0FH&!(To1NB_+qIfqr)p`UHD^otv zNzC)eCRRp?oxyrjk1|T^3HMh$!jxFiA8lgcO6&u&67wmM5nz*8g!p^1>QPpSTp}yc za^jNvkl0y-<3-pektik72ZFi4`^B@tY19jC_ImmHcn~um7JcZX^}5nZ#A=h)>q;w$ zyDP1?l-5nKsaGAP6}sQ1^|sP@A8gX9EB=(MH0mjhd1R$oUwj1Y8IEv9FfG-qq0%Vx z6Ao0p8j0(I)2tT~>sY@22K&kNLyv8}Ix4Z2SZ@;RsKkbHeNJzG3OJN zfy;2<6HKGZyS{U~&hXsv*Z#9Oe3;V?H6vnD1o7LLQHu@sSDf6|xfDq(n0w0?UZa;?`stwMCprmXTYHFBd8d0uILPnHcA#F>wRWz$7* zO|opfB<=8f})S^aWNd>ou+zrdKRG4(g&50uf% z_;PM*Ox76QsIFtZF(zvaZ&c46!~QZRM+~nIAz;%lIb(REYDbnaxng*un#AL=GyZL1 z@gcGj%@cD6KfXzp5qZURkAr2@i{e>i8TpdX$;|72s6*CGgn;Urg~WZdbVaWeh$CX8Oe^Tef4hvBf7_&T)6y;+HM1lh&4K z*;1J-TguCZ_F!X6jCe9xui+{v%|tTn#ivEZL8rj7p^~@-SvFM`Pb165D&hlV+5Cz) z!)e&o4e3n7p5}E+HQ7)Rf_Yt2UEF~zn_d-9Bg@9u#JkC|xrX=_S^f69xcIM*t$Bg@#%GV(l+ zM~*Ic7qRCzu#EUfMpPrqsIKC9WEt5_{L&e)jP5ROO;#a#i1(9KsGj2dXJPCdq%)Mp z%81@FqB{g*)W_oCWEt5!WEuIJ_#|0IpAnb7 z3|1k|iYJg&sB_}eU{A!(XZ!VnjEMXl2g<06;y1}M@{+h4Sw>$LPbaGozl*n#H?c#m zh_8TCxxNN|tMoL+wF~b(qQLI>;4IeGr?T~5tTwhjm8}J@V0YP?u>x;96~V^VOci+B z=|h&SnJe(N^EHo`ty#ne$a)VfYlS=b`5$DxNA{ff{i|Tv^t|{qSvI~Pj=lz#&Dq2s zkyVE5;`wBiDTi54RvB}Ob6d0+t6 zo5ED7z~_N4xxWhYnhLWKYzk9Dg}FyoVP01uO8klA5dl6aBW^{OQE$qqII@haDZW6K z(Y3^{{smScYKu3JRj9Yb#s3DYkaff#kyYro#T&_Lgu3F)H&B>|NOv1zGDg*xQ7s@C zBO8c&lVx;6@o2IN(MTLmR-xVzCz4gjcg4raD)f8eC*=J!;(c+cn@(Z=_xjGV;QHRH zLeB5;MFAX!zYqDmElV$zB?hZaS$e4~jlrfY{Z*EJU{jU>D$6%ymE{wa;T(@wSq6%q z{|79a2Fa#ivTPhI?n0K$L&U4dDnp$3SF*}9RGjq|SY`ZFT$ije4--!zs||*WPk=rB zk!}Kd%-A$iHWj&z17+hVaRga5j~2g1RvE^K-y^F`W5pfG3ABBjco2CO`7`k(vgT#H zcmX)gc|l=zREYi2&daSAY+-h&FyCRlDa;NP<|Oymy!@cTJOrD<>{Vg>cWhyPR3T!) zrZD@&Uz26jei^l$EF*ssd+vf|^a1gwWEJ9P@dL67bx<6853E8aiC2(S=wHPDlGO-@ z#Bbh5VKyP%|MjjP^LzdCU#Cypq#BuSjWEJX!_$FC}JSooq0IWiv5?3Q@ zUQUZUfd4=D7yDgjyvcmOLef5bZHl#x56f=La$jZn1glM1?yD@bxVy^opUSccY|8RP zWw}q*ygXGIJP&a^c6Pa46?wmDOjcRk74P83^T6JX_#NMUgrMI7x+@;Zmd;i92;eV> z9xIf5gr5}R7rO0F((Tn-_u2ksf-XfVP@O^Z%;pCUhazBv2F%4jBl62nwPsG?*S{Yg)uL8McxArfQ@4)EGCO+wup=+uB0{+paL%rqOe_ z6ogjH`ICL?<*S_5wouvj6E-lmh03-+!N#_7vh9WctZk99ttMGL7bTl|fsJi`@e;CZ zi2tB-yq)kF~9}Y|G%z5U{PaYOOX{vd4gu>_hj8#jo~nDr zkL{^yKrG51CZCFjCE_Q6Q~f{Iz5`6^;(mYkSbFiKD9Cc26v2jvq9V8G2`Cs%+`H2| zEQ#1+S42=$S`-x<0lP*$uy=`y4a*sgB{7P<$5T;JEU4HE|M&fr`OfVv7yr-m+voY@ zolkpb<}>r1o!wi>!HB?1miAq^o+86>BRAp^Uq&U#q`N7}JWVs#`aIaeo;EW7tRE(4 z_wt23O%`?$C^nvh?$f8q!afRJ7xpY!*mt4p!k#S)+b`n_dyXvRc<8#Y=Zbz7by>*s zWFdd1E(<+R^vbqYtEm{$_nhf@BNz3wWjPtnG8&T^dzjVgazx-I)t(K8QhfcNo;UJ+ zXSj_FG$srlW(@yPhW?izy9!jgkn?3BSHhvq41Z{m@s&l zG5kRp`X7bt3qhsJc)Kj)QSj+9-y!-e=rY*p2%gKXZXY=a1(anypIy#}|#%Q~WqFY8KK#)F{ivVJQ1JnHgs?K4@%SE$R!xz9!K)D^lc^B1D;LtVDPD$(ab zmr9Pokn^m=XCudNV9Wj{oMkj7_3$vO$4`jxWzU1*Ffx2T@@!}5)(s3aCJY{C3_}s& z41WZ}Y%+W?@)>8?i3~I*3?60-2Sg0VfZ7X3r&7a%G9jp(U$te{tcY%z!O)yT_yC>y|8Mq@G* zhAo4|hB6WnUXI(~T0w@dN4^RMy(iF+WHY40@Q}TCl>Go)<#44}kL-m_sM$0m*$k;l zvX9bic`TlUYXY;svB!c+l1cZZBy*N#uJydL2cv7{#25UH?1&Bh!RT7a&xluoLLZE- zmHdqO5OjSodQ|c=;@i;m!RT4Z&xn0W{lVx}$q&?Hq3eUOp6I7j@5yypzj8I;d+PEa z^cH>ey3pl8=_C3a>hd6MAo{b=<-s@|L!OJNg6DvKwxzmu$2!uORK&w<9k)P)uj70$ zEF?qk%4?jViVQR+3?60-6C;Kz!EhfL`c!`449Am!#)QGcjNyWa;dU@ABf|!jgUf6d z*OP(9gu%m%;R$8v|1`3X$8>a~XDj)Y!gBcZLFgy?chs*zP`XU?PCcN@_ct4g-VeGI z^lgx>;83!acluB&;4Gst8H$J5Q1XcIg02KZY8x>0t6T*J-P$xH*&brq$41%TBfB@V z%PNOr6KXaMNw$Yr_NkgJ4@TP;@o|sY8&+y2l_b;MmU)q8w(@>~Yrxi(^FjKKykGpK zzdsgR%VTjD2=uYoS{{oRq3dI@y*w6QL)XV*q&yZ|_VmZ1QXYeSq3dIj6a5V8vdu^7 zHm5F+!49HldO?@RWJl3QQt!!CtrC47=(39UV94WHhf$T&%56iP3}+dQNj*Hw>M;)y zzKV~5VImoJsC>W~7LkF*gu%m%VM)aB5*VhDVaLj!o#81m(3miIm@&K+F?;}q`DCc7 z++ib|#TR6tF=6m9V`#IU%%XqWm(r< z(f5EZ1+4(tjU3A8%BOuO2f|rKV=@$mJq3#mZ+hZH)_M{=nW=Lw= zki96%-W{&qaHYpq?i{jdNU|9+BFVm6v*oea8?HRFceclZN|H(UVM*qbn%V061s;q; zDkr_{?-!R3@(1G(c`!Zzg+3UE$b->#ebiO%$4AP8F$lUo7)Qy2aR7C>A0I6b!nurR z>C(rD{vYbH(T|mlUez1AJP4CSKbyKdD94HZ40U;sCX2paA6v&uFyz^+#IcnN2H2L` z3(hhclZtqlt>aWg_&QzJHW7*498XW8far!N(LGe z1`jiaHzS5dFg!(u$(8la@HrW1Oc*@O7`kns55}9wPTnu3$VT5BK7A0TioPRtdA~S8 z^cw2&esQAchd`GH;|q{AaVS$N-}9kNgR_jrWGEhHL%9?YUeI5_@I4u(R+eKM>4QN- zlIIRb1m-| z_H&qXDi?xuF`ne~6<^{%ebt}CoFk9LPax38;v9J_`u0Ut<*`^Gk3}VPeJswG$Kpil z@>pCTkHOW9XW`Np>SIBDFX|V`Ht&^%E`JWXSoEW*%VThf=$BEK$K+Dc|4CgQqsv79 zlDa%*my6!7pRMv^m{Jw%bW!C~8{3xM70xmmlX`iW)$4FX;3fNH85kyz;o{0pgNUEcE+iQZvDTl5-q zwv0o)qVgdhYJWJ(XiSF6uvM_wP)8%e7ySUZI*b6rm6bn%K_6`zl5Bm%dv71Tq~Hp$c_~%NhaMXd@8az-=>*seZRGX<&nxfem=EO4wl~y^@HUR zIavM;3O!gJk%MI=bUj%9DF;jEaz9v}kb`9$bvam`l!Ih4bUj#}68$dfau7T%2f@Z0 zL6?K#U!qT@0F%Pqfy@3edW3$0fL56=-9^?$4k%7j9!NZK9>wtveJTQzW!@n!9bB1#G z%Vm!CnFw7^zvz13W!~JBSF=6m9V|ZN|`oE9thfz{J2$sn~@Ev@5P&_Ysr-9JrAbCOb ze$?flc~SHV>UV)8{gUWos4u1dvgmctWzoC6j>|NMx~y`&Eo`!f!&ydSGE@(~dzmYzGUKB-7oNxmq(@ zxv$_F|5@cKkgmX&I_WDGZRN+xXL77`ALPf%XL77;1znGoujN>&fv)$J)pD%Nqb|qF zH*${f$UtMl z;9lm@s&lG5kGZ*clA7$?#+44iz?w$H_or!r)=X@LI%B z2Zl?@@Kfb%XIM!F8WRQ&Gln%0!=YeUOopE;|KSYXhk${`gu%m%VPiz#)&ERn<1ck~ z4E!p`!1nOzF|kJU-KonllFIR`tNp3VF_RX3GIhDHl!$&hb-Ay!5&bggaws&Sv!^)J zUn`FuX63pK&N3R4p)za*EH>2tAi@{@Ik-~Tf9W-qw}3$(P8yPIhLpo%*`G$)O>m81 zb}ILA$fhC5X2^sjdrg%6C0vu3oz4x$W2k-8kYqDtev;jNlVs#2Z{kR0c1iA#kWE99 z&5);(>_M6>$4U>lnwZ@tr~Oh%GU@(4$sD1Xt=?B~uxycQddu%CKW^&>%N99)pIiru zjpv~3h?%lTS$M2J0pe_f?HaUKu{0rl`Z0T)9-*Hpuau95n zTMhG_)a9TUA^OkMPtbI9wYjD&}GT4LT3v()E#n9_)x!rvy8@Ms2*lR zU2kYI*;~PI9~pMcW$-BILq9uCgf z+*j=9?EB_s{}(rYxvyN5^J8USIaV4#pvTI-a;!W8U5}LmB^hW;7(C1v9*P(q0>eZy9GZK^8J3ZO#)QGcjA2#8@GKank>Rjhx9x2f zZMFgfjR}K?8N&cX_$=N5!+bIvp36JKwq&3&Vel|xsEZg@f#F6n9FaTU84f1{jR}K? z8N*o-LmGbzY9zyvxtE;b3Np}`FnE|TJQy)_2g7S*I4ZZ^NUOthWS}u&@GxWeLK*sR zh3pDEl=}1OW8|pnx-~Y=W2jR4SkX77E=SoU(Z^AjqwYA-51=kb;bhTIp)N<|@uFWu z{cq%(BKjTF<<2!#^rxZAwmJrbS;eUwlY7^v@;;npG$vDFSce_Lt*Om$SyK6V>kPO$ z>c|IF+R@nGjlv*5r=|rL2fugqR|Xlw8E}<@JUuCQfHRcQkYqC?%HAf*{wrJ~n0;KX zA!O5#jGiGAV6lZ5A7x(w*Cb|7&b=M7X-KjeGC#@QH_E;Vt{a(se6BB!GJRX1A<1UQ zQ%UwQQT9D>H8FciZtsvyLz2x9{$9sM{uj-bqxmtodc&2T>PIt_B$MunB=bVeTN;Z~+-;Oc*@O819M~eg(sPGF+d##TlL; z1C0rThZ)0%5yLv~VmFiFhTLb)@B=DeqJ@;eCrXk7p5X*iz%6H8} z4`cS?+zBC@h9uiVEPHvB{VB3%GyCtkyF)e&Nw$Yr_IFYC56Hfh*>~o?3fVLy*&brq zohqf~axk~UKZn1V*>~B&OeM*5w`KOz%vSEq_$dBdt`Vdw+JN+mr^orR{G1%il_1b# z`8he3_l2&<^2>58p8{Qv$Ue2h#tB z=<}${G5e_P?ux+ZP7c8f-cASe?=clU5@#8M4w4r-UgaPzYn_X-H$Ql zr%<}|>$&M;Z1;Z!XBmx2Jw43o*=~nq_w)alpot7`Dbrw0|Gp zoRHzoTxzV1p^6MNCJY{C40}cly}?kr6Bypgjdq4Z$v|Vm;91DH?c5w^ zm`4U069x}6hN~lnkzlAI!+IKvV$(3miIm@z!9406e<1q1J2>34EncD6da1%H2c z2#Z|w++r-NqH*j8mI)k3Q|=GWvd)ee2aU-%Jj@sdAOf%c(~r^!=#IQT&1E$5NN0`a{uAr7lPLN1|U${coJ;3ej(-E^h@Ni~cZl*_=;e zFq1fy_i}x9v4Xq+XBmyjR2ViN7Msdfh`>u2UV-aIGQ6Lw2ZP-mn`JZPsU&;dswDdp zxSE)~Jar15wdAWvKew?lKsahdn>panY|)+UdW~)$!17Xl08YY zfyJ)8%O;`gNQLf6B2;3$4i+HWU6oCl5K_oU;Y>*2hy=x0-x!*cMb)!0eDP~V9A zb%^M@jfO6V?Ixlxpe~2;rlP+{T@LHbMDH~Qx*X=4i(XItK=N%N`eoGR&0whLZ$g*d z`zoe91f@z39@S@8+yDK>@=$^?si=q9{vU-1yoBLBFjSFY$f$jtAx{Px69x}6hDi~_ z7hsq`hD}CY=?tflfyRWv!;ImYh#~b6wka7l9rcbg+(QN$69x}6hF2nnb-^%~44aMG z=yz6!kI6t|!r)=X&~fLa4*kKfkPMrTI>;Ha@R!k;FnE|T% zO#K>etgS@C_7KayBg%dO*%i#*del)Nn}#IYLoE9rQT98?9?$IIqizn_G$h#`V%aZ8 z*`FeNBD1#{wIXEGkYsy^Wv_^`e?ay$W^X%cV;q87H5!s^53%f@G+Xb?EAT$a?CnNr zCY2GFRdM{mN9}*W)PoN{cK<0SO*&-%KOcV7 zltU&TpGsfQ;Sxl(ZL@HF{I?A}q&w~hirdf_#>~x8^(1xj0aK#Xx=}AkD*Nkm1)8b! zy6Hh3dUS5np>KzE)7{&Zg0o~`s&nTZU`nOhte0xjVPxmZ&b#(Vr84Wl&PLl_>A`){ zXtZmaqTaqox=pvvof$`Khpr)ML}$z^o!+$v?VUD4^p>!625UEG?b0Kiq;?&e*8T?f z*|kTxuyt!2*ixx=){lZqlYa28o(_+~x+gT8R8{XwM$346BwQt!Xium%4ywHp3aaaM zMs2#c(n%qi$?ds|EcrYr{e#*v-g70y-~uAW&Rs4vNGj(v%5xqkSNjRoW*nbVig$bblO=Fe*&EoOVuz3`L8E=6;SW)Y8Xr!WCTPA8M zRgny5$37+S4wLP{i#cE0K}u2!1o3;dR613SD+I5AY~p{zYiqO+nQ=GU?!+x5RSHR` zYGPAAG4Wp^kQbvifZ!&m22H~BQXNv0QWvH>%+5AYTMtqK3y}$E&jQGcsW(A5Xd?a} z5kOc^xZTWm0Pj*WVTqXm@*=}^5Ke%h<`0uO8n&qr%%3n#nt8&RY9*YdRsy?4tW!m0 zI~<B&!64)(bohqut>+rrWfwcs(6;^_sy(=Mg1coG)pvE4GSAu^TIS0Z@5a&Tq3Br6c zF92SsX2Qj02Bo~naHiTa3^jkK#P4C-3xX*TCP=e}aJX6tN2-;;ZV~HLQ6+YTr&heR z1hTcmj+h+n33gU3A$0_X@cGcyr^X(NS0Wi){s0S%p0WLi6Ey1Hz3#`~`xILHO0oYk+NVbAp+WfiT)%WcXG? zGYmCp|=UOxK!sVx)v zVbRy)@IM2=IuKrzW}bk5_=#2m{_!F-^Mpajgw?5{Q_f#5r6<8dRrYv%WWAE=q| zk(qt4WOz+&8HSo4Eqz^y)^!l92jNC()({?0E8#)464)(bohn+!%iy_2ytM?f6~2wJ zvqch8M_@?uHb#v-_%qr3YO@NSUEAswCGHMEB?x~o^B%xjH52wSv(J8=9T1DzusUt8X*%Q>*L-9%^gUerNfzj1w8BCkC(>f7{ zLQp3{g_(x|hpU;et(m<}WEiZr3`5Ny>hu}>-#{>7!uQh56FMRqRzhcK<_YW;R;P;U z^f7Y2mh@Tz*$Q_IJNr^X>Ie);b__N4P`pmb;A+-bV03m>A@6hu_Y?6(2wc z?@}}2ZZmtG$goIl8HSoa)M+AYhe0r5!jaO<6HZbqVWwIM>=v<371e1!c>XNjS_0XM zz0*t$4}xhC4w7b`FjK9B*=i-6 zrBp=Kgnt4KRWWh?~NXtg?3w0up-`9#ud31lmL#M#*j38^D6q~$Fq8Ai>zq3>|Z z$-{I4g!3gXg5a)CxZ2Fu0IyRs;d(QBMab|swPhG;{!o$qV4DbOiz~~pK@Dsk48eOH z;V4Kue8Vv*m2F`ASV((l<;UaGEENvQ1H4O8Do2fT@GW52K<;a2>ExCHC4mUGSrP?X zD`Z}0r(#j@EDT5oB9CwqA4bQ}DLxYFYcU4&W zNGq(iR>=I>bSgfGT45*h2q*DjluCus!G$HAQnRxo28D$zMQMI#r6cYJ!Sl2`phla{ z#mHSCsC~xWY`cF0__C0;Sa)n$HaCJq?}3b{5L39n)3il%6O%TEa98MX8>nsq;RT+^ z476u@*At;Ph;4!3LbS1vghgh)8hDMG3D=rAX84=hG7L3;nB0-D9SyO`u{jwMO^y-M z#FQt@gtWmB8`wBq?cP~yp{F(vWhbQL%!wz9yM{pGxCn)z$`sD5#Ry+5DGLO@K^rw9 zd~4?KfZwZ`@PnCs*ko9xwhTkfA8ND|wuc~ABR2m5iE6}%r^J*eyaY9PBJdzJ6Am`BcT0wPwPhG;{!rGQu$4pbR1&s?B&Q0stsvo4!ME4cw^v(w*g!n= zuz6=2z^-JqG1*oF`OXoOi3RtVn9OZX<_tZXpDvx&tl6MyVCZrZy1Wg-3K5q9Qi}RzK6dP z{GcRMK$5EfwXGpqFkB9>eW-7*HWW;4-r28#tU4y!iaW0%CKC&`R7~bJCnLi~kp8lz z(9wk@-<@9a-OBXpmFWz|JEBY)so6UwdwLS$KZ39t-vey)HJO+BsCE8uA-zHW=;+_!PZV7vtxeho%&4j(p?BgcGAJmp%sQE+1yTDco zvAY+WJt25IB5Vlps}r;tg@f_{?~;_tQSBVbB05W0MBKfc2sYeqQQPQtTZGJS zR!)`Ny`0D+d_+Es=&7z6ShX?kUxP<%98SlH826bFZeHS@5EPqmmznPd-lJy1y=L}) z$Z)ILG7L3;DE3jXO@dgl*_;AFu?aIEUQ4!TLqf5sa8MrLU6N8cYMdiEKb$3;A1JI7 zX|eHGN5w8e<{uQCD)}hkL>}QI@?jMDDA9<){s>`(i9bQ`sQ*k;S7|y4Bfq5?$ELg4 zcK^TNdj?_`95$baM2`+5n#2@txHP@p+{C0;Akl?|>gy2R^N7rdFL(GYNNP_ACqdjx zMqW#(Gjly~f|?0?o7o3XhP>J`3^jk4TwmDwL2Pnt_J>51W5f_KMQ(4ujYm5Vx3`JlYJjk;#Dx%kZ~!ba^VPs> z)J(Y6%sx{x{7r2chMGT=^+?!`hFDqIoD7M|%7|%V$`fWn^n(K$r>osNYc2HD=ArC_ zblgzHlf_*_U=Q)$DhySoP@}~N|4>pE2zKno;nx#7L0G!Zz#eKQ^fa>%n+zpt%P`dZ zp+=9xzYKz>lJEv3IlHO74GCvAt|Qc!tF6Tw@V{VJvf7wT-+*H>f3uCr+~y;9hUoJ% z&+zDWTaNimu=x^CfuK5s>1Lh*JWb7nIcD}g$S_518HSoaRA)GBRS;B%usek3p}c1` zP}>92$t|c3bq)o#7S$OEyOPz$WLlk=%qtO-xy?uJ45i-rg(U^mVZ^SGmJzhpLGWcL zf#YqD@k$rYKOe@AAlzcak0E$(B&;;^r@*h&OjvE^nBjf3Wf*GyP}^%^y9a{Dk?=4i zc_X9tC?vd*p|;eYR9lOS@XfF*S#?aN7vY%9FTF9D+kE8C&?mYG|E<|YI9wr8>)>|^ z5SD2&@MLQ{75#^+Efe`e5qiV7DFhpgPz6aIKWbwj@#9B*SGBd+U}dl?S#3X*-&qRuzJK-#9c>t)y%H}-%vB* zO*8u_$*@dq8HSoa)c0K2=0ofP#^!|(yw4C8L3qEKjPG*Uz7~QfLBGqT!a;d}cS%a+ zsCJIzOmLQPCg8H=M6k8E?G_>9T^6^rFd*J`d234tB9HJ9U5*i51>q#4uNOHwx;P^_ zu{F54X;;R;NJgYp3Hl9b9(?HtKN<1FE!!3sDLY%Nxx2$_GHaH{0BEY*CaL%ghbCNBMuW&o^T9Au1Rc6Rl9fATIl5Fq3nco zye1LV9qv90VOlQk1%e--jfoRJH1kKm6>27YY-S$|8Jg6VVW|1T#BYJ^Hi%7}%{w8{ z#2Im)nDT_jATn__{-t*BthLZ5n}s9b> zyRL2#;&u>JiZH^=+XHt}GhwuuV}`BNmSL#*L#2K~55GXHQf!tWEUFYEI*2Jx=mn8V zv5{4~ch*{HpXQ;RpsoY43A4GbM1)Fl80?UhA~FQS^2mZp72(q!179Bb=Lz2e!NtN? zPx!l;?*uMUGvOXH`}D|gliD&2HGin(!LUt&;4Po<7f5n?QJVt^rx)%$)Xz~{i?{qE zU{|u*m`vaDV={kxkICHTBR>ITr$9Q(zO=8BX_yJ=h?A`F+hv%U6HYTHzyf$$!2&cQ zd<}%B8L@wN7NVXo07COX;9xZqhM3t0Nrt{^%P`dZp}a4_-vmK<3135!@>2U25|@|y zFKTO1-Zx-Zvf7wT%Nvt$YyKxsbT-)aR+KMcw}Z zyOPz$WLo!_%xfHzxy?uZXX~ghcJSK1jty_O?2ZYc=$;*wsuBKN58bW52TriIcS!$O zwPhlIDAjB5e*!_N2z?Qnl!{szBrX;8fof|}s{aPE+L%mB6_a^cVlub+$iD^Idg!Rt zQZay|>6<$Jf7g>^B5SCpcY%63Q95-<;Q-27Su1{+U}|qjSu0~;9Ah}vX!RySJrBaO zhIpU2>j?Lo`2pZR)J%BH%sxmm+^Mzq|$3<>M*@zF{wga0Q8SAw`P{)26N_#h01&^!dVshSC!nb`+HhH|xK7;65o5^urZ z1hJK1b2$VnLHH8FLi6Jv+p8hr;~y0c$^*PhQYuHab0i=CoF)GF=S0Om{uLo(o%!+4 zsgjR>PUI0jqE9fQ&mr>hFZt^RM@Luq_~&ua$G-~HY>L&CI2D585Kb`jiNI-UCY)qu z@0<*i)RtkW`NIlS!Zr$mH!A)zh0W2BXcsVIyqNNYT8P{n+1N+z-dSs*_02A4~Z(ph)czkCtL-QO0jXB+P$;ZLa%NfdO1`zh0?HJ_Q28*3*5_K zTCbNrpv3hd*foUSX6^&rNX>-)X7=Hcp}X2L3^jkK#hdWI4Y69V`5q*y1tV67DNpzY zBDG-SXSI80t%d&3JoFQ&UqEc}+5A!>LTNY*cF58Y8G>PXWWlZ}!lyk3z6#9#Fslyn z90)GNgmcY&9`FJ+6D~BfPmc_9)RtkW`9m$o!j^~Nwn5krlDu_L+aD6%I`Dae`k&R- z;n9OZH@;Z?14dLCl;LB^0(;ePEJT}?_3*mnQ!uJW{FA$WD z@T-~E0NdcdsD+u3fiT)%WcXG?GYmCLHX#P zp|(uq59J#I-$)3`N7xgRl#g0HBrYHIKdP-o`G&%-WVJDwmMy#{)!~x>dtqFtqbEfbnh*ak5N@h&_z&NEL*flae_OR>B7dmRjqpDJL4^o!L6Qnl zdj}F%i24U=Yf+)wVOO%+m`p1alX*2_GPik!o&edakYW|0oqRo03y#2Vgw|3&j)5$p zeol${IRk2SL}8D;TCNFi@=SRhvVO5n89*mX6D?0UO24};3GpNdE|`Rq&3p>*R5cS$ zGqVqh49BZ2!%*{w1sn$3b`ZS%5k^D&>dyAg5YAuj_Eb0u5AZ%VhfO)Eor9Y||90gp z+yr77kZEut*k-w{6*9lMJ5_SGcOs8)5+BAo-f6q4-3DgIC%;^tk0IX=;a(?x2ti>9 zADMXt@Dnu?R+`znAVZVdG7L3;DC{EGZh)Y$ggYQ!H@5GDgu+tcC_KRXxB@oisBsQ0 zEbrIOqJ`xjSTYSxq=i*mD`fsd7^g~pD&s^R;Uqo`{@`LO{+4e5{xeQ}t-@e;$3IoU zk`n&_K}iXDGgkv^)lAsS%rV1wwPhG;{!mi>Ll_+(C@G;6q;2ZN)K>kjN^!q zg(SxjwGAOGnEq%h(?ETI+Ge`Vhf{>i_nA}qPAmyT9^oWD4DLkfKz3qPGUSQq{eFn- zMBq{g%0_s|%nt+qp=QG4X7(<~utaSchMGT=Z8B`rASfH*WJp2Tjy5w+9(vD$XxX^W zsGSSZvgw|pK3{DpTl0NZgv@u5Q~5qCX>cNs@HzP~xX6SgyR%&@82G7L3;DA;@GVFd&QBYXlWDA?O(#y+F>S4gtYsHH(0?=$Lc z)z)I46(RFot|axzYHLx+B4l1Cr%Ed6 zL>}RD@?q%Klizl_>k#WZs^MaoK8LV|#4jM2En$_JzXX1zX2REIc2Y8YqP7e}%^zy` zFlvLz;)OSJL%BQQCd?YubNsj-#op!TW)8 zdJCs_mPhtg5EkQB;1X-c{_EA2iTt4i2f#NAf&vmwhsYLT;}*4hTC_#}1kY6Q<_V`l zq#A6Tt9BniYoTW~4?Pkp>55jv`)Rcr&ahsQdh(u35>6BT7A2*hJ{?rpZH+K}1z~}S z8}?Imf!nl}OtP%~kmnY{vJ=%cm_L(LzS;Cc98h2YsItbq7!j_s9@aNVQAQFws& z@eFLrQSBT&3-uoDEIbSS&g?|6wYWzYA@h^Ysr)QVH#m_;_=w)Zh~9(XWA<#krr`!n z^#cgM*@`aI95ACfNg1A};;i%(`EdzY!Y9-U6mmZ+H1RA5mW6P(na=^9uV%spX7&M+ z;WV{n7;65oEIYwA4uWMN)IeBueqqk`UXbvGITen=1H6wMY|2sX9K68jvN#LBF!yC~ zB7R}+wpPekbY8Taip#<)Rl326JiA$FUjhb zCuSfhIia1I+XFkQnb6tH-Z>e5B@51AhMGT={7(4pgP`Pu2OtIS`L~%FXA!+GK$7=- zYA-|L_k8NFtF6U*ei1U?#ZKk>yrjX2Ji_PnPmuo`;`X?sK`% zdn)$1r?lATr6|);Rz~765EPv-$;`(Ak5@Bcs+oO&WH?N18HSoa6um!eLm((RVN*y! z(fgShMW;6hN&f6ZZAVD*XP-<1^)YH|QS>5YzDJ$PcX3G|@(7>PHXt7X;V!O9b}>gs z7k9B#*yEyIJRAPy5FXsb4n=VWM7TZWDB*HQ zK|#+mGYU%Y-H>D#Q@a-u?_%mp)z+e*MaX=QI#sfZoya46PS=6_7D%*p(cr%m)DvQ8VFCGy9myu#eg@3^jjP zhwiZThF~2C8$b%yp{tp(4)hL%BpaLBFi5S)sGzseM5Z0J@hq!AAi_QFZ;GJqF++}7T4;gM&TZWg_% z+gT7)knmTCTp!tB7qEL8n$CI(JZFkGPdFDM*GD!kRQqoUUC=y~15i`AyqyXYd*Fu- zVu8C6rfy|gpDb{YwY_ut*Hc?2@`u?!5C2CHOpWjjL}t%MU*y5=Y0>PTh4%vp7K-o{ zL}t&%&uaGpv=;h9^H2_eCi&93;FE;Yy$L_NWI2dR5vo;zAp&ij{+Q zviC?Wn6lOnR=Xj9<6*6cOv3Tyxp<_e_^`Y$`S!kf>G`38DXhnOMY^M(J{^5niG?t= z-B34XPv8dD_8#f)sF%24G3#8{}^@_8(~Dzsv5g|AF?e zqszX#ujIQ_gC~`vOtY+f^MDsyJNBQcwoK#?r5p}l6$GUuGtn(m~6u_UoEm%J`GYXse+JGqn(@dB97oow8Rs^fT0!iTt5Z z+rU=|L7@m^AO(f0Ff$58@1BsPP}J%naiOUHQEe>>RfNpT;8aPWoX8_m_VQtHBQ-CS z)CYebP3p4{18K97ZloT-4Xo{4^mkTUCh~{+EP;P1gc}L)2&AAsi_MI;7kXcZXnpWq zYy-8oAX*=OJDX{s{+`-eTg{HR-k`$WS-jKM^)c03g zi$WJ6^D;VBQfMdg2%nP=LpNev=$0Fiu{Ds^V(I6Aqp~i9+M&Ph-_F2Z*7hOLU!t~5 zhr$u|ZQx*C(Jrrvd zQvWzWi**$61Z#Ub{fDS66Zu0aGVpbQpumKo5WfquJq!}=f>cIE0p7m7kpH1}E|eA5kxiax+La^-anDzEAt0IZ+v+)6hYx z;BemP1f324M-cATZ-GBs+d1g}LT#DI9~R(3_!dI20EGJ>z5r}5g@gs5@^}>Bef$+R z<*0U!WC5HdUH~U5wg5%Qyu418EPxYvgpcStjA#j@N3;MfZ{Y|aWhk#_a}s0-4yTLi zo*Iacpb*ymB;c9Wb`JWFQ(GqTXWZWlzP=FDovg|RDxPAMJO_A5K~?ELO>LRT zpYc8h!M7O%RV8c*DX40>nNd}Gt075MsqG1gt4e(zwY8{f5i+ltQzcb(B9HJfZv*n( zAir(X`k+Ga^Wg>rAmnHBo z70Oz|V~~P%S!`yk3%&n^BILO*gPk&#vWg>rAfP3Ko zS}3atKR{#w*yx8mRNd2}1-J{|e?sub1H!iuSpYUtl9l%Xv=;h{Qh4aUp}q!bZ2{9|@>8-MmH^lN%3)@-D1J47Fs(ZJtX+ebqG_G-&S z{!og$;eQc=zY!C15;~;|u?o^YHFZkI?>ES0sW88NYRV)rP}vz$f`2-axT`oVnhHk} zqJ22*V+T0U9bqR(r_?u{SEuzm5|WNnH(@-aBz0nMA}KrRXvSvS4e0G%bkYHdE$(F{ zdMZg(G!R!qu)}`@bOH^U>jKu-rYF4#?{^ZIComYxn{HsEOhUsEz|gdq>Iq#TZBi%B zYG9+U+GEy_7@n#ja5QaGQ#-U9P|7BU&@MFvYP!KQ{tJ5tA*m*Cq}UH>BFlvh>FXHn z%{)BaH(}(0R2guHwVjmyUTVuk{;&;Bfd5-zuk)1Kpe_+pHQ`Mh>p9~{wf-XOCdO!9|pXr%@u&pwHYTpFQyv8D-ih_ zkc~BJk3-3eMIk6rcr*SxOzO=OY_g>VldZ}YOtvZ;O}4aPvQ^oF$yQ~3FzoI<2>ydY z0%wM+HK8wR11o7a)~4rFK<&P%EjMt8wPSxTwPnf@e^~B1QN2+J|#K`nX8DBitm-T7vc5v!Lf(Vb8g^=bi;U z=L&n~FP`+pp6`M1Bp^Nj!Kyz7cte{j0H15qlNz8tB&Ixp!8i%2Wr#jd@H;<(K^B_5S&B=))M(8Nln8;#iXbw zi)=$&druYUc#F-*xgfPYaJ;pBB=lFPEfe{}Ha{Bv`7-!=!qyTxr6+MaNI15rFh3kb zRK`GfY!Sza(~d1F97%}w;aq|~8l<~C!MZCg=&mYT&|OtF>aMh)yQ*wKcgexQ?rwo_ zZxio^;FP=<@RBw&7-c62tnnD15pNCQ9SBaznGI}om(XyvaDF^5q*tP_px41fGq?#h z*)9c>9a}irvGHWP6ijw(;bfDY%I;Q5cXfm>q*+V&TCF7*{5CRyI+k;1ZThsC{<8$u z6Id8*Zo;Gr*mkP%c!hJwX(93<=A>j#WRuio6 z#|!(;751Hr`+i&o5%rxb>^nK9+4n~f?&XhxpF^xbH?8MAUaxVc*G{6#L#5!Uvl; z5`qVN6kvij3AaJ8hkFz6QnL@9BhHH{PdE`GpSsz2SnY8r`@lR2zn5k;VY)Qy2}&Q{ z#(Ke|IrRh<1Ov$uS$=%@NxZK{67R$84c;sS>rXfn0t&%%#au_= zIBE7*IrM?zt|f4={8&i5OxjZ_h*v`JSQCsP91KHX+g#kW1Y;;6UI#&E<;0sHU?3Pn zxsQQqe-d{sL04_kEaHFF%pLlXHshptj+Ql@SUAaOTrFm1c{8HCFtsSJ#e6JpW|S8u zv(Nstf-gK$V zfk-$TbH!`#(Ns8=5bguo554TK9TF~=W-Y<`US8ODE?dxdE*tf|Tm}*Koy!*VoxDf0 z@2eqvl&=LYhT!7=I$*Un$6?6Tkm!qvgW$PUyfp*{a_`Xdij>pR+DB=jp7Sy5 zzQb6=1*yTnEv@ae^p~kE6ZylTwiNz{Ab1W58zB_Cb-6SKK?(O0DkKOO4l0{MB%F<* z;ONNaDRBNxToU3;HRAU=0Y@ zK|mpRvzY4$94F2G>IuEKxN8XWX7(<5m0R#-? z#E&6hAQ(frGcfHaan}-b_e`2a>@QoQmb-N`ZN^D)tu5NtyrvzhVHSxA8jGOdI3O5DlT)OYBXNat5R9WO@iygHCXG9l zgJ2xX0>`IFT%{ZYb$pIYKe5KM(Yiuhq( zgS0l{t|k~m3GrPGEhl~e0RzDp%6$;+VPiPfgzy;z9h4GRiMftoS*3B-ByragxS8?p z(t)_SY_nQEINNA5PO=fUTyvvXhiHXb<%uaDB=4bQXtvUp*)7U!Dwf%DeJ!(Vl$k7W z)Mv|8wahM2W@E8FTdbuecJ{=0F{2(^tf1v}it@_6L(eO+gqGGZN(*aPh1J=98!jCF zfg#}Ut?jh*=hT*o{NX_VEBybE6|N`jh)_JKbJA>#frNW06%vGtCYA9J31?$>@!GwV z3da({eLzp6muIBIJmF<&))TDn*@b;qWefVQ%0_+9P8alDl`ZHyxtFrobIYsaXULmRD5bwGcV>*|-UU(~CfgW^V`IAn^y~AQ(ppaR~&m zP11NkIS9tl3C7We_yhzT%cSvdiK!zPM{-*H!ZC=ymS7wi;;RsFG)m(w ziK!zPM`IYrx-c>UyN2*F1m&tAekSHR0@G;rG|xim+A-}L2>j*5A0Vh4!P3g(v>I{O z5_IQInnmmf!9I#3;}!iyvZ@J|HH~N;cvdPJSIZ@}#FIR+*_uX~Ef>- z@2Iv+q6omn2~gSbrX6+_yaQ{DdQiQc^AcgV8&jSLU=k8ABW&-{4c;8+I$!A zkv4s3w?KVTOnCx>aU!Q1*!W!Sap?16swcb+ksp|`u~O}E=)Gd9A#gPI0}?hlgu)+~ z-45Gp5NsdxiazQx4C25N?Cdf!|v@_J5$ZOym#SU>EqFfM8ubWd_vK z#Z*l=6N0tQ5?5%uC-GBA*d@PfQUCM-rlaI0wRb2n5{`PLgIV z!Fujl&~vV^=Um)#&w`$Fg*_)9yxH>^5S|3YvmsdZ3jjB3^FF}C+VtTb3-vrP z%QH4EPnWNe87<7%!tx|P+u;&i1HpzP+zr85(}u{p^hEo@^!S0}H$EY)*nil@4fK2r zK@zvaYHj+2rbE>-)Df;1Z#98=U@u839v(R+MdPr@Hm&!R8iDVnA$$lrZjW~h2;1QW zUrKG6$R8epQSeWMV8IA&By>toVtb1Jwwem_!!bpr2ZV}tktId}HZ)h_f;}v46 zA>09xpP#Yup4#J3^5SVCC{b9@sW7QGPq4{$DVXfo!pV+}C)=f9vSSM;o9ttDw-kc6 zFTx|ztR+0AR?f98Rs{hpXD@B~T$uih1lAK6jLl7GCxP|MSx=juQx0{{k-Fn10uQrx z?5|f_Ch~{fHy-)B31yzJ4?^Wr0ULjU$oAt8!l;lyHWUq14uVKH8;6P)`;T5K97_oI z0iBLs=4yw8i=|mju)ZIcM$~t%uNXvbsi;;bo zk`jzGP0|5MT1sSUx72a=_HZKpfYNM?rA|kV&y_6?Ps(Sp=nz@^sqdC-5e+A@(poCS;F ze_N+cxDBCrxF46s-=Wx9kjqjbfj!*0ER}m863)g0;+3-?m!-n7gm53w%jo4b=`c^o zAO_D1!TN42?7OP4@2a@(Mj1rZcU58E$r}^;Z$G_3xa`Ui7dZA z<-E6u0WTcLhuw2>a|Nj&L1bibbDx1$wTXvL1)gBT7~S@ zN<`rJv1il7!cB%~tgX!)c{8HCFwg%rIpocZ^1_4~G1Q$$ zaTW_w)xf>2?E|8JyxKC6KRo>_;r~pgnvGF)&$R37b2_R5A?yICjLMl9E!qtUymf-i;~29m*d!v zbXiT%0!?a5Tn54VE|Ugp(=#=>vp%?!+9s!gS4~2lb`Rv%LQqPA(PoJ6LJ-?14WsR3 zw3(u`jn0~?NAA85&=QQc4e=`oCSO4`){e#+U1EH&jC9uhk#P_Nqy!@^A!c+1%85qW z!APS^Ohj7lq=y<4NJ&(xM5RQAcf;AJM0#9B6s1nV$KpN+jw=E~_-9Ar?hu&yB*?ViYWbDo|i?0(hJ4Km|-laUomRWQukl4`^9usdk?5B|=fa<Dt4uRmVbaDe5FQ`2Z zWgj>>37bi?hH!*5>j_F9PTSXQd>9jRSP%>(OJoWB=-V?C#E-r`Lq!Bh3((KoD9^WNNq6WP4lCqcWl^cRF(9AfO{K1Qne{{7TJy z41UsPoK(1o$T~UdAcRJPEWS=iJjD~6txA+xd?}DQJ<4n>)@RXbBXNc&#APgxe$) z5`^m^l?+6}+2|l%yG>HzSVDNpUT2|~bG1Xlzol7Au)gOM_MOWX^qtE_ea}f3^qtEV z^qt%$+4nmTo{#SVzl7i{+7wgUgVRe@KMr_Sn<;x;g`iI)Fi&7G&cqH4Y`g_QjPuc5Q^mC(hSxwLaO>R%z7u{ohS4o4l!Fjokoox1P6TiXns!6ER-irLi zN=q=>cEqEUwn-XB+s$b0`=$cgCTC6Ejr{wRmSD7Pi8GXTnKX>HtIxs0EQCe8TQmjtL zFsb0W-)^=L@yQnP_`NR9k{_vkKD_l=l2ccNBIcYX}K*D{S3JJmmno4hogtL(q zuidw)a4aF*2Xq;Fxk5V36RwkHJ;C~(UD$V3wxI8-Y}EJcbV1+vcT<}8o!qzC_eu!g zPl(?^Q12fB+0oJ@yavIF_9nikW*LM;UEEz=s_B@~D8UYjJ|i<89rh?k(B`?Yt% zK^Pw>1pk9}cl_V5@o&ZP#hZ4P32!sg?1YW3UiD*Xrf&kJoW!DutY8@ zh{og}9HMtuXJVu?IT2Q-9hv^AOyxwzcF#7(IAU&A0(dSiOn`klv#X-AoJuXv#D60#Ww*mPl+;%A@Y90-w;w^zPv%uKxHKaljuVHLY#Ozp_2+n5~6)LGhti~!C(FfA3?e# z|D@fpfeobnOalm?L-?CRB1z-l9C|0kesjovE|T1e2I6H9d<<9!Sgg%^0S{@@2R9e$ z6=KR07>u`zk_I*&SG$Lv3-tyu)f4W5;Pc1K1~wj5dmPFk;K?FzvFtZRY+AuP6coIw zu;5iva8B8hefDkf&s^dk$n)M7AmVliwjY7B#MUVxve+=Q!dx3PJ&EeAV;Q+1bswSjV9HhU{Y1tf=MM;A$E7NbXQN90l|%4kh4L1CUFS_A8pyk!`k!-vQ&$9 zX5@m@ZNU4i9s93UTPE^n+`j_(D}^#oxIsdvloD@&*dkVCsW9J`r7BD1E(jK}lz6W= zWf7~gR5+3l?cEK6aR>zECFG=8OR%1M7WAAe>^T?r+_RwPTw%}2ml*7M420W zPy;wzn8XGg%~S^V5KeDi(YVYu($_8a8419hv4LBN4!zZT*|w(=|kKR>LFsP zBd|0`$`Ef-Gn1BRGfs+nvZQvzwfEEr@0GidenILc;C6p1%n#=ZmAfF=z&(lgiqlRZDjZ3O_Tg*>%+M_Tdaf)?f&_BaD`2Ex~#oUeI%{uxEU;jA-k5ctOv(!k&{Om_6?a;btaIgka-M z1)QtRe*u!?ZZPQ{A2rYDFth7>0b7NLwFomcY|QM1onwvB(@`7E$u1g#Oom#5`ksF z(Nyju&O_G`*AVVkcPa592(k#46|RlUI$hlLgvTH_$2$?95OW>jHEGtzUCk9!ErE-I zqz=R%)y(zJVA6O`iIdhgEo12B%ljMWWoccaw6#slLOT%)W>boBj@p$|SdiKkIKkRJ zaQds%mWlk~@f-nvrOdU4Fb1Lc82h+1#zCFXpGpO1G>ocv7>zQXXc$$6!${tGIE))0 zd|HXOK(Kvp2Ry6I9_XnL1XdqA2mFY5^MrRG^35C@10^&chmsfP5J8E;ThEy=sker} z>0;MpiJV~aMEZ1-C(_H#c&~aA?`2QoeL&}+pT9z|sR^G!Kq2^*nCl1}C(Zu45VlLj zUHktydlUFLtLp!MTE`M_#0UW*j4)z>f>omwsTv_@5riU>1QWC?QlRVsLR)I7Wk&%a zSQbGHAhL?0qM&}2sPF|Bv?{2mNCjk7DVu_T{6Ft=@43&Nr@^nke_yY|=iIa3bC>6t zbVvb;)nS5Kv~LYGIlMC!{#$_vB@Rq!<-Sp$4shycV04Ud4^PeKHM zbx{q=!5QY&PfzvY+{C`nO~Yt=C{@yqTjO2FHK^;%6oPXD%W4h z?x`QAi{Ska`saean(5Oy{fzYI*c6+<3o_NgTW!qC8l)#90|KNcBZI2Q%wgJ0Yv;75 z&VX8yxfk>+Ww|>f1nx7o4~V%REa%pPvo*K=N>-6$?gx#@a_g^TTXPqWQgXjhu{fOI zJBX_eUaK+YS~%dwpl*OSn|J_-UJdu!K(dWY-4DdP6TvZ&610Oq5-BebBeZ)2 z+!mU;A7H2GHMs`f6U4b?Ot5x?qu<70?9M88v9v9Z0n&Q{gKI=)4s*R}<7)*2YDwl^&&Em8)g?<=_P{6}Ba~gG}uTgL#igApkGZ&JqEnYy!zRH*9JCs^8WfR%A1Z28mW9oct_-O{nvu5n(5PB z^k?}$XkBdrH_B9vSTOI=|VnBfOF2vwRA~T1%-L&!5i2=1Fb1!JxUMb7Td#?jp;UwTQ}M@jazeEmS^!qMx49dg!ktuf{e8t5hg=!40<6LVy|Ux)$37&UOK zV7uCw?LrJ7##rqkDhJB=kPriiG1dd$6=JM1=Di^X5M!)LF^-h+F(C#JW3++0g&1ST z%nUJr7-KBOSR&(PAqEg*Oak|nz1?oYIUxi4FzI^ zh8OW^nVuCQ05QTua8ZcR4jvaG05L+lN5Jj*5CLHK>V9koziD3moRnJwn>)o^Yp;I{ zu{juQmcR1WaUOGKNtQk@*WrcZ9!Je^y#wRa&P_i zbCIqR;0~GU*q%HA=4Ybx;>dsi=}nNquSI4K^IOx#7e@xvlFYrJeTpnA%2|5qr7S)5 zEX#@sr7S)5QkLQskt{cexU9jOM4IAv1ZSx#u_JG~Y8%V3mdT12p8Z*^@ z!XJ;XS46^xKveE|t>QrQRsvIlRgbm+^@ry&?iJMiqR2 zuw8A;ZXpH`W2{bfoF?NlLJT0rm<0BR7^{rgH^cy9j8!SdIWk@uVgNBl8@M3E7&GSJ z5Ce!Y#!`$cW&9P3(FepB>w$}8&p`*5h7bTD5PJwBM7J7vV$e6hQ$^|`5ZxNN+r2VZ z69G0S@2cRB&8we-a93b+CtqkRV^CLDvRc+&(wO3CcWhbH%yaF9jGn`p=j!otuDyKG zb5Z8GYCO-i7cF`&$vnqeJpYSTi!qjZjQ@7oqTjO2ui?2@tL>lHXH2f&tA#g2KG%;1 zSvAwA>-W{tts~Ms0$gsU!!__qk=?$0Rf+-rcAX+%aGgk#sDWQKr7mBT45%bodpSEv zc!fy25V%Uz`o${3ULOpAuZZ|!6-dzhi&dUvyf0Rf=OgCZH41)Ir1#qSf}y}J791Z~ zFK%}YXPc-AV65wR;wa3?LGGqAH9W{fgTOH&`(hQ$2|=ElQi4tvz+%OhUD(+0wo=3O zqX{XqhWA**nR0aY*_Ymwdu4HiNH;&gEV)oYnk_LwSsSrlBE!S<@L&@y5w3`Qu0Jx! zs+m4*qTk5BS9-0gyKJc8CMIeEZ!)$QI9kM}0T+qV7Gps4v}qW8LWDK=NmIrx#(+AL zb)NanQt;#jw-IS~ZztF}upbb7D6qNH$4sREgg?vxe{CBeIHZ=nF=?A<5VCe>D&R8PG$sp55lbng-Ar_#XtM0}S3WHx*)06bPC6LKsMtj~s4?We!pWQh+K zE{S}uUl3%~OrMtcYWZJhA)CNKW;)ys9x959*i&bKe_WQHI)h_GTEup6u_+^6KUo{5?O#=1GGqcFP%xtsn&rkk0l7nmxtFIK_q66ColC1^zfmM(me%iFVf9131r6lGXA8M6MH82Y^~qcVYsFKpD#2E zMRH=HhXd;qcv&I0GSL8lu|ihCgM%2SV*{HzWpzZSN&h+13dNYS58+2D2Md=(-h-l_ zA7s@`pSJgy^e_2B+p?Kf;2&qOYw+QcuyeB~atstvr`n12VlKxt&sR?}BO!Yr;2)`$?{mpl< z7~pR^76F4FiL}4Fz}ro!{f&|Vl_YB~=RxIoIHUt6%0@Q?5Hn9JW$rF#?#?q$D`nOX zNn0})*Eg9vq-3ju4Ux9x4uYA1{j}hmz8yivcM)+s!X{i(b8GD+wf*D75pM2>8Uq=?N5ox*rIr&l+ z_;KTh8{i?L*XjR>TxlC$|4u!79wCjpb_)KaiJHKuNJoFkD9nRFo|_U^(*#1G^px98qM+>qn67qB9b|&V@%HH! z$J^(Ny?4E^_xTp~UeKP(v$sfBD{#F?Au2vgc>lAHbo&NVfC{xyCxW*aKimc4sw-e= zIBkCVICWXjE)P0K*87Q+ABaJ#;7>)$-vDvd?|7?*pyB`R%fdB095FsEQaAt;)wmq2 zs)G{KsE)wqPXB4*Sz+VORvDIN#iY4qe&bF^e#L}F`{uq>K2rIC@W+w&dePq; zWYtWc4)2GhZ`u@_z;|V;)41B0TQo>dY6b*I&t3+%ip(754%5a*H3Mo%=3dab%5q*v z2#gxr2gKYDmUHXTtUy`r?s}H{K`SE5-CZx`E*{q8zE{MF1)mh@#}b<<{4|l+(*z@d z^@1tw5i{%qFt)FK!CY>p`qUBrd{O#0nWzc8MWn+$JPPyqAkR%HL60JUC5%s7SX!a& zTmzZBpUwrT6@EGwSTC4yboa@Z9@bx1l5bhQejs#VXg#n;&RWD(#?S!0rfwV#PyQVA z)|jbJ|#lrRiF>D*y8^Vqm6T^1Iux$Z3=vmk?k6O7^{&!f|ejtXO1b$p$)tW9a zM%^Gr&E6n9DwZDg&KOC{OrYTqr~$@6?J-ciI`ZX*00Pp{z~%IZo_YGO>0t-=AA=ncOHelCbTah7fTm6PAbo}y))GSBfBN1h#-=a{Fo ziN+a@+kZK3;Es8>J>x5MTW;-{Tf_6Y8&8Yz8Y;i_Gr!ctRqE8oK1Sz8DhCRWh`h%| zKPSklnLgcv|CYY;Q5K;I%$KPe_@FThG)ONo3>{PkF zOC+fmOqExdwh8=3WS1MvE@s-yO^K^!0wGYkC3_`0)wF#8)78eQgG|uxx_#1g{jS?5 z%@=!bbz$%GE$qFZdCIfDrR)bD6e&c-X9@3r7D{(mFa@Zey$C)lvQq_vuU=gig)2k9 z=O+D(%A>X%z@y}HtVo9(h+(VXBt??#m@zTzk{C9-iL$U`UTlT1#LzkcoeHJNbb&Ea ze7DlCI#{bfEIravc`vs>{Xnd*4V)Z;Hb8>v_a?;qJKSkrn8GzY95KEc!U345i_5|N zMCt-t_mIHmPXB3Xvckq+52aY-)wFa!^BlkB@?4U6j(JJelmF0Q`7L$7yq#IXaeFAg zWtm^Y^9`vZN6e;KBbBAX(<7hjj|#GCrcc+{W%9qmy4nPWWvWK3m;kdxlwRi;5Fovu zF*r$N<}jz3Hond=pq6Cr1wB(_Ik}vryI#uDUC*+dJfW1OyI#stytt9&BeQ6W{(4P# zut;0}OM*KB`#u%7n<%@m)|FB7SF>mq%81O7*3UqyrIGt+c? zVM+-~1h81~%?p-3Yai6S-+noroLb?R)5+EgW*psp@}(EI4khWdeEmS^!qMx4cZsxI zYmA`*x{o%G7f1Z53a>EU8Z-5Ed!u~cB+^L)V%Qq^7m;jN8xzCUW7zmJmQvW&9<{Qy ze76%RED*!42mV8(u&a!TVKKB1!B-DxLpX^0AtYjMy%gk znXcz7Xv0h0L*9FZpg;^d5qwt&+79BX>$&BXGYi-5;fV3=5DvgZH&Q!ztVnIE0bo0V>q)ng~8AvO^1luO22x$9pt;x%H?m=X)o)ykDdWfEc!F zs7SJ1U708*h8>P!vpX*fyV{Gb?50?IhOj^kI|JcW=st0uj1LmBnvy1sy$HtM_AZCAckEJe3!y%8M?q2)nCiAC!a^f(xVbI zMyi4D50M%m_PXrjBRRZ_XE7Rij7#LJ)d4WkqAv$OC6btvwlc7}(|_7YSz+UEAEh|j zt7+LRndkUBM4rQ$=V~vhl6j853FNsb^DLG;^BjMj<+&vD9Baw>U#_ZREcF=wFKZ~j zWtm^Yb6=_zIdC3}HBvcRxHR&){@@_1X8Lr$-zNXtZB?7VVP-m91BXO*z4PTc2Kd{3 zjexpm7W~{ zixOYjVGk3jRc&C_*q(A@d#tfcEjs%wOK<$7*jc25Squ|@Cz zrWo4`&<5?ViEheFcQo1J_P~J#8@t`-|9+;6b8f&44|DZ!AQx^?sIJ6&TBb8;s(<7hjj|sABrmwpGLit}TQYV2$ zW;)ysE)~TE@2NAuKQ4Groxw>WwXYpK&6IXu_0$)01U4I05O(+0( zy|KLjwdkUpREd9Hr}2iS9t1Wuwik$&Y1`7`sUqcB4(=$*uGDihJp1FQM=BQ!ua3MY zLVs?MRWp4Gze@UNEaV_?o|z7JfS(hkYmfo{=^AA4MUhTL2Y8h!<5Qdgl_YB~=LO|> zl@vOJKup(OO4m~_rR%9@>Do)_^y}PO(-n6Z>E0+MM**BHQtE949}DaOf5ld|I!1&E4(X0wSEAR17{F%6_5yK!wbJ}%l;<}ipI@ysKm7(bh05Ald^wO}cCd5< zz>dcD1ARfdzaUhb_A)*@n|2V`#n^sezaTAIl1|6}nWykcdFaaPEMgKd+%P2ZW_M|r z&7j+~{lK0g9uFYl#V>QO_h_8WVRsGnqyVDV#LO!_RFDk>Qx9~5hSL`ie55i%I5YCO z{=Gp~&Gc2*|4#mYu#in)Cz1s?s$^%2tW22m zM6v~QvR9QDs6WB+jduPcg z%#VURHzls_R3HROSIwOg{nE63KrkExn7MXV4P>sxHRCfct{I;?_TKfv-rHW-du`-7 zH00?5j}+-P0jN{q(#3=6i9yx?PZP-$h^CD^>iLq}8G^Ye*aFy^JU5O3(#4aP<;{Pk zS~C6k1-L;=R@(j>k=~lU5F7tdGA%yva8RfFhVfs6tm-};n$5N%iUZ#+(hUHRR?(NZ z>032^m&t}3V7Ex7Kr~(IrtgvL10t&!=0hUc0?{_TtL!FOQ=|&o!H0!JB}?jW|pB9Sa7f=f(20DQ{WWXVn-Pj(-jui<4P?sPDy)7`}Rf9N38 zBbBFw|BAd%9{r<1R?YOO<(nT^sWe17PQYJfsy?kTW{n2vornPe(n}75XGLZX^So)} zI}rnFN#s(}3FAu*EUnNMtbt74FQ4Jm3cq}YtryHVy8Gly??fcoRaRQ9RmSY0fi4_?37g!D z!+4H_oI~*ABH04iBF;^Zl}!GtD=v)& zpamARY7f@%$e;z5wQ5h$@bsVsR<>$Cr{TpW8UU_r)n2Dz*gfg)uPoHR{&Fxyk5v98 zY&#_I-d6Na27NWtrycS(>AOU_`+;X39A+IT{JwPk zzdagIOEUL@hLq))kPujEY%dUVuPNv5sh4v1)U(`ctcWbP{)e8{+{Jq-x$h8h_k%wZ z>B9eo;E}+NX;MECWk0Z^$_Gu`1m4B8xzJ(mHq)lh4O8N(nLr4Xo(#(+`hjWt0H&*5 zSp%71aliX?i~HT@i@mqHu=n{E_FfQG%v5Zx(JEtlHPForP@Tzh;{_5bNf&sqNVWjB zh;!3rlF5H{1?B{iY=IbewcA=p&I`t46`0QjV;~xjwHRM5g|aokF9%y77SV89Z?R0% z&CoJoU(8pWr5n8B)ZD=4ndeRO$t=d)z-F9J0wW&s<4l50vBEY*FK~(|e}QIvPLQPw zobkm$mX0ywD}!v3m%;dJLDuFn#y17odM^8;#!rf@O)&oy>5c>_S@jIN?X!~oTSUje zs?Dq)h^C9&bfRRh5n1nGUN2HuAljxk`PWI-DU$7&F`EZlAljx^`MP9ViP$0FTSN*A zMAP&pzpZ5N6tP3V_ljf+MAP&p&uQ)v@dHfogCZ>%&~I$I{5el^gBCcnRm;Iy6tuue zty+%C*+C0j+^S_$T`E!yZQ$jm9ss^#Y^s6H^$n3M*8|5)ogND9x&Y5R4E0FmGT}9m z_oYF9VUSfbecDaCNIyfQdknZ(rdpYECcun}(gy+t1W0fA46YEFIn33jjUNaYP)joR zf>st;R+h7L*GpNt>sgkS6G~b1n}J%h6tDhddF`RJrE3)2LZplSbivhuT_D#ZMA`L! zjhs47+XOJy_1``Uv&>A>^^fU!X4(gQ-c0oiEMbl_)ATIBloGVX02V90yTj6F?b(|5 z+pqeSsTF?Jue4q;LHJ+}67DCMlGy0d5^^0c;VwE%m-zG8M7L zn4N+x5aX_KTZ_9_FdnPGG=nh^jmKJyW43k|wzSeW%q#ZK4PLQnZeShEbEHmX7UQ?a z4PLP)ZeR_{bEHOO7GrKuVUyk{(k+wTry1W8WHmQrd}olY=Q75>3$iwsF@7M((nE^z z(?OQ5AI24}sq&_W9$lXzvPQ$aO{BXV2rD$Sx#yWG*>n*-2X_+56o{sEH|>^eSCMre zW>1l9foQv_+kQy0K9Ou!8MAM&1)^=I+YU%JPsEad2Z$6Fh^FcD)c%qkCbGqWIa(xJ zAljx6R6~*-Cz9=$F`o>!K(yV!OE_M#lSL|_9lTbgus}3TTiS0cHGDaj)i=#_5cr|7 z>A`cmhIa-naBr*jehnW9THv`>?MoU~?XV33?Z&3a8)>+Si3Wfvt=hM0xV?!6fu2_F zt{Sp~b({L^2a_m06>pH}tw++3k;=P;yGPz#(02t{HPfeU`Df`L6zPYV!1glLI;@-k zv!f_|_F+JP^x22O2SjELvzuw-kMJ2#OEUL@rX8NLoKw!yQ!i!dsb^WvnNZ52f5)aZ zOYxzIELV$oDuQ1X>G}6{!E;9#`=Vfy+_R@5PCqfjCa{An^i&)gh3PQUWSY25 zfzpF;SBWk&Z681{wP9=C)8fhJ(=DESK40v8x`n;Zx3KqusA5kmczCrjO%3!I0;o=_ zwAyX0Gy6-SBwgU4!4|+4vD*^&1j*&UVgk&m!4`;dSEOel#uo+SRmOZF7z5F`xa=|h zniR^`0KXM%fmlQ%FXA@IRm7SK%+G@@5aX_KTbtay!Fa3!^XFg;MB}j*@lcSZMmIs)J zY8-Og-%9p?i1veziew5z)1%$=Vae8rY$0I&A(AZ+ZPQ1>XC!+`B->Siu}#$fDnYbO zp9v>Oww{$W+yL7}3JXNj^pS9V$u<$$I>EeABwHZbrjLZ1Nj6y|TYXhu%yuH#0?{^o zCY&PKJ4EV2JNO=vOo3>cJ`-}8?JUw`(QsEY9R&J}O%E@wlQ}^P9Nwzs-dGZ}!0D}8 zZiteWZ5wm(+-#UecefV!Cu*T9Czo}7G{oB{s! zC`7K25xIgJvdP^ppsx(%oqd+2kBy{w!m{-jGf6v+ncO1Ezj}_xFMa z-Xpj#u({J36Q#E$kE2aSnBdUs4xU3bp+^@x zWvXy`RN8P%1rx#`^{9}Gl$V~$~3JRQ7J(O9$@+6 zO#~YoQ7biKM!69)tPylNI(ySg*BB`tv}^;#4AVwL`;=)13vK!!Nu?}K{ zzz>Y=1!$fwx%6&#i^e}P^&s#QV|#&UnRX!^`=f}jje`%1vg@!%lic|j)FYKWh5JU{ zdyoG8K~~N5Df|lQuMp`v1a>vk;STUaqIBUgz&~AK4Ejad}>EZkv8UU1?$O2>_&pk z0-M)3)kJ-{2!EXlAUO28_S+JD*R)OGr^faIaelSZ{AQHrHzS{4tu((G<@ps~8>g7R zSh@k=VPpG&i8g_OVtQ#?>mu#j4+|Cq_B(=G1M3C_cB|BPmz)C&I@%|6x( zrXSs5X?*EEC&?0#qIUTt;k_R8X9s;F(>HSc7p1q)i*8_p+=A9AYP-wm-S0(w3(sW_ zY5Z7_rCs=>#?J;>dfBC-twOvm@GT;p5g?=~zFEDkWbYIybpxC(k|_{P)2IJ;Nw%}d zN{881BwHZbrk@^sK(akV%m_SCBvT-orXN1|a%-Z?S?#0EbP!l>Y`;(cBn?k7(ExCM ztM+0I>2CH4eti<9d#ZA*e$=su!bU0=3NMYk=RkjUkX18%YWEcB-y+i92hNqL`f-;r z=W7rTeRrJ!0pcm{t~0n;WacoVrnN(_zjf4rT9UaJbda(fVhNkTQO5QHG54x+?w)e) zo;>#|Dt+_*aokfoPh3V)dA0Pm3%)%=04I0?{@-UjHds#j6soE0QS?P17@#6V_l)SR!baH204UK{yb z|G6NmX8LrZe=h%3B5gw8^D{fLfBd7u2y> zALK!sYqW1QSWB2F~8Or-bzI|TO!cA-i> zT9kbn*i4!wrtJeTw(lduEH%?~__vbiS0c>~xJRVJKRgO^yqTuMk0~W+r2&>OK8Imx zg?4rgWb%Gw^)LTw#O(dZ4qGpnadh{|mmcFJc~+#=T2=8`+Q1hEi`Oa+htCb*bNyD* z%V~8UVYM6Be0B;JW4Xmxi$!n9(EtZTwaPIS{;84hOH{JV4R@n57Dd&hs{&ab2|x96 zJa<~Xtw`5LdO~+;JT1u5qxiiV?;K?5o#TTV?-69_$nG?Wsz*h zjQM)71)^>0=nay6Tci>i;4LDB1)}Nt9`<{Z-6~>1zz0P#1)^zsZTgjDY=1R>IrxM~ z>jb=LY`Xg?PbgI@TGfTs; zdj?!|gG67@^MgzETH(!+&-IrDSvAwA9r7pnueK~r;0l>)1)eeHY7NqB5(5IH_Z|k{ z5Scm5O{R^nNerkZnR`Kv{(MQYuZUZpc4w@7w}NVa3f z{5;qK(N=|oKR=V~ZV_z){~%IWAeyF^%X=idUqti4$3-#)qG@`$&yKw8E1-5V1vIln#T42vsE&H!2QVnfjpQ#4`Hd|H$yJvrq zEY|~>js8B+OB~a1*W*!-=-(~Z|Ku0>T)%seRWp6sO;5`I84KA2_LQks=9~#IdyCRL zDgy$fmre%zh|C;jU(?2SR0hS(cR(N?E$=r7XqUC|SNI z;^G8q(_Jl4A28EQ^%Yr| zZOt^@qL@;Gwiv)-#n(w#`m8-$^M3m!xiYoFFUghG3uYYMee$KZQIZ^L_2>fhS=!0; zCBWh&S#Yx506y1W79y;e;0B7YB7N(J2;T`7tMVMHJcP~ommx>PLnueX4T$h)h@gLR zUXx-ilw*w>ScI2?#aM1J)?$I1;9+l>#uo%xI!9mB_^KdFw>NYAoyeLG^CyvxHW2DAzU%o%$sQ504&dKK zG6kY(-KY3h$(|M2iom=ek}VKzH+9?RC7T$UxXPF|4P*;M+fKKgB-!gkEEBkqNTxtE z-Plbxl&mhY1%ugABwHZbrg!RwWZQ~lJ7&z=gDntkH}JS`m28@b6$L*gQdl6GriJ!n zr-fe5sXM?-2LXPfFE0o0?+MP?53Pt(S?Wd_ue%)Ouoi!A4qv-H$US$gVO zmUAYQvh>tTS&H{!vh1q|I@dcmPo#_d#afSPIi!0pci@i^`u=n{E_FfQGydctQtgiUn zY>-=Q7%J&<17+#T_3w~gPAew3femttJ%YumJjW_Gu$J!^ax^@Iax~n4Dvu2j*5nb^ zxPe7DD_H15vlv>dD#ltY5GroF3tv>jD~g@J8n2`AYl1B8_Kh@tLy)D*x}ovpAWN6} zTQq)qkfqDNTjQP}OAiUYu5psc8V&O)k!}`%;#JR(*La#_pB2$_@N*)W0@3tnH@!fz zOGVawm@7rH1)^qW9%Wz08%Ef8(fYxvhB`;Leu0mnoN3q;fO7XE$7ZWk%+ z8e{GZwm`Ji+hF+fQ_1cMwqwTpKG*`$R(DzW^E=7@EMoP*$3!Xth^FGgACBDi)a{MVXj5O`y&mQ6n;Xo2aiTDJU*paq((TDJQ~M5>_;95nR+u+Z34 z1Ka*M6Ac0@TD5HYQ$&hW1DR`fv9seZ4C?j4piY;3WraLXz*}Dt6Lv=4=a2r?K~~N5 zY1?lj{dOW<@<5xJ4!40dk=-xPZQ9nTGa`W9FD7BMp-Ai125w?nUGk=7L@|YZCH`5U zJO_!C5?E~PAP}>6dUkulJg2{W_T=`+K#=9`^xVnXQzz?6{IftgJ}Khr2hR|x)t?dk zBCvlD+!xqN{Bx*=r|`B#-UHS^ge%#oI(}7z2Mv~LKGLIyUqarxFFqi29re;15Poe zZJq8q11d?@Ue2eK<7`XU1Y){cDc#I+x|w;pS}EPka=MwRJER*Gv0K0^L|W{t1P=!G zuY#uno7Z@giTZ)>i0t=_!qhb>?FS~mRbX>3Qb-GgnCac_Jc)v~3B-A~`MirW>U}QG zT-N9|pLt>Loi6OXpdw|j7o@dHulrpp|KO9t#yM7aeB|97{b4~?&Gc#G3`xJzS}+J4 zX{N*N;4z}2LPi8ADrB@oq;lH9Wv2C8hY`gT_FmF8%JW@I*$2dwbx#@h>WsQ)jJt0} zJxf^kgvr|TCF^oJHV^rJYN-c*DcDZ+>DK8I>>AkI>2@<505H~7(>4lol$j1t&C|fYl_XT%1l}0RnVgk2*-OLp_0sEf05oo*+Jfm&5Yv_80-HOH6Q4XW zKyAESE2O{hWD<;2t`L4X@*Wob#X(lh^i|hiCH=J`U5UUK%yhUDyj+x?Q4H{p8>gqv z;3^Tv47|>iwy%5Y45%bod%A~|<55f31fDQ<5Qv#;rOY$yrOY$)%(YVHndQvI?MUYJ zRT3K<>=0@1Y$Dh{u!jnc4Xl^@Y;@A&4j;6dZyj7=md*cQnf>JQ`4p#*IB~9RK3CtJ zjWk)`osE39Z9dz=-Wy%mdqFQLWyNY71j5vZ4Er?JG&+33@a|TPwrWi_ ze}=k2p|&`cR3nwQ2&YHhQ=#87$f}vX>iXYHf3HYe6WGd3^}mz|w-tF4Cf6Aez?(3+ z&S-m)W>y1tG;O$aC)XKKOkwXSH#jBbX)ot#td*yc=V>qJX{?o}ksj6L*-OM`1Yb0M zc(T{AxyFMcZ6V-DkuKKuQJ8I1x#Uc7hrqhmmeQUi(%J#{i}b&w42{B6%rrfsF(t8j z3$RS_`h$(FZY#H7%33X$VlAMd(cODnx;@{bByY2PO(4vDaSgmwq;+aMC5(M&_>A5u z*$yI|KOnlbf!`L%t)981_P$%X_lo2OM7JvVE0NqfGq?1XuyeGP8>Wv1(~itE9TPXz z|3=d?2__T#7Uh+t31xmQvtTySFE1_4DD!KX2Gfatd7WuWJzANspT?9&D&H605qWPg z`fmnVHPcsJe~9#li?mOGo6U5%0sfCDJsud~pDug`KN7LB;O(Z2j|T=+lB_-5qWk;r`8z}z_<0(I-_rhw6-`t23gTgjRDHv{WlRDZWfhY&bWS{>bmqcA6%X?h4^N@7hPVDaKp z3^ul)t=xjHwOY_+EuhWO-8)`-2+mfLd6usa2y7Fe|T^MqFW7|9NZe2Tf?&*CH-)41EO0S_`cv)&)m{!TO$3^ z;08puDmW0_Iy1L)*p^3I%?;Bdf@w!)n$DM->K79NQ+z_1UrW#EUG&S_ zp8A*hwKR?9MZdi7sezeaOV{XL^vfHcI+*#jw2k&fzr6FQg=5m6eg^wsq_R@@`N;eH z(Vr1y)l8r6oxe%{gh;0V_>7qjPXW&rrAIsi{L@35!384rEqJjh<0GB{l_YB~r~A{D zN{>kCfFq0@0Al8vXD)6$PhH$#S?-$WF6=#dVV`GTq+HxN-~lQzzjLVWLXmC{;D;i+ zJzz#;D>r5j@XwGhV$B$c(`+kGv#Va7W>-C%W?OlhUG?%byV73rlsq%Z z`Fj!f#4Obvr=0fr9@6b4(h&qO=fMv?ZTxT}b8GmVd!^e)BsUb7zVrmxk4>DB@o8r{9Or5BjZlw@jWPa$!%)pHr3s>m2Rp?Za{SFFjN+~P08HS^S(>A+Xpuwy0wFw z1-HqWTRO)(O8=hV21K_SI4!s}GPi~oxs&v}1UDeMwSjvDw|eH5PVuhN?-tyE=vD;} z3~rs7TROyhMq9N6)8)amBQs6s)=hPvwJZ<|75o-;XMSn1GQXA;Vx^+r^vrLnHzMFFF{8|=?#fpCUu1X7*`L(PPs}=q7ZIxCm^J`hA z0}H==U!^5mCH-&DX1k759uPhrdG8zg-v?PW)2I9MU(&xM(isQtHPhiP@Xw<3dd2|% z^uop9ArYq%e9V;b^^5_PBx^6{ou5fLYM!IGqdiG+=Vn=Io~5w&G=+Vh=M?4Q?gVdC zF{(7(oz!uaNVgzxpU7@OnANhCoYap7wj5Pj51PG*?J8fyIz2#aWm|cg)9dAFPOoRv zY%5Q5dc8c&>1o$^O5Q5S`A-q|-Lf@5 z4Tx?X;81Yu%-qu9IYRoQf*TOsI>EDoTSw-W?!IHAty+TV<-xQ)Gfl63ZdzU-7Ap8H zo}c-p#mf9zR*02~ehV_cv|5>8%M!6v(QjeqmzFE@YgwcB7k-Cjerdfjzm`Q}v0}cV z%r7li=GU@Htk$qdUpoY1h~X?mTD&Yo%Zjmb(QirSmsW3$^nW;q4L?$OSolQbeG8)h zQ;=0NeY!C>k#19wRv-AYnGV;$zlh?EIit=1|9A(^s55v>q?1+y|87dVF=x~nP)V}( zay}~IF(TbLKup(BO4nUZ*PW;9D5dKzrz^hg@9DTW$+tM9K0$DEV7;*YG+bt)0RRiV zepW|e9td(~{MW#`*O3~A=`?{)i`0*H@GBzy?R-051cLv%NOvhfYRuM-(nl1QGrn5F z{#hjJHZWU~-OD}N-Figlqq8qU>AjQ`UleImdNE?X7PQNQ7C711CJ?G#ly(l2yila@ zOcM5Dk>=>J)@bfno}w7uC~XFw&%+ROQ3ac1-ZUfz8XsSVsvs&Deh6Op$#r2_|^;=Uz{l=^$NtA+WAJ zK*JET2|OWU>wz@c-&GoE;{LAE$YGcWAD>4m+gBo8$zPr3|OX#A-t13x3ussJ=X zzd>r5yEDaeOt#qYBJnZ>E-|(jxKgA9?e0}MSDz?8i)^IQFPs(mT)#(p80I$VRwQnL+Wb;uUDzse{T@HIk4_DB<%%eH~?U*`?PHo zW^XecpqhOHn|poTy!wGxORJ5%WE5r_Gwsh!sYXixu$uASgN;3@c~5*rCfB_w-r>o0 z>R|HG-TP3wHc9elk=AXp&lle7K~E1PYq*Ri9AiGmq^*P9B__ zqA2&8uUVe364^-QEa8Qb_gc`O9Awo@pE_`w^q&@K<$%-7bhr~dLlie;Pn`k&aYOdh z8GKfxVmiSKOc_6zZf~*i59)a!W>GJ{{!r;rzhnUSVc~05R32^n&^) z$%48G#EG~0#Qk(M(#-vIH1esp`P2)0pL=2N6_MxNp^SE)rb!J_1 zu}J$7AcQ`4EOFBfH10Ina0j@BNTxtEO^*mVH$|lXrJ+6v<}D)GdMK*gO{4=~pY-M` z>>jNamuk4f`4lix*+uxF$a@6z(}S#<>C=w?iS&0`$Ufk`W;$F0cNTd&C)XJfz}q>w z&S-{6t*e2%n>IWyCf6BJOkwXOO*}8qJX{?o}_;MC`b``P5!4HY_ zL>Llmpu)s@Me9p6)3gHs7J4GIkHWmqOb3|k2LtO~8%RrB1p(N&3)0DOPG{yQv*Q2{HKC<_qYa5w}2^vObrVsCka!V)7)#MU!Qzd6vT7(-ii3o+p)y3j@4C z#i-JBRHZjqjUL!&T%402LG6xec9d3n(6XPNgZCSvUYAhxotJk2Tf@-(N^ zvuU=Kr#Yowo@ViV9rE<5M)vlV!Z^*eq0t`}^z}@ijuHCPg1$Y|r(KTz3qjwR>C@S& zN%w}J?*JPjO&`EqkJ2IUU0vhJCe#0~BYc}kra&|ucGK-7>k?^J?ck0gnF7%?J)pOj z?A;=nc7i*JWC}#n^nhk*dqn!)zu^ahsVAk4vx2$`&TUoG#YI8g1|HX{riq^k>KeGR zRlP>T2R=vck;)Uo=OXXP(LWSq)l8pG=^HQ9yN5_q10FTg;Trfik)MdEbw&j66EU^U z=xLEUR0IEM+VE(fT4zKtg}s-wKzR-dDS;!69RyMXb`wkq*K3e6z0|- z&rM0Jjsq-Sd>F&V7POUH(6v?zx~v7XIl6ntOV4tWOp%o)S^t(WPB@)Z^dAWNDVaX~ z5F7p6pzqA|ojxD*#|8c5OrI`9^ecnDBh#mw1pQZnzLDu09-r18Ez*%sKFc)zWRRsB z45JTI{?JYHP2k!$DX>lU$fjb&t2Gi^1?pP{zK*BMg)Hx>QB3y>K+v7-2~V|YP;KD zo)t+>>VF5e993Emn!V9{Qh^Yw!9bj5TX~vY_3|{k>e)2g%G2zsm#0~LfrmWPRHK%r z^A=&8X4>uO_YV5WnLZsy^oIm}N2X7A68ckuzLDu0-VpSc27P;`Pxlx4n}WWc>C?eI zN%~Vox(CxfJyYYegDl-|=V^RlkfnR@3mRV*WGUZO8ebb^X%6>l{FupxJHaPKS|Wgw zlzO30=WmidD^fcrgD;C@3PjVx-1G%hVP+j*n@FZWG#zr&s$}blxShb)i)0E!(_uG# ztz;XDWZDjHDv~J>O_#Xo#*)=VGOdGe63G;Zrpw%P3(4Lr;$05hS|n3fvw?OB>MFQP ztD61u(V%VvXSb@^KEpv>0~fcd**#|mbvt-&tD4PoRZw?;*SD&ElJ7_Hv%Cweoc3dD_c)y4K259DVZqSi}tnHdKvjo#u5MA=z(5x}bo~F0psM z#wg65vXz`Eek8E&b+k;kmxXRPV3M@D7w3<{Og7WO+?2%XExb7zVrmxk4 z>DB@o8r{9OrFTA(^rKHatG?+N-TnLfQGp?@amJ2HK`r_isjd1-!=Gkvq_=Ik)n2h8;fKL zMANjG8%WkElIdh{3z1BLXxi`&a1OggTK8q(43SJ-&5@WL)Jwp5t!hrh;-DS|m$s@o z5a$N<5O`jzn)7gdP#*@~(5mJ*+!53Z!JoFOISmg4^#bsrRyBv=g`l1fPSEDhCN^Kg z3od2eBb6@-uZz4-9Q{Q>R?YNjkA7PEvn*sEaEX}?cY&9Q()%t0{L>pOgDXW^n=bHL zQ^xmQ22_%)EAh_{iySr2Q9NHfN%6eMveZ0FVee@Q`#jH9qg2;53J$9nRhmu#b?hd& zZg60w$Zl|$OJyrLsjmraCH}#SXwrJn?9KL`q-~;&t!yh#b9%iz&FS@Qnr-E2POq1z zS$yx1JlBXcwfZ5dHBPhc1*5+;=%;4-bZpVz7xbN(zBBj#SI|$%^yw_)zmf7Pe@CWI zH!Aw6K|eXuPtN1-8T9R$KHa|fe>~_LnZA+xdwj4+~-%~ zpQdE{iqy@i;KxNW1)}K!H=Qfl0+CER!9ztd1)}LfH$6zQ!$mTk0uGC03PjVx+;m8? zMIx3HJYFPIAes)j>2Z>MQY6#K;He^+0?~BXO;42UbdgNk!Lvm&1)}K^H$6kL5s^$A z;Q1n%0?~Ato351XLJ_a);Kd@Dx|&n*ji9cA-)dEJD1IK)ZQw6k)tre(gSrO(wN=fL zs9tKh+rf22S?-NA+#;wuz%5(VY}6fsx)Xd~tD5uB7u0od-&XYv8h-LJa*tHb5MCJh zO8kTV#2~9?`l{=HEB)_9suwuLOo!XRPl?in&j9~)g){i9NNdvuUSP_2;WMC;WbNr* zFX5>o{gNC4tPCu0o=A(=3F4mr%dQ@7ynor1h})WP*C;qmq_^w$2tE+le!-l;0`o*X z2fU<>G~UtFO#nyz(#+~8%t1l!rf<-27ZVKt9}?+D!plZs76f^2db)`Qndtd}b?qB9 z+{Q$+fKdM;!w&{Au(wFRa;3@yJ{rV6feDpa9_vzR7F>?yNM%U4B=WibpdhPe`m_W7 zSN?}duSXZ^V*~5nFG+j2i3ZUw3M>%v9F=Z6EITBpx8TNR+I)jx>%i_P_&{KRT}Amq z5TMW0eR+0bX+eSD-0RMgx?!8N>ziQ{z=DlgST@OaNECxdh|=z6!1U67WpIp$AmCzC z#@)?;*(d9~icsz>U`x@2%Isp=vx|Dt@~x23kzXX!NaYj4(DKfx670uuz5mN+DGi97211d?@Ue2GDW3d$4Ed)3vu)wJzo_-+i z`2qHD;~iik{#(RW04K>;EBksuJ+M0o_6RKSVNt$s9+lI&rfvc_>HxQm!VCtvSC8qY zCh7&Y6xqL&2eUNDy~o*CiSgRUwCQvFUnN>2(m4bsnszp@zOl1_sUn@<+B=2Qf|#j< zM6-)Tv%Ne*{VPNTLRXFo82pP2vk5gLNa@PVzyhH`M|o5$^gmblpUXN&F&AIKTt+G< z3D1bUCqTb6$f}vX>iTa%W>!wK?5v^#bBfZ^jw{?};r<5m znO*qI#%CZz0zw0iuKwrrh5vXt&rzITe2IyURQ@1*B=Q~;{jY+on(0%{?@0eWkyaYG z+f0YszH7U&$q3I z8*keZaWnJn8U?o#X=A-#ut#9e6ZC_S^x0<>M;HVp~eH7-VAouDq-Q7gJ zKvSd}Z)gN;dP^l(v62`qKRe!>x%S`%GJQFO*|KPr?InukBM~q)#nTM z4`QYjlFluX&h=6W`|4l_#0+iVWE0ORGR!?vlA}#JtB5+Mh&sokdMMr0MB37PW)o>g zW9KXvtS~l8U$)0ZJtgrBwgHz*Sk!Bt=? zI6biU37!lr@VqELas)WX)J@E*cczTbNd{Dsti7CXDaV~s=zJ64H-QCy zE8;l`;+`K`4>#VSCE_1NoI~&hksea*3ehPNd!pc?zyeo_@9rUZXMfK%io ze(KwV@2~)~n7}Gy=hHMAs~CBvu@DO&i!Q}>@DUTwE3(ahpL~1FKZ`oAh&s=s66!W{ zp9RFIHSi%5&n40V~Azlb0p4N2DCon-Ch?w_id zPZg(#CRFzOw%~t^omF&ZzoNAHYrD_G{Zr;M{|>=V%kJ|F_jENC+2`VZj`_^{t>E`% z_j!eTx`PV$Ik;bFK64)uJX&_2Tezpoh7}-$E}J6KY$9D^(mBrxo(l#=8|D;|(q&V) z&%*t3^O;@v%*JOskx~I+e+{L-O)C8JRVe)b`_>me|9!s;pZ~teh0l1ME#{NAv+x`FK znI1iV6y}X)ntnirX@`l@>(5IPz1qCzQ|P9~&I7hEb{0Sh{5$|$6!`9?!sQ|z17Os| z!}Vfb^L$>}ThT+x_P9t+Kxom?ogmg)ws!Z@+gAGfi6>7nLOdIy0dzpg+Cd^tsLTU8jh$O`V&0b|x!R<&idoL}407|;C+c$|%@T+S zYDI#%B-q$O%^|@y#?HM_aFelFf;mNkbXgMhg^&P<3EGMTb4bu(p=Ohy%h)+T68x{R zS%TR`f^?mFRL!6WI-8&ynEQN!?qclhUkUCqHVZnx2%2tIB89Cs3m}^MZWyA@BI*Y% z)Ohwpoa^ z_G$=mU>0KBz3L%eaZ`E#{RpaPdD@AE`zvg@!hO7bR=B^yhAQ00+eL-@D{P&@eZ2kB z)MEeRdb&PRnfMi5z9M-4gZ}xTuV(u66gf`%e@m}x9rZdQvF`m%Y5!!}LEz68Xs8nm zNf&qG)n-W-cY^DR@+W|eO*TBFf0L}`2|)P!MO^COgCgDa4-5Vk*sm$mk42IKcZ>2T z00AbNx(Q4b=?O4@6y}~F&!<8TJuZO|w9kWP@2Pi78w~s1kSAqf*-sTOiV%YpO)oue z8CWMPHs9Ur3|@^;)*uZ@*4~}99=E?!70+0?^LvzHhDi4eaDYg$>a=EpV(H023Kl+l zi1;k@M5<=fX!mI#_ts>#ZP^(0;=nA#|FwMPVSDNSShK?L|5&KPaJ<#YmZUHoZynlI)FUEpw`YVeM&4VF{_!BI zX8N?tca-iuA{}+$?`Aq&1D_JbBRQka0RMO-XVe+|Q^ei}UofS;FVCnmppsLPmmdfD)K=rGGgE~-%3@n*NkFuJ=QbEck$L3T-$fnOByF(Ur)32GgdF~8tmWE@YQ zxmUibpZbc}iw_7NkGzLR|N9`TX8N=jx0dccksh_E9|^2`&(mfY1 zV3D!Cz`Y`l3;1VII$R8xQ#vjT9ui>MxZeg&7}FFTQaLBwC2g6K1sH5xvB1L~2=%fhy= z1>UPb|Bs-rX8N>mI;Go8qn_>w5SRxrRnHg5MigI8Iy;dXExs1iT(GoX@W z?d9~z>jjavDFI$B8?nG75uf=%++P!7>0hYThklRun(zt~gn7)x3dWWNKVk9v&Jlb* zuy+c69awkzn1;(u)C4frE!H*)^ZOvrO)oG}KQJn?-%JMcuOMeGRTZ5r3<-W~+ChLd zinkcXOehY0Zlz0Yv80X)?&piZbxCqRiz2 z4M$CV%rY>z7xOCXzuoHo-RP1i}(4o5)7ad$Xz&KI%6!3#w?uonxi3+!WprvmHs;&hFP`hahX zbSWkX`n()nk=jMMpN@MaO#Ak$6O zKKEqpnZ1~N6MtHH&#@AknL2G7WWN^S;!VljnG81hMULzfQ3jqUQhU9MPih!l(qbb! zS)?#kFjnL)mrLYTmH)u$~{~ulF0&nS9zW-&c7>6=tV${$$WgMF# zNn&U>c4IfK!(MCcrYXB9bTXKRBwGg}CA))EvQ&=$sHr9feyUOP>AZpw3))W70fJ=BZ+yHtOVLMsZKVojG! z1HY-r|6`gQBdbSq+UmZ!kk z3f?jx`g{-0<}H&A^F3%}^t?&F+=Jln6uMuY5v(aAr5_M1_B4yWt?KR8umR9mZ<%R* zlEbZOIb}4RVpJPgTcNki;y%gOoo6m*dKx=eVpI=cpVDiE#!M((=DAIJ%P$5_ALYED%PY?CdJqt!3dJV0chY9!H z#DV82G`w6sTbD^ve$N2+eT8hMfom`66}dl|WXTNhZ;J4`x?7id`LYD=9||q=Ebu`^kle4!yrNkG_pm~e>EOQ= zLGqX`S$vht#=FS~lD>YJ#phX&=XJk9EtF4qTQg(8aPW)J*2r}qSZr}t1T6@2bpEnKF_&opS#SX zkgmM&0yk?F?WSk$%^Kt0Hr!T_loJZ~Jq6Zz)h2gyiPvX^`h+fT_WJZtpPsvCwdg~? zV#`!5aOFq^t~_r7R~}n%X*$_&R8*cq7Pz!Mcg!fABLA-NMfs$Vq8AvN&qi4vxs zBxN<>&QbC#+f~nD>Fzx^6H;qQ&+27clwE2 zxTd0NZ&$|HUkRpG|7_bC>gQRx@q>vPyhx!GSVLhya|_Yur_~($nOg+2%TFsK^Zw!a zpn|6r__#vP;_cPVo2{$n4T9f!nnmZT(UaD&1<=^OTuAa4YubuUcQL8~%vI>Yc3_|6 z56;J?cNoz*44;9<10A^8xu3w5=T+dgSVg<(nftT)xYuUh z43b&73^$U7kk@VUa1QqR>`N1~>EP>lpA<1-bwjxNj&?N^+MK+amPd*DlTkes|L_#JS25vH3_*{pd=%qzgMvpf_*;bz@2!ISJv~>_<%)2m5#4Lm z2JlK%?fFV_sWmM>m}Y;yv9Nce@}Ry@)X&YR3EU~IHhmg+m!f(Sg%s3ghPKl>ZA{IhKJd&(FY>$8g}v z(>!n!`c2E0yS-b($V(Nuf7$T#uPq55Q}F2|{r8YA^Xf(JahJ>npP49mQkQu_vjpzH z3T?~`u&xCQz0`D>*Emby*6?-R0(`L|NY>J2UiK`3TTh{0rh^+Og5+hoWQSCql_hX9 z5(jRq2oml=mmHcEc7wjkB!||(T_#Fc;3O$~3%9F+Ur~bZP=sDs;3O$q57$&kG8O!Q zB1l-^Bq=8Y?m&ek>w=$D1PKeAB<0}1jVUCV27Xl$BrI@}lye1lib9gC_LPvOj#S)|K6p-CUg89oDzw@u*YkG|6Y3MDu*mB(Lw&+@4)gkUp*~@1pZEHVP@gc( z?|6N7s85*k3a?KO^)h{SojK~>D`SFtU*f=n6yejw2XvVvWf*WDQpjcoc&H*s4%TIo zl%C<1D7fpvPbh-q2wf&gdA7iPQX$DS@Uw~_`IIh`q&&gkj#EgoF8D=7kbGX3Nm8DZ za9>hLG8H^U5hP#HWs;Of4BV*-N$TL~iXb^nmr0V3XASNQg(QaQ4CXq`ckq3i6}hWS zvSb!`og#eX{JAdkQOpv!8x%USbHJMwLGmkI=F^!aaJMKVnF-#h2$I`$nGbB1!2MAn z$#&p9iXi#3F7p}A61cxBB$)v|pa_!tbeWHJmcTuvkYqOagd#{D)nz{ESpxT@LXzp= zbBZAOk1n|>R4z9>TrG3LH55Ve5?%5{)V3W3y1cq~Cf8p(QNE)t2PabVb-C|E>b<&L zI*~d;mtUMneMy&RPNdG(&^#FQ#MjDnAk(De9MI z)C4xxD0O_MftxC-PZL}*(dyFySFcvk9%PnP`#k5WeO}Q#3h8F8f-CQu&~D}`+Ld=o zXjdNKfh+Hhz?G-=RhsklHvLv8m%9gUP|L|s^Dayt_P$=96Y3MDu+-}_Lw&+@zUcMs zLVd#2&h+|>P@gc(OT9ij)F({&w_cwf>Sg-uK68vedcl205&lScOx3L1HE_o&B&~yA zPz1>dx=haHO$2w6LXxTA*AzkWWnCsodEdc(T_MT3;OUAW`Iat|q`Xz(&QM4)4LnB? zBxmX}Ny;+7ou`mwI=D;`Bp2v1Ny^H@{a7K%4Dez_kX)$CB$=7dF5IOGNoIoAD}v-N zy3A)SOW+<*aOS}OQ-mkq!@A7JFH7K_P)ITdd{z-8Pw6tB$Si?-P9e!m@I^W?L9&`I z^C8U=xHT1$YzMwX5hQEtGN0Qlft#j~WCpmQB1qQPWj@MT0=JPulG)%aMUc$YWj@_m z0=Jn$lIh^qiXhoim)r;{mzx}J+r)u$6hXox)g{$WxNxsi@M#C!M-e1!W0I8n1@7$% zK2w43Qv?aym?Y(Xf!kjp$yD&;iXdSdlcd})aGy{}vMzYCB1qWABq{d`+?N%SOasqR z1PR-iB-Q;Q?mUGg)4|IXLBcjBNx5I(u2e`e1H4rcB)`>VlFZCo33t0fl9?d&Aep1r z&AIma8L$0Rcv;G`ocj6B)kD2($h%eBU!fN}@I!05#E|CtG%*UUNIaOj7|mT^@ezey zt-vt~y@jXrNltP;HeGB~6IiOyKh(5ZpX5a6W7D4))nNcDJC>!{Y|P~DQcI?ZN{~?3g4dctfs!3bM;U!3wgildsuymA#JpJ`-6jt2b1sq z*%#f@3VqlCUaBT*=!;;BYn%1Srz@uV_2#Sfxq4-2@jpyfSCh4Ci^pEO#UZuLHlNbB zYcpD0Gp@h3t}s(8XVfa2M`iBdVGZpG8)Xk*qHAhYOKNLu*5_g%5##%d$WtyY^1LCe zMYQ$Fw*khf&z}Hu*D(i}aQMwpXvi!kRU4w#y27_{1K}nq&plFqv2*oMFWdNO)sI)` zegKkuG|MUXt=s_aQs}JL`y>xLpPM2-&8Qx5mO}sB_G*2S`<#zWzhqP!NS!Xqsx(^A#FJ9 z;JJwhlW#ff=-#E!VFwOTs0AI);gt4Xd0JFu<74m-(i z&ezg^$m>RRfvF1p&xWS-N#5vuE&WH+$8fIofYfO@?Dv&&oAQ4YI#~-r%(P6vGzBz6 zd2PyT>A!y!hgNpbd8-UM7$6dxHB_@_=7M+?ip4V6=qg|PR||JYc~(>3*tvSBm$g4# z^It zb4U2@lxIikL(bJhy)5%PRbQ;oUIR%!n&qS7zG>wyu#uc}Zm0H1nhM<+xGwZGt3IHn zpEgwo*j!c3sPV#bn{w)NQ7$tMS2ux^6;h9Y-&JU&z;%gcB&mau?65>NcjyI&g_T1O zhab7a!r)LgkEXeY>S^kryzg(eH4&0@%Q%>@* z^Vy1~=Q{;lWoZw%U7=HcM4#ku&S%wkb$PZ?UEu$D6-YxZ%T7!8Zv!h797B-N=#&H4 z$J2?atGZdG^IVC#Srkq=)n88X3F2xN<&@9T629Z-zRZh+2c|sFl6u>@dZ^cP{jI7G zD)fUiFl=cLNKT`J7FyE| zsslWYs-sNR0@6^*hAb5404p~DlqxrZ!$@|34;JP2 z`LHyL-2zA!Hb$h9EesZ|U{UU$kEtDPbgo0wVVb_)7NI;0C@)vUIlx`%Tp1MHP0p2G z@}$%Y&Mbw}yb_Cb`Q>ZOxz-n+oAOvc#kqQ@*K_@B>0hL}PA;&YLYsP2pXA%lBRj{_ zsJh(-(gCJgwFhjWu-la6BhF{l)oSXh29SnYjzU%LQhrXM^%@2ljq(I zldfComY6>2${EVt$!kIAZ=}+VF9`jWJ-SZgxk;g$1VAban^Ed|VX$Zfi?XHEXHA+0 z+=kATA;N9vTmf*2Yo0N_c(B^Ab^C;aok`>$(09)gM#ntpgV$nzn%*E$sjYDC}`T@+DK1Cm*VRTmM~P4O8_1OkSiv zW~{OKG}1J(a%5=j-F1Pj6&wxlFoj;+j|u24o|sD245}`wlTFnOsGZ&AdV!L^+$(v2?&{gqwVM*Y7|p}hu>YB)BdG~|WBq7f|0rcpn^b>)Ew zcZ_poh;UzXu5=IgZRd&~EBU|;HjdiU!l}RXJTE-;N4#DS^>PSaulg>w!);)|(k_sk zMza&#M}5EKNF1 zB*+#9+58|YM~wR2iny$B_d8eC3GP46m5IZx;|o(}0{1HC%Fy6;a<23{O(*G+8?E2k zwZh+|Jnswj%blx-dO6y=tA2}}#s+Yrn(C*RBl{$0D8h#_nx5cIf!i$Y0Ix9B$CmU- zzGkZO7VN6-sveNWR}O40bKa=ms9+7jH^>Q|vEUll_Fby)tI%BpAXRx@uxMd{6h2s# zt=M1n0~N9WlEq-K7!DSL!J_QkN2EK%Er4V(KUj2w#r$AVHhQUaN4f=&EQW%`NU#_R z7Uf)wC7mV`WDA3AL6DWBL;Y?=TvoV;oGa@D_aEoV#NpQPwJkG&+rYUpG`QK$m40v1 z^`*bDerwkWZ%TPSved6|t{&>;$Ud$5vkLtb1x)!BX%9$FquHq@t}7>flmot?u>Xk< z$vMvFrfaL|Tg<5qoT4f(%={na-L2dM-l|9+;7C)yM5gpK~;8VW>Iy5Y8X}P*O+yJs_Y-CO%ApQa#->>siw#koqqt`qy&uatC;qLMuE3{z;+7;%4$YMgg5oZ;|SD zh3+>1r5;?Dj|GbbSfI5+FjWHAsdhJ(dGuqemtN$H+(3m{p{3l`mAF)vt@(^z8#6;{#)~R`s;u~AANw6)YN`M zNph`1JhIz7&912SaTRc$rCnfsHPjutxKDDbsmh$*pt`FXKpJYf*K%2R#L6)moS|Ud zK_8e3B>2V+3Chc(azRjD9+hR=vXVO}blJ#4_|Rk7+MwGj=vqOySJ1Wc!Uf$x&nnfnH_NYtcceUf zQ~$Yh^-wQ2%go#KV~9d;9U#d^vz+qZ?x5TP#^t1+6K3^E&R2wA1=I8c=F|qhWt}d` zMm5Usv~mwPP?3I4AWi+28;7yLYgoXU3U&Z|>+MD#B7g6rdP!BPW>76a)saef;i+RJ zx0^*1z()MCvEWxWwesr(zXpEym_;Y3%C@80ULo6)#@?X>tz86@7AD7=B-LkL(2}V3Df?+os z?ybi26?*jm_^9bX@EgJJ0olNVH`_6alPw23FOuAX!$KU=Am)cbl(SF$LhreJPJ#P{ zb7dRhZgZ||65KzWD{Bt-Z|BO&!L8x5=;q18ZQxv)0^C;4mGRxJ1^m+=Yz1on6h4*m z>_h!8&ecP`+?!k9sktb$*T4_d)LvvH_bS9A`?sgr71c*v1zc}w7uZn^^&%VXldLdR znbSK}cU1#OLoN4XF6(ft9HYUN3hqeI2c`lEz7+Csg7WgHTo9C(M`hWztd!f_&}AbF z;X{vQYlCjDplb!)UO`v3Kj;R6ZaC-$g038qpqm$T-JqKnbY;okqot$0USvTw5@drx zR!-V}Mb-?mg+Vqy$QI^(p#FPB+#9&RI9FC3?tbUWio!kZTv;u+b$qYOO2BRGT$v@@ zYn&@nfP1rZ3-kDDf7G|U6&hddIN?btkM&PFR}b}avuv;0P72)=z%kZzi6PBpI|`nV zcrbM_n!CW_%?dq+fTlvfYnaj}+1L5lbgofNU~h$erch9TR|wmM?K~@$y92*F5u-ON%`37kteVTc3OzV4V8s0x);o z;Q$jBn}-q_GK)#oSsKWl3hsw{g%77ZtEu1RTs_pwHnvn7QD~w-l8@ zS+Dm=u5>;(MgC!(D)bS^1F2H}`mYeGXhoK$^8)IoRoDlHWro${=v{t@TupacS)6k6oLO)}Y0P2x9`xqg$P`c5-fm~q(icbc<#ROSvgRokr; zIs*U`Ek~J)k0rtmd!BM>k>~w_!;Y;_z6~%=9czHO>#ze%I2`uSkXcNs9wTb&Kl?WB zEZjZic_P%ecdj1lWgCB>`f`Oj1d@C-%PIfX$_?N-g&lU1^<=9Der}5VR)w5^I~DrK zG^J0nt~D+9FHNsjXmx?qX*ujGO1Vw>mkOP%g&<~HCg7e#GnBf|u)Gpiit`Ry*+J*6 zGU#A{NNgTI)$EzMAYO%Ht_=R=J=dNR*6#Lw$ZF~jd%Yg&W$izz+UW`{B5i4Ye#eE#1EjoT^~SK}Mq` z2e60E{+PO|n^k%$RibVdiOm|S=TGtp;%XK}!B}7M7hl?~gs(|?cBHAyMRKB&;S1^%Vbxt-c4*<7~baox_-TKaEiRa*+p40uAJl_@tvRc=#G zeU{~B9IkExqpltS4^wEQz&8`kNKyyogW!NTcjyI&g_T1OhtIgf!r)LgkEXeYTKW$z zYce-S6aRxk)2rPld?e+u{%7avpdeUey;>Ht4BmA=zVvV%44pn8L+QS}Z}wSY8~vLV}w^Ku*b zs6s2>1@YB}0M8{lo9?9RH(I#?pp>c+97eJOe6T3D&+gK^#VvqjVPi~#SQso?!J^zh zgVNDP=Q=bUrs-O?2<2fw`B(*0%X5JHvU6onaNl#T^pYo~Uh*K6W|z6@=-|Kkp*c!; ze9B|}Fz4!_UeEO-q`%8|44A8?_Dw{RBNaN)$Uf(3RDIu7z+Wuw0naP!HYJ&Fs$N!o zU6iXDKpJW}3RSsF`F4fYYZzoS%3C0&@RMEnZC}uJE8P;)CtX?p+?~7@1l>rb8($Fm zD|>XB#&f1ZHwl1L7B(ZK$`=NUMzAPbO8pscTc!c`m~&-_a8rG{rF*!SI#>Ko*7d3X zu)b?&2`@-_ULxwJIad$$danOM^;;Br>i|hU8q3rEPPqjfBq#e$Gs!0u;TPFBJz!34 zV0}|{fPED9oo155OjVwIsBSk^7r4*T9)L;uRX1rGSvfMa_U^jCTC(P7fIWp?+_$CP zp!0kxRWqo%sFs+j8C2C~sDpnhbVmRvWjZ%FjNtHH1w4q2@}Xc?_VEwNL-%s9Sct{x z3Y{(hrCJ1ovgx$kLJ?;M_j>2bxZ&nGS2~B=*SX@iOndU@d(E%*fbgl5=T)PAk8|}< zujl$dRbQaG)(2RouqO%0Kb=SRq^D7}u~R_P(jIWILQj&#eUeL@&#JX_>8b{hhFXqA zRqj&WTfr)Uj7E72#B{>y>6-RDNrJ9h>6Vy2>8cejy72`;H&W@w7li)GF1$p#4HVjI zz`Gu|8KogF3>J-GQ8tbGhZJ!daPM=j3=!@K=Suf*pK`AF)$Y^ZtnN3z+M~j!Q=S)| z`hCvTL%ke=Emfbb(0dzry`^0sIgMr~xF2~L_^C|wp?lpv$%6{ryL9kxPorwNsT#m5 zRndTL8&oUa;r}i+RDK z9EkTx_W`#6lEq-K7zq}G!J?d>4<(%@5@ZX5Y<`fHBS!sqiny$Be{!y@6Wqhjm5IZx z<_lA10=I#4WoU5QIam6v{Zn`UzpUTdWy0%Hp0}3za_8!yUXJz-s$Z?p;~4mqn(F8s z*(W(g5k8dBbj+Iqzp%6etY<2Hrjd|p zb7kUi|8cI&1a2K)?=m#FO`I$J-lXdrAF_UHzZc$@@_b~e-{f39)XR~5TJ>iYdKv>$ z9w6-j$!Rn@)x;ejCw-IyzOAtDG?T1wJ~v%kP4_mZHgJxr6TZ_dZZ9kMfVU~q2RPEy zZ#mR2PffHTl#fub$l%io(O;Cm_fb8CU!fAs_2dbv7OJ%#v^fS<*_};_suNVhsP;2e zC#cH)q1s%bzuulbwsW$ui(t~lWDhfG2a~el+pGLqg`N=rN?9x)3l<|-jLO0aBzL^P zuN;;<4*3O(g;;!8DlOpGY1Y;Q+o=Nd`=Ob!Zba^ zn*tYE+5u{&(s!Ckjxtqw3h%1At9n2hUpcV3taY19{Q?DR2yP-Lc*cTjT-!ZVA5iE- z14vb#7c5#>AcYSWWh>sM`T~V4fMhWkEQW){V6Z4V*OqR?Er4V(KUj2w#r$AVHu~Mt zz0WOxWHA&hMuNpquqfx^fTYtzf^1=sEeNu5bg2JK5tkM2X6MQ}!QJItnK<0PoGUYd zd)B!!G`RJA4@$pR>iV9?tl!!r!lzQ6k1X|jovVj>IkNv${Q-rZRzQ-EW;x|kAGK`- zmdi;Wgs1gM9#CkNaDBqlta@CkZ<(qGtf{K~3XkL$*0lWEg{JeYX%k5OmlOSbDR(H3 zE40Ex;496jGb*@T0iFA=tGt#%_Zxsx53b9{g2e(X&{`pwEXXD=QG@jrG6B%4kGa94 zkv-spMI&3xkY;1I0FuRC!J-u`_6ioQY_XYiTe$_0ECzzbaIhE%7Ug(tC*5n^0!S9~ zf<-r2%nKIfH0~_ju5JM&i@{(q5-bLTMLE2CB%PKs$QB0K{2(jmoBFwmxV>9<0wj|NhcoJMxJI@R9|rw@PMUV;N51R?=+MAMWH)1 ztHxA!RRc&vE%#b3>yB7CMuU44tUKrfQ-K8ExFJD#c~mY4%FCm&Y+F`x2Zb&hSqL9` zEL$6Ndj(x9==KV_vi(6f5Ol*qHxP8glb258nHO~3pqm$TWywFQrK7z*Q(#z`sjb|Bemj~)C#cG{qdHh2+mpt= zrUb2B1d|pfx7t+N!K9oMOpZ{ngm|2jau6Fm#Dd!}Zugs8FSwNx_Gy(rXQ~E}26XON zu;^kjN3+sM&mAMdh=)Zm?B>n>f*POfh5$ZlIuQIu@Y_u`@ZhGh(>)v9MzUL8B)!Oj z!$KU=Am#^IIs4R~_nyn=6u4grjE$xCR^i)Io_(nA=3G70%f0zY)nEA^+iPGgHMKvrk?f_=89=s= zr`Z+NH40UMP0XMRd`Y2?nxlP^^-Wdg^rNC`ph`n6_hT;WaI74o!OLZ#H68+eU@DN{ zOCb*@C@+u71wnavRF-YaO1aGqT{f~1KJ-|&Ht6;Wx>nHb6?A3$gKi+`hJ$V(=*kfZ zx_Lp@4Z3+jSC;(3vgGX`8ws+(AS);B(jsdH*}@>3A7l&jK2U#6+O){+;#^sE+U@CF zSy8x_b7i&Q-tSyl3AiJiE3g8rR zShd3xdWHbkSkonjG}mF-AG{^;VCrK3+y%Ph6|w-nsnG8l>V1;$IG>vyuFDgRY62%I z^quA@eUclTr#E`gizceBGpa}RHcx@u6;o;-n+76Euf{AqO4Kn5y@r8LTiOLqc9tQY z?rheChKy=b^=?sbdDhmY))0=QJgcei?OZ+7%W~IMTcFTi|0wr71#t4=&&XypUe8)I zff<%IfXx+Jf|TR9(9?=Y&FM-bL>O;v`h+NIj@6zD3}tQ|gWjgRS{h~|P(t*!4e z=^x56E|2mhiK8+@|15Lv7;7JH3wW7AFD_tXOIy`o+gTGDzFdubDy2Fq>M?~*VeNV0 z)c<;()zts(^?In6)&7iXpHt{$0#94hC5AMY?I^gq*)B0mU5w@~(0xxK3*ZKt>;J(* zpX65ObJG)bdA3nq;5>z18&mou&p1zSFH&#eMP&zld99y$r1%i{3+oHDbH%^M>tmx^|Hh}t2U<4fu?-CrvOfq z4m6GTv=&X^ZI(8GVTB!Nk`d?g5KtXsR5Ont9OyTy@=2?9sUGJk@Hs^}&|EO8c%btr z|JQ-W+K1Z$-lEWf1{PS_ss>w*Y-l)7jeIJlda|gkp7Yh-Nw{0e^HiyC>s&q5%W7Y! z`U-{44{(#EJs>%aW~VE}{lUr&;J*qxwD8j{Qs^lOJgU$SEA>9f`qs3( zy=dy4c7Yvis7nkPt`5;6@C}Iv)4&$x-mWheO)P$=&_^!dUQ3&FJ4HgVS#zT(@3viO zI%w`UO}o-`vZiX-`}+$Wt7>Nz+PUif2Ajip?RMdxQ=Yx4|Ju2FsF!W}uxdA3eTgA$ zc-Vk z4r95?Q-GnYlOOD(;i-503`WnmQ&u<%1z)zg+8@R z>y!M<`Rp1VOqFRH(;cm07x;`qZ-#oGWZe1K*XB+E%qqPDNUv6KlYxwK((7S{D4$0U z*jk~Z1nh2U?=u4Lu-yHx66KmsrD>tr$26TvQyv3V!^VeS=vY--tI*yg!6FTd7tTS# zBT}9hfcmI&^-wQ+^_=SaSzZ4ItB^L_Ti{`d2a|8vM06XA*Ma~$DeT@N*-H@~h%{Z_ zDPWeREno|U?ybdrl3kq717Am%2N>01EQfmvFqBo^TS&a4Ca|GG_ZIMKOPdVNyD9fp zrRi0gE}Ge<=~bF?e^d?IuXv$jRqa;OD%xWt_}pr~UtblTmhwDp>L)r^5B0KN|4;QF zDD*f7lDupS<;Shu1xDm#f7T&6S)n%_uHW!9cZ$=Krs@H6RJA|rkc?Z?9;$D88dbNM zstqu!bOVth;NHrUm~?Ngl)}Xg;6VkyWCH8fO@q$gXC_N>kF_gR{<%WW1puY`2oB?e zI3R_uEXD`3$91azQXvZYsG39_r6xhJ3EnrK9-PR<-&S%wwMb$%<##cVhROKe+7fZ~7fwRr1 z$w=^=u#Rdv&B|?HJ4-vX{FJjy_4A%i9*7olICrJHgPssV=dQw!7mt?VcPmjZh(;<= z`MgDWQ}e7&a;0upt5lv!Rkd4H%QK{^_Nr>>?PT>dv+hS=YvC>_&l9IU%ei`}mm_eo z>enfBx`8Ag&GMg%o3c9P9`K+-&x%=nl2^-CJgz%?8dZ;&X$N?b88m=x%|Jf_l04~r zRNZf?Ho&aXV}z7$v`vfhBqlv!el5knOxyq-v$P33qu}^}yIGITt5fIkRNbcXg9>dw z;0En%pyffo!1V2`7n=uvN71yZjUTHGw1_&GP-lU2EkI@Nqfm%ltF?BtKE;b&BgsPowGvQ?-C; zs_KNS+b8*|H7%dC>A?H%0Zb)5HAwO1fs#i)>4EaWB5okQQlURYEFU9zK%sMeh#Wqn zFg}m(P}P=Ny$zsMFN48jg?S*R5KLB#Ws@VNI@(QuWHJ;?Rz{PdV6w89d|Jxm+yqD_ zWj5-3E|Wbhp zZ&gfKS;)JctX2y0StqNRL%zt@w@d|YUFXW!CJl%t8u|!FiG7U&(&gXRv~uk+;eS$| zXL+US_d8b)^>QoxTlKfAuE!2=p+Y|eFX@v!>U@@kmkO%acok?^+5(m;bnFl8lU(V1 z9?L6qxv^0Vzzw=U8g+R_R^B z9z^ygZwh$7<0Bwanq-UcnL0QO<&Jf#f@-Kzl?ULaGNiRyR-$eYl{tp(-ckaZ=;KXj zIgI_oPP1E2d79UqmhV!;wSwEvxN0Tf4t1{lb*dU#dta4&N6Q?lYWILrEf4Xk+FM$x zhly@KOo6RvwRnE$62`rd{M#tr_1p* z3jI6e!`8{~2)t2Y7URZdoK0?6Mgm`&~-?k;b*tXPifBptVoHLQI__^p&@5%teIR}b}a zo1CipLkd1u3VLd44|tLh zfi&v!fUn98%J(T)b8sE=Y%o6Tq4R&0s#B@P2T-kNs!pY<9&1^pr5;4~M}vQ4qaZhgbk zye_nSRuR_Sb>5IM+N7QwS#KmIuYdQvRQt0Lf$^n4BL?27<}?#pFpTpK%i) znG6P#Wzl3Xm{gCf=cQcTrrQOQ$xtv^9!-XVN%bgQQ_6MR1V|=vT~|btxUkiucfF+4 z!iL^gM&WSiy?Q)X!XCm+Y#<$g=GudiEDMhbws~L0guR7a>SVQ7kl%E&T6@T|oUGOo z@_Z+&wSoMJlhs@yFLAP($E3m2hQVJhsh(Bsc`F*=QB!uhI92$FL&#m zst>&c%O>!5h3>J%eUe$yiO;g|o&Z{%7LI<8I=P;S)GdKwP>r`h*|(*^)d*~Ho5~a01gX?4NbCL zI5=ynw2ng0TOgSYw07wR9zjW^ggR)=Yok{sUinxVvJ;j9m zfjrzAR{tIb+(*1&buU4F%E@ZgAWu-RCV3CSEI*-=pVKn4s@kniad~^r(Ot3U%gnE~ zKsb`}>`ncx&ecP`+;JaPeX-qHZ6L`F~R0I*Pb@^?aJu1F^n!z=w<=Zz?PZk1vaooc2twR!zZcf zmrd0K(y&&VTe3LQEVlJwtsKiH8snK|Sf@z)4YvWX(RR)alRMX3-Ygdi!K8Yl<>_dZ z5ngG2T_BBQxp|vgsnE!)HzwqoS{{+rWm;3ir)z?*B69&#w z*c+4NZs)U1O|mPhKPf~3>siAV@OFjXm~;CiKXg8;maFMSrfL9g&<4_|%Nw&QHz>bI zK0H^!EzPsR_^^+U+e+2TDs9U0F=Shtte0iR=W$iKPS)u$fa(xab+RhFF|&rVm_;&O zVV%*QLe^O!_jai!bcI4sJ^(R?F_^53CIi8wdJSAH)wON{B$Gk#KBGIpi+mg-AU5h} zFx!Qf=P%XtH>PR<$!sW(NH=>h7^)1)GvF4f{@?~cGALW8`zsiftqZput)~7y=jx$eZoc(YTVJ71fWZ5$=@LVlYnc0khb10NUF@H`KsQ?<3t(4; z{*YMjlkDkyZn~i^w>7E>?4Z!CKBZ6cLFeg>9>T4T>OiAYh`T$RhZq_%s!7#jMBSs%y3`&KK9%yUrhcz;^-wR%eWq#;DRlHH zKj|relMjDJHly(mtwj@9VQB-nTA?*Qx=(Vg^HKG%QO!Jpu$Jej@_<#lRG;t^__v~b zp_mIs6~9oNNBO_LP>i(?w*~xIq5BrN%+gjh*mAf-!=I{=Po-3AFJGOlxH>d8P3&1y)5x8V=-&zdnDRVT>c4cZ9_nSayQ+;S^xgs%TiOGX z(`a_uSKKG8+yK6d{i{je@w)2=ifG$&ZYcBLs_@T(g3j#Z;c zj#ag@3hmtzd~ieGro)9}DbM4f{!!=Zpq#TU}+0@okII}M4x1y^I5f#EQ>kPj!j4# zZYXg5#DmFqH2b2vOraeDeuoV=6vkO=(awhPx8F;*@~v$a0rJG9(XbJc^Iscz%x z& zU8eR8d6JtHdYsU~?>&vGlTFnD&at!s+@jEFo7yM&j;YG)pT1nx0+?WWqL9*!c5G3e z&!mUVVkwp=bgBXOX#?L@aFW15>#=>5fX?FqWA;ZXWB|B9Hyh|KNB>UKce6g+`$wz# zX_o`&G}^&R-$IWNx-uxADvne6B!&71lEF}A&HWf)bpS#442<8F=r;*D(%wOP={ujT zX!<6nfUc!2;Qb0cdq(>tUv)mKUZYD_^?)?K^6aU~P0DXquw3AQ3O#!m37&BkQ8ldG z20m zi#x!|9bh9l+1KVt+6vurxGwTEsy=9{7O+gA6S8ifWG8D{4mcfn|2=@Iq(=!U-rAc* zdE}FxGHVxc1M#TBe!Wfd1%=MZOXaY+V#2SzU#8jyR&N7nc?<-P6=QfHrVvc3Ux~j$ z4K`6|A%J8u6iik|lc8Wz{R(|EDPQd-Kr$(_QRj2RK+0_3^I~r!-S%z)B#YrZ4mBMJ z7Q=ZM@Y&+ENvEkGn`>@eAg#biR)w1b(~l`8tSsa)PF5=gd76{e%puQG#HqlY?_3$% zqyf=Hk`ay)`x*zN%VTF*x%Oq@H&dQxIjZ^z&ecP`+zO|t{-9Ylfv%eB7y3*3B;yJ_ zjm(RkX2gXL1ceW=q3cb-|-O;DNV9Pc<%;>q1>@fRZtC8 zs`3E5N~W|{%SzM@qB6&@-Pfd1=`&AgIgI_66r$O!Q$5YQMayRtajoE1S2InioI1Fd zIamI)RSm8Eyvi)O2ArL%YIjXlyjmXORkgQ4sg{TM8KVBSnT??KsPO5OXK(8FIad$$ za&m7|{Z57E3?%tzmQ((ecaU0l5!IpsAS~qP5cZHc$uh9pjTFX>Dzzw?D zz#c?6>|qYw>@eX0g@x-nLAPQIUE6fMpsSu?k4X2pLU%rZR=z98NMG#I+@O5Cg7XZ1Um*j=hkbnVRH{y;8XrLQLsNAsRrPGjD)s@{QQj2r ze#b{Zq%_GE;VB&)hH}R`{y{ZVsmc>>KN-?mEh|wsh{_zpK|eqOn&{CKS`K4B#}>QC zZoSddd8jehs8q{Sdaee! z#j9;mYp)f)G39yG)Mq5|xN{Yr2S8~|w5%iQ2`u6ZD)5KOA?XMIVkueb@2Oa_9<`O#z`m{i{; z`?{3hauXn#3U9QARU0_+JliS3y%r5`FVxyc|N9)8~BD-dj+|x zlhxWozSYTUEg^@Ttkwpy?PN7q$c0W;^O!Vv+A#R{s2!&;41TVT_VTT)T)RqmeaiDZ zsIPFY9_r<8JyP`t6nbL-$EvA)laJ&|h4?HB?-^8=x(ayM(iX728R*v}BwsRv@}410z2H*y5AdR}bXR308^4}FaB*7P%XM^!!AD^9-s+U#vx<|H_$$D8f;bTCh>t>yv zSUGJyslZpeVs)zT``7?_7t+t3ad~K1m()890<{FIzNEu>72#eiZo<++Zt7&UYLHvIy1YHZEMKXTpVKn4s@kniad~^* zB*Ast*c#Vv75*vZd1TaYbgmxi<&Jw=^{KP%&H|ErG|TJa{hRRg$3p&w(W^+|qUP0NolG<};wM;KrN=`BdgICW+gLB2wYeN5a24pXpc z;O}jy?bT)QJu|63a&MxttGZdG-8y3o*#jo)W|{GM1u9)9=*~3Vv!?5zTTh|W1kkfA zs&7JXrY>Hs&>ak5qx$({!S7u2!^kROB-QhN8|ij%8z9*%Gn)??-vfL-#^-|TxZ$!f z62=vt8Lv})XOlI7WVhVx4luq8B)b8S*=c;s$MQ78{j;m;Z#G#INOmjCZp8Qwkn9G* z_1$j87>SRr{HV2OYO6I1O;=je-`PZ(`FMmk0Zl)ph&M6Zu?h{m`Widrx16l@338c} z)v7~Yq~Hmf&jj4BoEwPTpPVZ{sIdsN)d;x>e2V2$;@z6Y@OI{0d#~`IlxIikBhJ-B zz1+Gpw$(3O6>PQ59_HHu5UcG#Fj*N*27*cT26&59d%FpcOa{RN zjqU)9McyM}OoQ1jyf^nzvv-)P1thbfJR-d}gTYW`P~I+Wsov!VKr$#>ryD#Nl&uT* zJ>}CCaW~<TB)K<&|D-&7Q@`K2dZ?G1?@OwEU7_;~JYY?i7}8wB+#h@*@nGs=|J((- z3ly>du2SfIS?`lv=X`9s%&0c-Q^o4F!>05}9(11G{_Sa0J#18u>QkNqPb>J^JIJsm zyMVsG8^Af1c7cnWWr)`}8#_Bq)D-oV^-}_J=Rm;I7RsyG8c?CehoQ~{(pT9 zc?Y%kX|#Zy6?!lL^DJ#ulPGr&!%3Pvub^crKIU`nW3B zTD42{R!@Q36y;vxg3-o%DUbet-Al))y-%YB9Iw#M0;gKqswPox4Th66d0s)wRD9M& z5UMycbM7T@Qp>wVef2fIh2IgLm-5^X^;4azhkDt<%~ac3p?e8P^3g1(yqlF9z(EST zPe_h*J~rLMs4mb}*gxV;a+ve6DZOdO0LGtg8d8R-6S*i4chdb-jkt~Y_11cc;R5CA znZX^L=-lO&y7n$RS*0l>?kMzsvnYH{ta>VU%${nzk0O5934Y9#o`XqMZPFV{Ge!Sj zFF`{$kbjWCM0oXeW>AlkDYu zwxa23P65*_Z2_|s`U&BPKFJ%L&#He)b%0SF`aj%LfT6DPi_DLfj+%6|hDqAMwhGo5 z^nS{{@l+A@Dp42FmI|$Wr70iw7@NPwxghkDuH<*Hw$&;kHSKAPo}|7ztX zu(zD_9G%uDIa;AxF}sH6=n6GmX{rWri=}PgUWIPb5pXrrw}I4c`Gk&vt6BgPOt&*B zJ#we#o+sVu%)`Y!;0^_60(?%PnZ8a2uUF{D5#a6SSN+Q8mulq(oot}T1NxVksDmDn z*t}4Tn7K}=EuI4YT%mggNMp$@8Qw1xd{70wTs}8EDC+;LTn#9Ug4LSTbyaOKMwV79 zGP1_zQ%LbsS5rV2mS;mHY*2m1TN--HGN_Z)>+Y|^XuP(Ma3tk;lwGO% z!wRhk@NzY^rwGXwitxFKruTSL;4w>Ez!X#Ie-1&ik*Ug5ZdCnkMs?`F=PAHYSNRmV zMH26*3EZd9egZF+gcAdLKV_TmETUc|>LOZGjn#3bDK|D_OC9C)qVKyDdWryEEuRxB z=k_zIP8vd0?N$p>I;*NS6MF_3t@X5B0LY z$Etq3EkGCevZXyBIgMr~xJSJVES9Oh6g{m^a-KpxC{JKq1J=o%dDIBfr2C5r2OXYe3h3e zbf5v0QZ<6Z5DrM;gGKp9#>J{%rjP}YEQW){K(H7N76WG=+Y?UjzJ}LIwaP;a4{-%~=Yytb?nVa2^Tk@ndf~1zg3%a#QAgg*P?yPRk=` zbuHQ2lU5sUhI3{4rt5lV=gN9u6&4}weT_>Mx)<|FzfKXyJ_(R4?rfFVm;z*2=i;Vtfyoa1~}ZK+FF z^?)?K@{8Z9+@!phiQ51p&|NYDx@UO~XAzI-O4Y4YOHA#m@^GwF2i2=J{f9(qca%>iawU30on&GUa(T)PLw)J=Dty+vxTBC96XB0g&XQSw36b zVOH(}N6AS)0nX}^ELUjValOpbsCuuddcaak8^8q$`)QNpI8&9Ig}&aS(3>7$R_VD< zN;f)ii}EBUy%HGwjwWsZ`&rrqKCIv6cDHf^aD!Gh(DI=Foi%7@ zefU^CSCx4REE__ER4*@!B7S z_oX~98TDJ7tA~2Ii62pYNOdhZaHhgu6C^)%K3marXQzO7SlR+UuFz{@v`_N?oX@Jd zE~h#LxIqs{LoII%T6(z&yj7v24=@P0EC>5%Ai{rEHNWDC_A*V z6q}ks3vh$+MrF{e48|MP2+AF^T~cWTm8cU$!(+1 z%@v$caE?MMfUY%y+_D-;yV{eoXjQdaRac?yRn;=xO53TbWnNX)Hjcx=n+RO$`6xJP z6CV-vqc_rYymqOX*ualG^0;) zi9+j!>ouN6)sIcp12$DvKhmt*C;6&1Eo(vt-hUHdD(M|ViZ`#HJn~7epRJ3ygZNy9 z{gs*I{}j3hj+Vn06chgXyt8V%TD<|FRWF0tL-|}R(86aA_&mk8sJ^#CH$RXphO&kI zy*79ZWseDe$ZbeD>?S}mX#|s%W5J{mOsc=XG2sa1b>d9WfHM})$8W{`)kW18MgJz^ zUrtv0_ne4VxVmgecGq%q&tM)_p6VAAI^F>Lq_HguKC94K0FucM%0JDC$?;b20CcWj!*9ZTZ#B9F_=wB1E%&UJGg*YCHlZd! zOX$2Axv4(ou`+90%Lb5!^5Y3Z`Kc;Z;YiA3eQ)RL zp&(Q<>B%7G3yhGL& z^es8qH?6yR;%?CeDnsxMqmcB1}(bM;U!Pr?&aKTo0i4@mOSEI(CTQ*s?@;9`ZIb94G6k2;U*e>{z< zf0=0yn6?`R9pFO>{a$GJbU{>k#At~KxxfkV0O#0~fO)1V$@Q}Mx zxR(6M!DAG9qBG`)&1H!pPI`5oKSuIYDu67474m#onZGHt7Qlm+wt@dz+5_lGsug1- zf445%bm_A!ACP~nrvETi3vjO{@E>E_K=N8?UiX_{R4FC^`2Ea6!Wj2^s**c96WDCu>`ar_M`yd)YxZH#YY)5GDaaNu z)NQ>fkeV*YV+lRT=AUs_$V<8-N=$fi&v!VRN3i`Q8%vv865G zX=fQ8?%M1T@V(YkS@xb0K|l6FNh0#es8qVlTSO|AA+@L>}S8-Ypqu*o(JdCMta+sX}qW!KUHY1rk%CYv*ADYG9e3#Z zQExXlx5FyzE2}Jhw3&@qsoWU0+?0$ zL`jN3%e^R1V$z4rY94LG2P*7y5XqMnI&@7rd{Z&u^HJ8ZlR>y*3?T{%L0SDTKZ0@~ zD9?<_fuOAZr(6G@uXBO7yqx;@sdi(^R3lwRrACnwD!GJu4Mv?f)!yeioHKQzs5h7C zK2o!zi;*y+QG?MQnHV){WXi}$uUwL7ko4x#AS6+gM0tCE-)BARdDhu;@cAsiwbxp| z^{i(-m;ZmCnK=b!Z(y#8%-+DPF9d1`bT>5J0#ZJI86^r<(KSK2I`XmClsmA~V(n_^=F@o3Zxx8X2xP zV{O~bGTdjz+L8NZ*u=I&o$SA4+`)`>9$m$=GboJRvf#_wbm6iT+z;g7%O(ULl>7q##jCZKx9Q1U$=(7o z@A3(}9K5_uS8q?jO&|x?f1&8*>%OIf_`?IUdYdy!&&qpc^|n|Nf!21-ct7u*a<*O3ep?%v_&kE~9#sY3h>M-zM z3e*ia-a)x2vC5m?PVzr9g*E|8Fpv@`P+O+F>Fp`^^DGh|M2oVnjq-H~uWF!`D+dar z;qd<*pn#W2w5I^LTvnbV9UxDF!*fhHS+m5NZApNfWOhihwjGkp4oT`sJY39{B>{4h z-jHNXOwt>Y)I<6vF^{q&Ku*%*~4RDf0_E7e~Ar?9XoMb6I^l-TcEOaV3$%1((>p5V^pVe-6->Q#yBzHY0ckAg6* zUdGoPn(n%uBZYIa?ppx=A!cg?e|aMOL;fcu+Q`7v*{H)n&NS|sus!{dY}_ z_1{uNdxJzgMi??R(%LEO2=K+E_5=U*Iy!vv^bX216RWHYgPoc}2LNW6UvW_xh6jjG zsO#-_8!?`q$W7qANgV>Nl(2)q4{20A@2H-^A<^_+5#-sfalT@Eo+l( zaY{De$&%eWFjM|LC5-U)oC7^1S)P)7EG21$B=w!*01;m%QAq&YwADhA6)DN4TASnv zY3d8%%f*{*++}SqCRIzKk4Ut=0VXB;>Xh?3eNeyWcuK|iVT-obO)(wKM>19?~Jps+8qmWx)}W)Ynz!bGjt~a+2BLCCNMjirpa6mf-UwT2R1>t=BZ}=Svhi z6`XACJuQ2Kg;nenaF#@Afy0v84=_SnX{Ql-h(xpoc(_C~U^uB0SJY{&_!})0m}J#F zl0`k+A^~3ycYj5;uS?>|yG@^eESXT~1{r>D#(E(BD#Jg_ShsgWCuloK+POZ?4l+E` zjCI33Plo-?ST_(C(d*1uZ&=D^&uE+Uf?Qqtds172OhGpuaBEVVfL$l`uQ-MbuV;e4 zv``?2zTRsMp?ysIAqxd^X!*Hz2t9&kY^uVwd_WE@Ki4Mo{FG@3$g^qEt?9-BGON5j zgaP{L;a(OBw0O>2(YO_(-$97@!@sfjb87&@}>%{zu zB>~`aLwb&M6g&wI&oSYQd_&A{TM{5AnH`d>ZHFYYLz4PhbGw*7wj@AK(i@VjiAj1x zl6u^JF6IVH0^}rpoiS+gwXPv^GE`4F%GiN-8h7?3zzYbQ>p}Y+v}kWZztEv73UEEWd}cJHBe6 z4RDf0_E7e~EfzWjoMb6Il$HL8g-!)0SuhV}J%4SXTY{4;jfb*w4_fFnaFRvvP}b-P z3*8#b?RNL;)&0SA5b6{4P5OMCWWv5bQHImaSoiT+GMsD1x-aWW_Aiys&V0E5tG9Jk z@s=G`y#w{WDBGoahpM;i3-|h6!0p2qA8?LDn+)i_6`ZDn@v-a{t9J(?=>Tj?rX z-18&h-C6f7fd9K@YXpCJBD_n!GbHLCa9avJH6h`;DUStzlI>s~;#eO7-iIVg0eo7b zzmMPOpsX}|3|*8=1Hi{5>9+u(eBbPhcBiS4b$c?6;JwRK;D06hv+wC3Wp#Z6daq39 zOSELb`;$5hTxwQIyuz$;u(M?1A4P+i@9vO?qPxh|+s`P>kvyP9mXoqUroPvw2KT&C zczo7<9Q;kQHG;paTSLAPiC(*Kzs*#DOxA}Po{Zq_QbY^bC8H>mF@RFIC^P5Y+uE=>ZZS@9Q!kvVBW!=ZY|1`5T zg1;=`=jH!`L~{VPOQEMGBwR;t9NZ(@!92vc4?&8rrW8%!x03Yl%}^dTdkpuR8?xeOD^ABeAF+<=@|H(T*ny*QC>VuZ2tjT^V z=Q4>}(sPw?ZPtAp{Fj@p5&Wgo!}5JzqKV@EvZ(->x(*A$Z%q*`;GIcr0t+PRu%Nup z>|O$_lai?goGwYf<_G0UvwLOXu)I;8&n53L-s?;Su9uXkZr6dS6%Rn(K1H9J@P*Pf7{wi#%|7Jj`fNiEIZIQ9{1S;au#;qUP93Q{ zUY@1keI)T4Qpm?#895}W-WH?L8ogg_3R+}&)v1yF`xS2)d67&99c~MKm~c+ky;%IS z%+?70vd}lm|0jtaf56ifs+ByegR;9sc27m%R|(ZSTpLjatKKvf`o=$e10OYgKG>CWT*Z$ZVe5OW@aEllSsBGU#?k4bjWzzCb@1Ptk3Cj=tx)eGB+$zy=oC7|P z%q`$WR!jLSOt8LeZh)!egNsVVoN2GT>r8*PkOv@tHRb6CrirL*dkGjZe98EH;S5(! z3(kxbI9xg9h*4xmqUYhJpcP!URxP9K>YBR$$0BsqP`#xm;VFdoD-!*{6QDHpU>KyC z>H)vP2X%dNowO;qL84OtNfaBX1>BMn4gi0Wa9e;jPHDsqG8t*4l7=DuUZR~>)+@jX)oh|Kk!J03fFr3@Q3TiouYg{ILD<%u@Xa?WzLfD+iSpcB}xF0M052?(wg%nifn+BOxQ!|$07^e6r5yY9?HBwX`u;i(DD}X zE4hA`-1Q&kVtd4FrF{?S^S0LB(vPkttq+YI&B`FJwj;gD>o^6;qMVQStqv3dP`N+n;Oi@ z@pJ%RYx+E}tJycn^u7VxVIL7L&AQJ9{{?1i1b^9Kf0qBR65Z`UrjI)v_w4@EA7DV4 z(%(}?`JhC7BkRXZbrzZSPOK5&(4;njizM2?Q#&Yg6RR8+So@^Vet=o!dmoiywBg2l z5?zmk$3=cpqLTtxo&n%s30o0-T*54ri@`Db{~B^lP3|UO30j^&-x}dh6G@$NzN}8) zM&50W4!~2jy_Me&A0pPg=gY6%1)L{I4-%A*ncY(nx`Ua3eUsV`yit;V;Sb7%W_Q-TV%;ZEj{!?C z0_0N5GlfWVw}9uQJOcp5Xo7PK(4$(vj*NsopZ(>K&@yGOy}Q3&-Z*Sp^Q8J`Q#*;(D3h zJDk?I=flFKS@(J4Ki_PP;4ho_Z}J~GlzIVV`nb~@vbB?Y80c3fJ*#GPP%f0HHnM)q z)W~{YVvPWQk?2d$v<}L#DYW#20c`vhz*O>62$kI0y<=W^*8^&cLLP!VUy}ZG66I!z zuEZmhVN8botA<^*%a*{qzBHpZ!qtA0- z_d1>@-U}@SkW(~0MfyYAkfZ52lEag{M9c#%36PTvdJ>H{JLDMj9N0a@>oQMMahldT zu;w^RW+$<7TiLh(#PIB9X||E*c{mlEk=zs7?TJ{8oh)<;I7w4Il%7AwLL1;D&GS%t zyPt(_3ep?R51>>{zx<^qI{1oYJ0qb@rMyFZOs-{;30sI58YJVoHW7J~)%|g~jMqxy zg0Io%uSzB?;16WD-vY~uczX4lLqqb=dc0#2?QbC0u{zapb+WgBTvGjq+n!a!U!68M zr&BAmCCDVC?*QH=QL})Yr2fVqlFUi|A%Ma4T;7%GUXjfGfK^;BHy>G%yU>I~(u7(7 zk(hnqJX8;OI&*i**#vSa^*8%B8anG*8y|Nzt+ncQs z{NB4 ziOL5oK?}%Lm&g9E<^G*T0!O4g{lLeP+N3{|Gfvd!^OLRaj#KsdLl!s7<4E-yi53u`%dG2Cp&f*>u0)0f%#qD{WJ*0m z=2ffSvQpKX&c>WH;_2x)G7()q$Aia7v}(W^No@gsd}8@l$*Da|`Q#MZ4}2i01Awt= zBfJF7bQVo{cM9zX7ALg@Yc^1!VfT({cab8&e~J`O2iPH~V!^E|!F20sV`X3AjC}O<=Z| z`YJW8gYv$_DmOW-FQm{BfT`rSLR2bNkH@_7t{27=#dudDHvt=c7`R2keFy$N)jv$h z3?6@?ajM+&B|5%b} zV+nwqV0KL~5E9I;3Cj6pQID7CkK?ukH(n#3E-QGFMNS1bUJQ?9sm`>>Dd1#1_gL2C ze2Z;>lQq<1Y4{?G-4vXpa~?`#KVhK>C+U%g{zPFvOQH4BxJRFVCz-H){vyL;DX{($ zoz1k}wv=dj%AX6==C}5g%T7^QvFaVDXRIuTdzG)BA~s3exdqsPSX^EqLTHmkzCD#T zZ%dFl>09~^;DZv~S3pitPIO2y_!s$~kwzN;a_FFUDTEF)X=bM9h)+=UmapO=bj}_M z+c$*{06A-UauK>V)i(?<4P|=MK?ZxS{UBN-8fZEYl{6|~j?w8%}t zrzLk2n56sO78Yk$iv%WVvPZH8`&c9}NiRK;Rv&1Qz$8ucNP60`NWf-P8g`CMAC$1K zobe%j{#>%v-EoONUt@8zJdRXhUFovY^xYt|gHY~0BEtga$YwnFGE!5xr72!S_qFYQV>n+5-Ie#PY3@Q+t^5k`&qxT$R)Tz*w~rUV>&ii>7=s zh4uqqN@@$pV@+t)Bn|j(4%M>6swQdbbtSSiwW-5=%2BE3J?97)X5BO4Kf`Q|;4e4f z59PmCqU`}>`nc0^?=ctmFfd!0(w~>1oF$Q+tmm5=S$ihd2=GHm`imDRXQ$8+SQnTY zSyoCvz^w8sBq{{8d(0=%^>$h3F#vg&G^Bn(B+4NYHFtAmI6|UFdi{ru&SND5aZMt^ zz!8}BpIHRv?7&rcc2vl*BxBeNNp z_1}XA=3rp1h|IyjtpDcpf3*-W^gII|Na_$kxEedhY2k(V`C6<4ef4~6yikT&W~>YF z8X1PoSbO^x8UEXhwQXm}u*{6LBbUi=of+$7zbM14W~}q*DxNJx@$6>yQz$<4=M$+v zY=1pbwg!)ps1-oohV}RQ1mdzbvpp#Vw}2eHto+KI5PVsiF7&71ejo?e-|Iv0L#guv zKt33kx9Q16iPr)$ul`=2Fv#*YT|GAiH-Q{n|H-ijs}wqjKRht2w|QIfmRHc~ZLuWA zE%)0Zr8;apHN0n7cvRMXXW&2FY>nVA_uGx~A9pn6i~u_+R9Dfw4$6Q;c4%X!dRAC3 zFcxrpQip*%CAtB}J1Eaitn#LJt61NcXpsR+FaYGL%bVUEa^Gc<03o`S*0oWNmhh?u zTDfwdFk1XRe2iMj{mBz>Ml`zcJO&r^hL_EfR9u>?R)(5wksAwjby zD0^)Ov39ZqKu$1N6AXj|gEc{UZ10g-nnEQF1=5^KDz7u_n%gD3c!HDd3tuhv&D|Ee zDLBdUdnmi(w-(v}Cs||BlW}Dmcl4c_`~SMWT6a2~M&!9?Hr+ z%|fSvlPrRVvPQdD=++>8R=eH(-}-oRa@Uu&`TG1`$%K9Xei;^-vF_tbWcZ{R>%Ocj z*}qyoJM-l`SM|1TF5a@Es&}B?7iGIt?@;xYec@ie3%GssZksNn)1_<_|96Q}0na%GwF%rP(N9sQcTi4Etg=U8JuK0q2VgGwWfql^bz6^l z>0R%+pA@5$$W6dT9|m^SNbD8xvuOgul+57qsj)(#D=h(F2?jiYR$xV&4A-X&Bc37I zy+zlE_a#dKz?FYhJ0w||lE6-$kfy$C-5}nLmIlaaR>w5UW17|Nkfy$Sd`sN#S{fjy zS(DOishOzFfVF3FFPQ6EQxYo1C%0ZX?yz(~PPaCtdotOFfShi2NVhhmE2sEpiv4Ax zHG!ONU74h|PDrsXq$mgNkK+B!QUIjjaSlS&dyHqm>^%zKCfRUH6YHd{!HxHiPoCZN zX^Wf&ZoE-El5KRQMQ#aBwjVr}{c@efP6a1hbdP0I++?v+z{ytDV_Es{S!@HGY}q`P zWxdm4Hw7nK6OU!hHdt)JNt*AW`)C37m&6nH5`8{MGU3b|D#HD!8*)Nu zAN!2kjlV$%GJEN}g0GWk&jC3_`77}uMUy_9V4*+`Eq7xG?Wa5MNuezuhn7cK2pyzn z7pKqxAcqciw@T9;rj_(d)AhDto+Nb6rxf=26gmLptmP+U6fh;ZhXI z?>uH7V72bV6OK!vJ*Nv7WIg)dVYWu_m&exz@y|b&^drD46q>%!pqwI+9oku@dRACR z8VgvM)M4OJiN4Ux>Y&U{tkR4J#ClMohZ2f@V$73JIDu zLAeAD6zd>M0OSONHNikgFjy0md*XGOr4^~9p+K5bN#&8puKA0EFErp}`@&a?ee;CH zZVFDa{2t2gc#1@68{j01?4j&|Z7p;PILT6aC@cL;3!Ms1vS1#{dhTVRTY{4;jfb*w z2UzGdaFRvvP}bK&@yvM=20cLBE#UueKfB$_qQeJeOk2jlzM z9nOe*Q!i-D6_yDg(}W&*u3icCN8hKu%RVTT=}@TvBb+2&G!nzFz*X zTPh%@s_Su%%G~0u>8|V9LAYzyeGA~<%506`FHeNk^4}oQ0|&_Tai`<{NpcSZ_egZ# zPwk*=tF-zdDp_|nHL|{&SR=p>66=gc2j%H0bOhEerbd>PG6dW!VYNYKn7_;TB)Y!Z zd{I%brt~x~ZuDQ=_@?yr;j<4iQ<+vs^a$wrqVOwOkN%ZrYXpDkSD$=WCI6`jiBYa` za80&@Iq$gVg*R8CCoFJUQip-FBs;P+am^qAj=?&eV_bLx(}Nw&-0 zX3KDuaBbE-5B|%|)(HNx41bpYA&Isvkm=)2$NhHE)otJuN%}J+l$B;D>-DBO>oKvW zCDSnQ%%lzhFOlfq@isar?>76!tN~ceD(_8HhSB~Q^GS4V+bMFxVxxmQO1xL-jEB$1 zb)OI3&G~n6H!08T@^qPutgxMK*#8hWJq5+OfrXjp@Oa-WF(ry3u zT%K=xYHTRj+l)RveYRW0YjwX5-OZy==F}ZGF53%Fuw{6qus7?T2mg!A)(HNx4Cl+g zP@-oLuq3GiK+ZJonLaAp6UjXUY^J2zz|%V@FPG@gofzOyQzPrr#A*WHO6mY`k3_#( zO*g-ktrDv|uo&x85>*9Ulhk2=x#k^@%7`2WpIX;pxGa->HOTOF2?qdVX!oISkO6u4d>%?uKRrU#QY%fYtHUG|Bl;KEj#_Ut?YA!`)1v9dUd!GCsl;}MMxG$*#z=INXetrjKccsvsM}~b&^#QsPe8v(0Ym+(zd{?4vFt3C1 zH?wptfb z^UV}fb9U$PS#@*wQ>#94V#?q1IpH-~_uTj|Gg~A0%i_FQ{$s7(K&Fp79rs+(b*6w5 zC2I1_4$2i~C+pRwI_r3`PE1Lgz(dr15Z;b_j&aTWrwFBdMn?~TIDb9t$g!2zjEvaqQ*^p zp{Q}juW=LetyYa^y*<^_^8w+~towNQ&oNsg_{$RiPX0ehbpC+XD^%wUXi3ufLpjgv zWLRRV573ohbMpc_C3OhcN20AU-a#2LyC?XIhBej*kS9>i-#@b3&loY=NmwLse~J63 zlBOG3WX@fe#0tbKU3V5wmAk&h9)ut8VUc@pgQtEzYxr&(FH&#=o=K8o^%{ z=UejsL87m2K&Fp7{l~KX^d0H^0ryGL`9s-VX>~5ix{s-mwN+xZfJ2fx0(?-CUKdgR zYW9s;!?2iDK3S*?!=dv@bR9a1hvn;pK1-r+daK$f9|_K1NoVln^x-{&2ALh$YZ4m< zj=-#66d%cBE1)kh*F|PuVAj9uvYFDt5OWaRMdH^1Mdx7$o$NlZnV2Ib6DET3&1S4M zVm#f9b@=WfeNnoH*-yQH@4IZ1eOS0O>s|)_^Uc->{<6uAk^gY{brgU>iGJhaybj8T z%HwmINR ziQf@{JIA^1b3QS5C4PPOWBZ+CLV*|`Nr83n?g4!{x(8XVnIC#`Dzax#IF@xU0{37P#ndrKVfEkiT&uRLjVYGg8kapD6NV`W=J(qyFX@Fti z0}_3Kn%+TqUSgG>y)&5AG5|2Gd=;TGjFw`|XVG;_-Ji+oto~M^=pzz8ZRppZl-jC9 zi{(FCeqA)cd6INJp?uBkP7Bu)to0I^fX!3j5O9D*Psv#wl#9&nwX9U=qGTEXD0{+9 z6iFU_+9hB)xD?3@AVQOUE znv%AFofGS%86A{gO2STLfa6l=2*6bGy@N__wSUYj@4Aw9%Vgg-WcVgow5Pz6G?wUt z;N3~DN7T7mi4|=p>cbNYoS8gMO&*`$^YXYdu8Q3A+JU>O9k}O}zi4}4<*td`iz0VT zmqka;SOc4`Y}69cUht02o=}A8qA#Tl*H4BZG&V&TQELk#yVe& zQ`LJ#)`?)8Va8e^#=Xs02cM}O@c0>N8GEMA*QS%GQeTN4{7;&{5&UI;x8(nh{MvHB z4c@fwtcgMa;Mpy^;U)6olFA&wNAMIyr>CAC!djr z^bO3oPfF6IDC}1@_faup$7OK7n!C2`WPMoLCW}p09;YTx_t@&@tUz5}s5k<%{%w-? zDK`uS^ake2$m|Ww`m|eAna#jl9huF*tbg5pd1cOlxmMzLq0d$I%yF{&e73|)?dl%3 z9b}u(7L3m}W1TU^7n!k62IDL<);hau^BvP&5BvDO_t;*3OxSal>0U4X2hHCI{<5!o z<$t|In-$3Pai`Fr`O-xTK%tpkE_?a-!TMai+2^l0zjK5Fh{{lxx4N$eE1mr5qI z0OMh1taHP7j2Uau7*982t%p7Pv$Jj6-zR)1>)v7f_n55_{N)H7Aphs&*AW1&mZYm4 z&KGDke@m>YokW2#r#ZI`!y{ZXDAM=eOGnn7s z==VryEBGR1a~~x$c5J!x)$+A%C+ow~Hf)=%JWfrX?y=bmfx5g5f%y7z*eO z%$1SZ8<_PvJh?KPfw?*|n}J#H%=cC19GFWbeqZ`rRnHtJyU%A!%zcvBJ#3FkCbR`( zLv5C^&KTpiW~`IJIMa-^&hFZL$8^`jM&9JTsfRt=33to7*NcCu*&4xLHulRG=x_H( z^iB?B`nc0^FFptN5OA}^eq?~Qt@6r2+FebJv^TWzwt#O)bX;b3P<|?=>@oB!seq9L zN|bMHrbTWo$C#Jib)g?2A}rtA=&#cltPZ$9V~IWpu1|V>DR-_G=%Th0_2G^M&P*Ps zCXW~W#yqZ!OCtB@k-MZFxIbUu+_zQkvdFzRa+gK!y@h*P<*ta_2O@Vx-Al&*5wkUd zzZ}95`CIbq|A9FY9hdPA%JF9RRD|9pQ7G`b_n{5}S4q-OQ&7eet2|uZuFzwXX#k+s z3C|HPYJ$;+JUb8Rhm3Jwr7<{U;MEfMQ88o3>(TjIu$65m>%(IUVB2Knacc5(k1gZs z$UUbWxT_<#z8x&gb&I<;au-JK+Q_Xh5tn4HE{|EE9j=&m8qvw=!HtC@CXe>EMJIz$5k!r(vDJyW?`RP2* z?4aD9(v`;_p>Ii{BLH*B&$y)8bjG~&uE*a$GFfYMP8<5&5^oXu(Mp$`DE}jIr&szE z1wmBM!jge)5ZDXb&W`(I`^sEYm`byLL7*-w)a3C|_o&>Zk$YFt`W9v(&p2$c=IvtX~x=Bj0c;swhLpQ8EYRfzS)d* zf*8*>W38OSH2;Hk9v2E1W!($G-!@w#_{-TmO#WBPud@mCO43siWsccB6`?mu6biiL zLewGPlM=nLp40B2H508o7LQWwU@{E=6g%Mw=v7TH`k3#^WBQ|yf%nxIEC6_!#C?>^ z*l}^3ubr~8?PPs;YyoVWtvpUmp6;<_TphXRv;%i_AGJV|XxbI8uVc@Tl^jGpxo};vSb0F(W zOpUA`Ce{#ecTxv{UrF@$n;IRIznk4zjQ`za>Ie2rIY$77(DIFeFEulei!Fa^2^Qn| zS^SCg--OR`pj%|uf5N5*v{K7ob>kycT`>S<^WVV*t>W@XpQR$cEm3VfKNkKh>pl?v zTg}!8{?h!n%lG}{KQ$pS$~6w&neAZCJMMYmwIy0K;L@ZH1D8qCUvx&f-0YF{fn*v1 z7D>|I??+j0b_V`mQ=N6PKK?M7hVb5PDnM0}-j`>{L0!HM=;x)+_SfyuKN|dAtN)pJ z9Qt&{@z1kBn{rvF?zGHm6OD4#^v+vaoShQ)RGGU42;dvbi(HBW%DI7?u!=?$ZkYx&-p{HG=)hSLI`k?mm4JMMYmJxij~0vwpsVc=DgbXrhe zYxc-`UNVgU`%BV43qU!^>h zo2?Q2Wj$BRf2~B{tbj}(cRKFpiLTc>V1J4B{qzpX+ssbZGfZ{Xjbi;zO47TMUn4T3{rtw#qHtS01C8*0}q!B8*Ic1LqDhw@e1Ed&5 z`B;_M!uz;ICbY=95kwqZlq&5xMtDNjJ<~bz&oNsg_{&E4qWrtduayS&mT0BtcTkQt zJGA3X^{lXdCJ_tRSKj#gcB^dPPwpmQkt0AZue>&_&u(8BVjh(Es}}l}%I<#3Vl?-A zL7s;Nt2yitlLH>U%AfeR&#Cx!30Em-C6~pmDeW(#Z}M--sBxCQQQ{^J=W%+4qq>JB zn`xU)LHVad7XZLa72=butd|Y(OB> z$DNM*bE0d>fprpXl$jlrN6k*wCrx$MO0lj=Nt?irlR6AMDA9`afin`RwVNOhTYf79 z35+!YFu{E8Q5jK5#(X|qSHhPwnY{`7*Am}3=+ur6{IUj1!_zj$`#+fr8k;@Ooy zahZMgTp3LNOA>uW1xOc<45fZG*-lUR4e1I6EVTZ&VED}FUhQ`OrurIZRncCX<-{sI zPCJdXEQtEpr&|j3UlRS&?*_P~GN>qkL}6>z98Jn$C|zehV%Vju?;Uw({z~|Vu3d`% zF0(a)zwFWjnVAJ7N2aH|cqYL<0huKJN5AWa}4Q8wEIClI|;%%gs*Kt4xh7OF95tpYpeW z4HEreY|s%$D9jI#x6-Qv!f4?!BYgRyCV6KSFzQ9~j{`iGfy;`Dg z_0vGux>DkFUT^Lmu$9~`fJnyk(6##fUCD%Yd`pHq%vk5SUWQ+ou}%Tw@6A}NV~n#T z`nm#4SOzwMF2ZS`t$+D#V9-vLXe$DlwyI4v7FwR+gw9W)13(U4)218?EiZwX{wj$# z)oQK(&X=S{^z0?vFYDeE{JWX05&Y%Q{7U}cek`2|-~owF#k>y6p5p1WK-HzQ&iGHRu-a&cP?9Q5^k6R>D6R-p$K(4yns@rF`9|2;HmN0Yh;}Z8hAf16? zSDep&b*{FBex0ZSA>eRga(In_*%z4WBC{_r>%UgoU1?z`^&ohl#Ge9T*g+?|&qt;^ z+a~^L3CR%-0)_38OfA4ia`szgJ3$h=aHc+=BbhKk*5zU|*4n%4^~LM1k+`@HtT;c8 z1K%#u`2@O`!_(_H&=t$Dc+f|Y*{9(Hq>`!sT+0fOb;49a@VYk1F0o)B2iGaG#eTCi zElMmjl?QlqJV2t=m5a9@-qaLVYCUyd=_1gmoqb2tz6ZH{s#%$ z2Bg~LK)Ep`s$YmNtjslqspw_xKwZ;zYV!C*KT)~sB6mgPu8Z7y315}D99l2fe^TNj za}jujM6m#|lcA8`01!K2(LGpCPilQd3T**7bYj^zD4pKX z0A`@etSmA}S=i~Z!^q)x0>zOY+C+j{%{O>YbBlydaK0yAL$geXC93)B4 zK9tkV4y|pfXN9#uA{MYFsRO`051w?E&A zxkkc5fq#&=k4hOR-uljGOF37ovZf6g0uCo8htDi9`vP-aWcCGS-QA}uH4LR51Q$yD z*%5{vbh7(=WV&-~;-8j~9O{(2DeRre)B=1YcV92tS0u3ux9anH$%F~AF26Bjt-ZTm zU%c)biHqyNiu3FP*GaT7f$rt-^m@qA70aOCM3O_pv(E=eB~$;8CCUnrb;49a@VYk1 zerLfz4z5#Vi`}^_El!93gcC!A-RA=2F)&-x0H2~Z%(cziVLAf@Cmcv8nvr_0Vz*O=>4VB#5cw=69*YmDN z3|M|<(9e;mosTU*d6)4A!K)?7;Z-_Y#^vomUD$SN@&s=EQ|G{48M%uhcV#

MjDX15~=#bKxFvO$Tau79vO+H?9BCtte1Gv%6ne-Fc(3&=k*Lya?k5) zi1tIc;i>N35Y_j*EGYN9-i9c`@hu3-J+IF|q`Bwy6mAt<&ocj8t%>F0a40Ka=+_Yq~w0rSA?G;%==xT!RCI~J1F5}maxAa1<3ubD)8`} z*~~1pAFl$$S*3m`mT}}`Haux_1&mi*#(u+SRwdiOVEsSV%mDmccm*)u zP8(gH|3nqO2;?9axt7ZVaYMBoZWxW{sz=~flVS4VPstwuvNfs<=tNLWgSA_%T$TL8 zVCyYbp`u>`V|$f^bG7C(4O29a1IQbdm)jh9s(2|ddKWe+K7iz^+U8Z*^n6kG3cOE_ z)xy(cRkQOKWSZ8=53D;ge8-|gCf;0hpH|M5#l=@(kn4>R#@X}H+4c#>TwlUE(78VI zP_|(6nvJX1=x=N}^JPi(21J6szgX~1~ywG z!#_C#8HzIw!Lw=ILbztGB!&T>4;&_g6T+;)InFoeWYmR&?=Gm42M(W*-~)%bVGtaE zk0HSU_&yM&%qRo!M@Y#493BRE5@8O&Q<0Jf4rM5%jHT>r5tNJJcaWgr?~Wy zny>Snb&A*aSD;^PABS;CY+p@+w*L}DDKm-f|3OM@pM1|Kv_Z!pM-Y^YI5~z8f&wrZN z_HyVK+kZ@gwm(XOejk7#v6Pv__9aM(?Yu8ly2;wU8!54UIZ8M~Y=6kweh+x6_!cm} zuiy8jvpr)vW=hn2zwdVmw!aJgVta0`vAu}|Z9fx4DKm-fe?UrX|A6o#)^>&4EMj{u zN_bstKM4hh-wVJ~#T&p#wOv2iO9=M+(;5C5B2FQ?oSnYoPKREOGRvS>Mwu%~aFqFi z1Rc-YGGhE*5ZIZ-82=ekV*He`fWw3tG`#B|#%JQ(lgCo_m$DF!GF!k?#f!m6H9mc3 z-I-*6SqvJVg1&++{34Ch<;!vKx+e6N{H;Krxo-iN1DIZa#rZ+Wf5GCT$A=7y=gv93 z3iY{D4_=rxsU5WTY~Q(Oz+C#|Ca4vkyhDOMnK2FoeR4DjHt26alrp0<=(k9TPezUh zd@f=7Bp)g9NoXcQ2B@>YnT60Nhk=JjyyM6np`cz(Vu}c^epQDuhA74Q0E(tn3*I0y++Ono0DDP`ydY2!mhQss_>r} z8#Wl&-}`1Du1-*0nMY z*NYB<{d;1WW1YtFI2=6I$)A7**Y(2khIYNYK`)VzM)(wZW@Mz2mT+bq?aLZ&MnIj2B}`0 z|0lfh;9e=bBUcJHqtk86Mpxc*!Y+HI@J`~D!aMd#LBBEfj!!Rr%ASjEs+@Oye8IE_ zom#&#_O7UP7dyQt7ZeN8ne}?W_vM1(W~AlvfQ4rG|A4VU*0TKx*5q+u`Or7&r)ULU z9*jh9FD0li4Um#cgVD3yO9Ka@`W}h}<Ff)u`Lq1H?WfjwQ-WhCZ-c#gz$5R<2X7!6`4i2)$~M8W|P znhN3*C|e7n_Dv9_EGBX!c-H}nYzOfviIYK8qC-Z`0kMNU^R+`2*E^}&b4*rIbQ4&j z`hF5D?0FI_{yh>j=o=C=aUiB0V)O(Otj0VLQmI;2vD%i=M1z`WOcM=hq7lXK!vOE9 z8dY*P+{7V!B}_t?s?46%ncLJToUp;*3ZT;r10yWM*i3NzJ)N1Vuyzh?HGF?hnXC}9 zabCq#(BD(TBi1F=@rZRvt9eAnjq!+eNwTgemmOJ^v_Kyx2_LvRffl`3tWEoWEg^_z z(yd;v-b#Y;@eBz%zt;>9Y>q=nuz_kxu*teeFg{Kv z!T7k21mojj5Tz_mV&rS2Bu1hbXC+3MRbu2gn|-cAvz6ik@ae8L9p$A2piB!O5gtr$Vv82@Om_^ z$Fy8o#q|JSHr=&03r@&Ic?dV;hn)5NMhq_((eq*dkS}ES(JGF6r{xKPm^GWU{>*Z;VgLlV_2F4 zBOf~tCNTT=@cMdWjC*}2Q{r{2E3MbRO74Ntv)~f(`a>Y-^^ajgve$>r!xm2GTW^A^ zy*>^wy*@&-WI*G zN}f3Q*T8Z7+4-22WtiO`@fS z1f!*s1e^N|5Tz_eqUAQEBwB(PkR)0*lHd?}6^QxVZFT?*{QLr#aG+>urV+h|HPa|3 zr;Z`*w28qj9A9VImjKQ4VKMCS)Vorg) zt9~x>-^PojJ&l)HTM80wDX_Nac~GI>%!Bfl$o|L5neFG!wpjKJMD{2J!dGN48Om!l zGINYf4iGIf$H;{9+Kfz*kr@F*%M=-zTzyw|p1fr7A>5!RRrAFy^DwZ=q>44j@V|h* zA@^KwL)Dhidx!eBUx@bRr0N{VR$GQltR4m;6DuF;(2wHn&S4PO6DteK#HyFf{GzWz zuS~4I0FiED^)qNHVuy_Que=xqbIcooywWMxli-=?A`*=G2S~6F1Thjw$BdC+$Gm_9 zhw*z!a2WrT1Uu#!#JP0LdJv^7PEW9q(i1Ea9LAYdI%XrHd48x$cg$NaGT9m9qVN(D zEaF!rSm^yEXvUvOu(SSy1Wo;#1dShn-XPT(PlDZcE(qOoZCPo1?g$u?aB?mA9o)vA z`xs0^*OH0WcA02_!Jhn)VdxnaPqrK%%|xpV*UlH4et^eB;3Qp8m@A=>&gPkC$@~lR zESY~{o)zOf3+mYOTU?bui`GC#|Y*19)F*T(@#aPr!2N+mapNvhhN2spJG$l#P;fP*~^x3Swu_`Aht} z_rOiG_HmdkQTzezcb%UHqr~})3vvEd64FIU(D}ELpz~iQLFa!-g3cd?l1f>WIKL4o zasD0>?4ryn&VL%n{F%o2c`z#J+*!whoaO_%Ue242_PbS+*6$@Let!lvuV;>bcfxaOw9mY|icQ`##-gAg(Z9;aqD2#BQeFSNh}gtZaZX z&nhFqdDdnUoM+ttqLdkAp7kbDGSBJ*#idUX<~(aOQZmol0sgzxzJI`FP{6x?&ETox zN5S~M^Q@I-p2c&C{CQudsN~K?*uz9`kM=u1-wAhKLt*BP2|0V3&8YAKg`cmSACl!j z=x(9)%M|y>xlC_Ybg$?zyBb9{ZpF@j&V3>~4V!8m)$G~7=zc%naj>^Gn%Aty7oJ^P zu9w|fVrW|$?(Et4GYrSyK-{@rc568fj%eF*bob^}xGQ~qfcv374oII|Z;-8(GLgAJ zZ={7cQDqyY9zgkG|1TxoKZ0kO+w|tiH_F~js$i`*`BMl?xthiPDnRG7uU#R#T>U#x z*#b8`2z}YS_3}pGyerW}=K%W_S*mt|*bHY?Z3Xc$h*FA0E=6h{)I_cWaTkf(Ks420 zyn7e~UJk0{zF=*rO^j;C2PW-BAh)r5bSL9&#b$Pq~0g;aDeWErU#hMDz7BsVeZ zn85mktS>PuIg-_1i!l0^$;z%F?_guVc@@_4p6%(#Ox)bn&)%a7=b{={YS^5QGW^_H z5>NNRxyy2RlNU4n(}Z(0IDfXBnVQohoHN1s$Z}?B&c(vH6`brV^bqIoeUg3^yL*!= zd>)JuhJm-kMff9Nc`o*ZVA*hNm5aS3*cdjRi@hxvTVlP7eI!^ju$?aUm0*_wJJ(=% zZc%tE(pT6t*0?;1^vyPnJHsC#{U@6icgTH`pnv;waMma^L=eG(DhIOv^Is=`0!vwc zZzAYTgxrKGtVizX|84H**T~IaDVd1&=aglgR)vd2RWiqf!*K@VbwhC_!1z$}Gy20s zS|wDRi+FNA54?mNRSeQGz$8%XL6nj!(Y6Dr;`8v2WuvN!XFj9m3BWf~&8LA}^l?$M z852@RqSo#hAid#yWK@Q+Uf*r!GNC-tb)v;wgIexyGQ9o`S%Mkg%p4Ut6vV9+dU1IyBhRw#H<7%;0($7<{C6CuSNd@*;0aX9ZHMjI~ zb*Kg9I&>5yFrdxFL9RpVK-lY0b8*34J6Fdb)eDN|XKlI`iv9wuDiZ@vG32ZMjnt7O z{tn_g5T%rji~|2*q>8RYZizUafXvn({@$5<&o(F{Gq#!oo#XH3Dm-)^s9~NkODxWM zBca51Y>B-fAtlZRQA$}Uu??xBzv7>i$P-(@krQ9K6445_KxQdof%y3Nb>1p=fgx2q ziv+9qTM(s`l>-05j0a(ykpfwf?T%0Fmd2@aZ~S(!wEC{A9X37R1dgVSgD4km)j?%B$i{_#Z!qVWgp}?86Q3GOK#C&Xuvw zzmj9o*qnLphC=tu66pTmM|d9c6Y#Dj&arHkD!c^gJ8T-Wg!f?lGd5i)&BDgX<_gEp zz*s^)lfoaUdXZ<&TJZr3Z}Q4%>nUjN z#`(k9)BBfpxOz)YTYNuRhO4*atcC6I^4#I-t<03+>g~)}nG9EY?0H8{ZKpuH9(&%+ z)ML-}X6*Tgq!HgTgs|)k{|q~Xe2Hw_7|D4*v-}1$6^D?Y0V^daLkJbi5K@A8%Ry6M z2pJDiJ%m_LhLFc0iXmh?1Z4;*0+D72Squ1GmicAoO;qF#A+I67^e+bz676{)N-3+O z{V^n^asFrD($UW0<8$N*_eNjCxszau3U3*LsHpyH+2FO4phNqLi7WYpp;^y4DGV+X=I4osX1s ztt&umVhQ^%MFG;aeg{Yue~ACzt7~POuEiMOU&&IK#IE%T6neVW6(`{4)N#-%K1l2~ z32)?Mg2p}nyEd+C#&WkXU{)ww9~XpWz&|op;X82WwQIq2uSMr z*5w(TZ_PuR^R2zIt4lpom~ZLSDNJF$rBgREh543Fab6@R#uXsWrIW7A7>cqbsyVSL zB`8tNA|dQeSMKz~e_W-`0WnPmJWtp6A z;d`HYy0r#GQE$vRbv&VLZu~M2D26I*!k%#tvv68?GP7{wm!FZ~wD1lRwEmAII4%4u z2~G?DO@hN9V+*F1q2z%Ahr& z-40sg>>yRpwHgz=@lwtaV9TJzVlw>Pn5~R^{H(bN@gk2brpZva3vvZJ>bo{#Id>+< z>|bkO1vKRe@H&BGL?T~+Uho0{O3V~s5&)TQY)9o@WIG<3S%-4sqtgON$at}o1jmcx zK$KEej~DME=l2<%^mtK}4V%(+EjdRI2Q#}5tSHMIh04bVl5<%&2a!nuSwkgP^Z29i9KP{b1UzlCbbK=KptRPpg(e6N8-79QZaA=`z2 z#Vg=|{^&$HlrT-aYI#y9ah$;CE%>deZ}rYjDC}D~DZX{94W)1G&Q5uoj>Z~&k=3(r z6H7X)8%vJF(j729e=N*!e3>1%IQ{}@9ZY@+rpm)jFtMNvzn{U>j{1KJ_ZIM)Lc-vO zkSf5HW?xA?g_N0u!pS@6twEU=-r|jlz*0DmXOYPy7!^l=D5b2-3C~2TkQ?oGBHQIh{U&a)FSf^835PaZlm_Cl&F0xBOz*aRyS(@E~mbK z!ht$!-^pOq&cXakNA0^((sHEBK8Mry+@{0ylMD`UXHg7c`Y%bnfs_u@tI)*ZAe!j& zjJ~ieK6nl8K#MUOrQFyGzz1wRip!N|IX~c9sXrM~X+H)PcKDT#3{)N~hr2dzn^{=67Q=hS zWl$S9ap%tYz5WZ%;ri*gZMZJnbjGD>?-HAHDOF>_BA=t^Xo{5Asq8~|Q;ClP<(nbP z)De`~ux7)mO~+`7jQbqEug?v^_18hi;jTlF%dg|I*m_K~Wjr9;AaRrDpoqm~rEI&= zKi}=C+OpNVFLme-O9t!RrGwlhTcyZ1CvJ=#x}Wlwv!wL$(C^(6J9IDQxux|1x2BK{f|8LD~?)YBF4y{Esrf2S2_=)M@bQDH?J{DGuAuYTUHuX^Poz9 z)yKr0QT9xLF&z{gIy_da$DZ@1$-5*xCQ?FzVyO;7zI~>@Oqes5UzFg@{NPDd)@r<% z7FThksNj8IQDOAZA>K$WXQZA(q2F)>wGM0EzGBm2?6P_Ec4O{i0d9LH^>(93cZoHd z<9kJG;r_2sDfc$hAHq%YE&RX-H}XY?EjmZ=WC?L@F%$osw0zuFM?CfEBzukil&&~U zw=Etlttwx=8eb_f`uZIfpdjC9)?e*eE`gBPNhk9)y%mElA7DH97JkQzmm40{`h!dO zfS~ciaS{W3u{3zkNc>~njQpCd+GEw+w#$h7d`F=WzOSfVXEkHINY=bnH1qXDt(kS! zuEtDRKGvqy<9-BLd_Po&Axm&g)_a*HhT19eH6y;pm|_ImnI9$FjIG3s$@|0(zCNn` zyfWU0(nvoj(z;q}w$@;BrPT~R%TM?6%{<)#tEdLIM^~-bvSyV#wEaWcT_m)aat1i# zvj_F@XCIV3z!{hs8j2bJIMt_52_W469HRW$^ZLxssKsy==ntGkhCwBPFDUlu1Cc%s zI9Zb*KcX*YzLdrMae`uo-Zld+ng=@*hfy?`A*{X=;LUynYX=eTKUk5(Q+g6uNHWOr z_mcuL$R60&HK+*sv2mHdpS3RsJd+@Au;XZzL&l(_89;`*y2RM9(S>SIewfiEwHj`8 z8Qww2nH{g@h(Rc+7}kvxjTyH3qdXch6&USNf@JO>kEg~=heqa`I4oDJIXFXGFU5~7 z@Fd2?MQaCX;qefb-1O802)l`ieGsgZOpXk?Qs+3tsF#++tDNy>onp!o&eV8Loo|{^ zF5KyHE`y~k%qE!;*X#@9*-l(HllgJ&KE&3{xQ5z6TE~SI5)ZRdIlDEdAZ`Lx6#n=m z2T{wSXP3KTR4uo~d(su-3JPLUSET?>zO$UM(u4l*HXX#{l@>m1B{XxtQS zqA{ezicr3^kJAc;Wjrul?y(Y@D_BtNpn_p^Lgh#&e^3(y+xsk$Fs{l_`GZ)QNP!`$ zwI!ISdt@arY6#E{o4J;maX&*>nB>CgMx-okOs$gwP;|W%0HVR87s1$wI!b4;@fWiO zkHF28MZHac3_vtBQ3aMuP~`|@#RnEapvSZ(`^hwAnEOcxO15AA zAZfqDJW{wIKinkI9ZJQAOQ$=f!*rZ8s*5FPmZ4(m2$v)At~niEP(#b7t3(Yr9nD7g zU=6>^F&dOw<;~CHP!P;gv+;8jZaM2eJe^UP83StK;R^gR6u!DJwhGf~^_zGSl>9x9 z|5b3Rqni2kolTlFOhxX?`1w@cULGUDZlmOp_z||EGm(x8J7%GsNZz9%9uC4xJD~pU z#N0er0Nsew1Pb4V!~L54BMy`WYBiDjL;Nz;mUDfXV{wh4|8gO=Kty9a%)u<$QEfcT z!%r7RszMks9%_VaOV!Xs4YP&Y%!Ad?v^TDyDXzh_trN2AC0mRKzBLOQcsK~b=~vsF zz5Gh!9GjR2qQoYw8Ql;+Msmh@xJ}5#JmiSzcCDnyCgMuKu}V&W_{owp#slAhbyO=4 zT1mH7f*}ZIArV)CgjI4D#LtnOF&=2CPxY*}>! zxwEBQBy715viZ77MEOK#;315;7)Bi)8u6n~?s7A^gAp_F+ZyRr@-r#?^oggN z*BX6*sJ2PCZ9H@e*~|mKcj9RmkKnRY?q)zcBttU~KNPZ!2Yv|!~=oi_8cNS}y0qcQm{lD+gLU1QV9atM)rK37Vol4WebcyuKM5X+<; zHh@SUA%1VRSv*d*7Q%;duG@*ME^k;--we?gn}vf`9gAmnd$C8b;yVTTEbv3o*u(=L zO8HdxQXZG%$APs-y-T1*29^MynF)OMaAD;xw1$IfIO{GZk z%O)P5FnM+&^lKz>dBVz!#bKf*tugz+9V5`IY2ZffBTZ$7eOn166uW zWUd33NJYEw^EmcXB>BYwK)Z2xT$9#Be%#|cftur7*Fb>St!+}eu(pvmHA^32AoajQLq}>{MZ5-=76}(-V-)Z^G^8$WQ!^7J`#(1D6 zk8&z{5^0zbiRdC87NclrO7O=XVAmPkmOvwx;s;sRpTu-g+b(pA z!eDhFX4Cr5BeB~nu{)i_F0aI{bP^YMC1m?pDTcLQg5PAd?E;^CAEaj7wq2Sk8#iX# zZcP?}yik*4_ELToe&g`*rT;BW$@Tb+66wwAKw2qtv}lc6a$spn(trOacH0*HKgnZT zgMMP<9E>(JZu)`3*HloO?L5LkJzc^W<4zzSK^)vSfRWYKdyrDo@B=vnx56jl=NTWK zhu|1+5g^McRRT6?Tli0*q1~=S}N468S1|E!trJllg zSt@^*8?B!67oi7Cp*&_vLGIk-T0lR?59c8sj7cq4;g1dG=}5N$`Za!8h>83O`6Ko+ zLCyW-qBxkjSsg66)$!p#%yaQW5j^}y$Y#r>|E|>#4`1O2pU9DJMNL@Ii!{lDF;R{a zq%zGsOvaBHd87wDE?^O!w$y6VwI#p7GEqG3o(TDg72|PL>M7k8!y@gUmBpNqpE=oU zQiwz(`nO+J34#VreRlJ?}2v^Sq_q&7AX z9fB^vQqR$(&FJYE^hSSa&G=k~>E-w#6jtMKktX9RW7IQ4S}$hH_T=e={8=e^tY9Uc zgDu4m%6WKwlmr0}+|d|_)onvsi%7Ji75Y8>`V6w+#1iR|546Ax>U2kl(LBR5b) zXJGz8_z|XpdPDQL0zZiGun|9s@Tkjh1FHiZH7(f9s*{G5lBxk5f<`pUU6Mqba7$TZ~6_nN`ia9^GYD_npvj zrZ%aD`TFB${lUtTwz9v)gPrsZLZ_k?tOC;@^dra>IM8<>mHDHlx1~MXR)C|q?r_E( zY5NG*%@BuNDegO~rQGJ=wz4!OQ~hh_J``o`v1vMhM%gq(|q|NL{-UYkp&Y#yCT z&SCqe&12IxmrZ-~F@k~T0^3VkJFm^EK<~4;Jsr`SXu_7w1Trp|-~(!9gWFP>o-R!k zn~8%iFcvRRqOL|%x;@sDCz3XgRn8qSAHWa6%R|3OB-?m+^$>}l<$I@Ny&isurRDo@ zyx-98;W%Z6#(A8BAF{rHL$pA{%Wxc7sOigayur}6@NN`ymXsLdp*J)l%vj)!nq+x@ z(PTOFKAk55Z}0$BkmU|-)ar@OWpUfvJ+`-dY;UKLRE9dWQ=2ik-D7aO$6$9JK;5i2 z!pX_m%NkRQPEij{(J5O+`uBbD?;;+IQxD`*_>xfk&^?-li6vvO09idPAqIFKmA6 zTl(JEA)#({SiaR_(`ob^X4}H(k+esTq&<2hova6KV@&~RbAz-QK_=&6i!l?o&-Jz* z)4TA)D0VRpGz(;0XDqJMZAed^E7Rt&h2MpSF^oo8K1bkmW0uu}=DE?g z*J{xzjz83)Q&xjcrLjXA&T6m?Wp&uJ)ne0W^hl@i=#jKXkEA_%5;_^{bHr5XWK{7u zex4>H_X+&G&BS!Bl%x>Fw1Sdgg;Q<8~PD^YX8u5SAHdYTjzR$PUYSAg{ z51q2!&?)Ovo8S7{YOram!=|kkn@*!gI*mt&9(<~|fZ&jiYv2%p9U+bCEfg69;jva;r+X!e}Pt5A^2(J82!P8Mbx61Ym7T@IK(gYA^{WOm)PukX-w5>B~`)BjP zzY;|@uT9(hHf?p-bg~|_{@K30R*Ozq9Xe$-=u~ok=#@CJ8f@C?uxYEsrqk$=cJ=7_ zKZ*nT<uqtSmrIV=Y8)=oWIVIm%pSo`2%U96!7FFQ+tk+oK<#K{ z;SXs?D{s>te+l3E%jQFC?Dp-oxpd0r(W&Gd*7G)xP1{^HohF~04?X!L?a7yLzO)v? z{Wc3oEA43%3Uc3bZ=*2nm!1;K!ht;meJ`#j7T4ppk0($6w0UfexD|R#&e=`vIIPtq z569q#mg@9MUM6gJ&|qc_xu>BbKw3$Rd!(Nv8CESp|GW1Lw=i!H;gNG&q^LR+Hz&uRFFH3Dx_)hr2dzm;(^LTh2 zKbF8Fw-JUW9=M+=VIC)x2yAQ5JvN`wmEqwlAs6v*wyw`|kG0FKwO9gVjfLLjo}!m~ z%3E#=;r7u_Y0W%*fS*~MNYWIv)Kkz>TaXd+6t>h;*iuhnOTC2|mCB=1S(PwYdGv|< zjNim(##vUKqVfN~dx#rkPs7hML%IP;+Xh1rNR#lRv$rCkPQ#D1ryk3>&FcF)WD*+W zUBtq_bzCejLI70iU|4<@ju#r*<43pAJmrTx<%B%`4|(#1tizb^ulT{fAde2>2-Wgr z3wp8zz1j9b94)>S3q47i+P8R0Z=sq?@iSs1P2;tAw6>(zn(fgV^JtAFYR&d&jd`@X z-JMnZ9jm4m@nGy+?a{cJ8ehN4)uJa~=_GJwYBl+H{C5<{?#a&jG{j6==Z-DF2oU~dE! z6%`b_f_ktb*sy`U_v7(!uvebnHP_z1ofPojp3nO}@B1v=xxe$fuKT*n+%vN?yF2qb z5(d;&1-B|!u?a3aw``YvjLXhx>ayp!>^bf(T;NonCFa#g_??H_8hS&J?JCV_=!%}{ zvU3iIeWepUQ?gK~RB=smYRZ%>^tK_@UF&6Vmx(303=w9|>&V`BS z*+2ZIf!)DE^>W-1EIjP9juAK1vR0B$(zuezD7mL$czwp#N#F;O@V-Q{7m%E3C?GYt z-iFEE>?bGG2Ci?>8crR#L;vGQIJJ_y-`B|-e0j@hmgP;p96HUi>AES06S;VsrF6-Z z(WQnZ%t@T9rls(yGo_5ZiE<_KNrbDMv+OG8EH^BNK`}*u;vI|R8Y=0EJVrpKgefe` zS0Z6;UW-gd2pEo&DRE+)IGm8KGB-6@#sshTmKW>9yq$I1<%sUJ2G+^!lcS%o>_X%` zNZ9TBA34hkg~7W56UFrgK^i0#Vuj(;Z&Rf%8FyWBR~stP@_2U%EV)Wx$z3A!KEF_E z2z8oo4_t$iBlgRXFyxYjT)AIyxn{dUanIqhXS(cMQDQ%!>rS#zt0uTyxeFB6ACP2j zNd6}hS|wQ@moM5vgYa*`1m)Mx8 ze^Eu#D^+S}rEQTc)ZB%pU1*|NQ9#oyX^VQs*Gb+*14t(4?D%s2YUku#8^&T;=v=YW zLGIq~z~Xl8vt%DQI9;;SQ)N6i%x|8Kx{z?L@i%0PkVKZ-+sn<(g-x^M(E<-R5i%uv z87Xv%Ef@+o&jbvaTtVl#g3faX4HdOaQB-QV%2}>*rkEv-`R{c{9)Hjd$+Zc}qaMt_ zyq1bP@*&9x{5=gHtRV?Y!_Eqg(r)C>A7jKM-Z!JATteNi$fbkAGT`aX=!W0ry6TR0 zbw1kF`DiQj65qFx(4KC;Apaeyxm9i9=KQ_tWFZ0#$Aogl>E?>l%^l|ql85@9 zA>~eS+Pb8b2@^}o9c{-Tt5tRq z5<}V{EbFu34&y}ZkfM>C>$zRA;mbl_B-akj)xHeZ&We3^*(bQ{950u>&}HWsi#(o_Iw#&|WAoh2WFux`H7zyiojJQ691X;4sz8F>OOGmN4g(=ADpPHl@sR6Xl$9N>@2& z*;TIIIj3nMW`-#O6z?ubuK6O4@<JRu~HM}R@HZAfYmI%TqBaK}5>iI*jr36fPO^ehst z^hhSf^oP%;WHH>=J0&wEyATP7>KD8MlTZRbf?gO7k|{x6#+(=V1ZfA7u(U~@*C5<; z5`H_3BrMM>xg^B$01^ug5WNj@X^gPDDe`*`SqqZifP^8J%+{8anwE%*G-Yo{mu3vs z>Pw|5kA+y8bN~rqBx|EBDV0`83s8HhyY|~dwM+hh)-G9S910uO9vX;38HiBrg;IN{ znnKq=6uJhYPzEB@`9f3u8r0Jny}<@6)m-3oEU`}V%N-t4C;29aht^5H)!|`v_acAP z;lXv1%fNW8LCyeu1V%_RCO}i6JfOyO%nT*Y{bWSl{R*w%LK)G}3O;7PLMyn?wSw74 zsq%9q8FtB~dTfQ^+Gn_GFLh0?QdjMzu2C&@jcTcDdX>6r=L(kEmpC=fk{YFB*tAS! zpa~3=xY84#2?aDm_Yxw#j)YkynRLV1W+dz@W$#nQtn@Aj~&43cI>8-_@1* zrhf4;4Uk%80MP)+=Af$31}*~#l+}L7!A!|EVT;A8m+TG)vm}#NL6z)e2QwwpahYwJ z2?x_kV0c_+n|47p&61$<aa0!qI=QIsq+SLTI7@lc-!bEuG5yE*Hk z3G4K*mB;S~o32G-=x&p7!k*K^R>sM|Xt;L38?mT6VA;7zuUu0?d}kqH3zF;{B&@JP z<0))LNnF=Cu9?P+^=PcJo00*S*l4hH&sB|BKXl4Ym+V;kGjVO_1j-BtVm0#2nn_OV zOv!AV2%wFnlFyi8`YALANi33|ON-E>Q`KTxE+K22kXe$gcW}03TUC{8m#UJzr>bN_ z5f1Z6vf-gRvg(8mszI`E9n6yKJ5?oXg+^dvN!H%M*^;HJD%k{8C7YtEWLc_8R;a3E zOH`HYY*i)Os;Xq$Rh3M7@0$8)=*3{CSu>>FYUR6ldCt#+PIqTX&+{?LSgGRpkQ0V` z7IBmTk@w(|e~N_eN&mk>5?ONTxz`$8C;3Q35M6TVrPoTVlU&*>y5#pdJc#dYqygTZ%h<#1KWc$Apzl**KB1`=jQiCO>0!|g;QOlHZnRP~9{ zOLeV2(YU&zE}R;&yS9PeD1Nd=k}MRdhbvMK6G?g!YTp@6XbYRr&TK+sCrmu-&tEfs z&iax{Aimm^_)1ga{(53HisJ|U`z>?xf>)H}HUqCJ%FPR2Q|wtM{^uZtZeH*g-r~6) z$$j&JrlN|^1y0m(OZ4UiO?iu_bo)QkZqw-!lq*H*j9o`$YM;fp14GZM!btS7YJOx- zPDFWbQ=Bu8!soI^bG<+R3G+99nloP|D?`F9$X;Ld5ccGcBe~}B0PNyMAbG5LQ;^M7 zG|iGg@~}k2mQ2dy#LUT`QQ3IPvxv0HEK{Yc7J2H>b|kNrS|_%Ie1N8OR%@dFJ zkkBB>v@cZ?SR00V0@s)cC%c(&a}w*>H5gm)HG>{)fW+f(IPRhal7)ukyw$7$LxLsK zB@W(wpSp#^u?>4dVUNC&#N!2RgJhvLY^~P@ESWZ#fU=7Xw;?=><)KCr1Lv}- z&2d(3e9W?mWBhQYJf%6kbg7|_IWKm_S_&VwNn**Pj^Gz9y0EkXv)vSNZB(XaOzW_f zMD7v^ZY9M{5ela^`1@n={r$F)5<_|L>o%aB|LRk5yjtTQAN z57}D7o;<+HV}HgXVFH;!dk~AgP{LW`u>dJnZ?hDSeOgE|amGBuIyTbf-UAlBqMcEfcNYhGxRa1Tzl8raAIxABljKElI=t4tBs1T!tf1Pfa^!Ne-%-9sqL-yq?=z#(KBIx}3D z6U^m!1db;-ZD`6-9{N+DR>|Z^G-#n@KOyPcd7)Eq660#RJh10`$9GoPie-IC@qam1 zOdEZ5!r}>zlqp#>5_ZVXdQSx;s4m&9NO;dwZi;<|dcM)-NhX0&>=~~>$aj(P?G8=i zVsHk9&1J^?FO>g5LrE42wZ|Q*)c8vG{tKfbk0H9(se-3`@&q3lAz6!mBA0P=uTimw z2GW=@9ZWl1-7J;v>Yy^X%gk=NG>(i*A)l#uvRQ{szFi7(U>$06pa zIMkXqa)B55MlSFY-^iiP&|Q|qe-ct3s}k>l{>ocC=OJ}>yes4`R82+|pFAgOxFtvT z7EkH+f2Q50({r#k<{@F$Nj4wJwklrm3REFsHjmkZ>-#Su37c{yw8z(p-%2Fx+9i_* z4LKL11v(+QcKPC3+`*QL<2+powz@v|H6I+4D$V+z`sVp2D&=6Yp-^;ulVt zOv%*ldKYC1xi=Mg#L~S;*tyCRjOrc-%gCB#6WjP<7oHkPFI{TrV|L)KSWDrOx1dqq<-w&1W8^GaVPmb*_9Z-o;ta}7ghh6{6t?sB{oj(2LACLDi; z<#)$AU9w?woM|`z9pvAJIASht)sKYfIDaJamqTnCdO|KXM(| zq|_{=c9>xGEut2v#hJq4GNxNsBjUAA1Ln?!5W-rnKhe91c?`K%2qS{(YDuTM8wn&4Q&moHD4hph)mwjN}WFr(MvnWkv^AdaUY zNx#-1zZnVd&&9JFlDoT?!BmIT4%4vyv=`5lks4b>O;pQKHi&Bx@p`Ayx&7f7i-ZkA zGAV~+K@%He;l9n5dZ$L6HxhJ^X!+R2v z-09oAc0+#?$=u`H=yEr1x!<&S_I*fl=jX-H14zq|%>A8>-vQX?H=)Z- zpO2=?vzp~j&`sHwN9kRS&3%MTJ#u4Sx%IBO)34FxZn#$|vuLyfX&h1}Qa(}{l6lEJJW3qnCwE9|svfuf2z<=#(@cAe zU2fa78_C>j$>^!a&~spuyDv3W?nmfrPK7NFV}N8{a%-WZ=_kS__Zw=;er12X(~#Ui z#>716iYs@zIhuYNY;yaXrtFU+Zsq{J4cz`%(@M1Y82Xp6$t_!&DmOI-`w%3F^`R@? z{A1`#VUv4{G*wRSsIfT|>k#r0=!e`a!@Qy!*xmXt*yQ#Z?()X|6Jp2>6ygV2Rw|Nt z$*mKPrgw+U+)trlIVmGIkE=keKae5@W4{}AG5AzXA>NYR=?YXqEDgAlaDNI{G72i8S4>Az63A7JTb3!!>}ttlAn>uuf61VWAdXN^CKzaS2i5`cO?0p zkNg}*d}>3n#Miv!=Nr3`+MzAdrv6Cs%MA09pJll1ZvAxFwf0De&$WC!Y3NkPGN|4*`)@xzge-yjy!jm5*waz>I3)ShT0Q|cA6Xl_d?#c- zlKI@)w87YCXW&B^B>7 zPMD7GY$C-Wnb&FH`AAEUZbOpm_xq8|ORjgfMe2Yg*UWbyN!!dzE@^K*ik<{ru5&kK zmj~Ks&CsjQBWIduc;5i61gR9M66sQ;JCWp~^z%puklsQvFL`YIZ%Fc(_GBcvJiGwO zyySAKTqM5$Nv@m5BgqwS^OEPZM;}Fh7&f_#+LT=`70NX~xyWbXQigfSg}r@9qD8xO zxq!1ANiOt6sk%jYx7OL>^TA52SCA%*$MB*o_!+6~w&cLctEC zrt}HWvFz1elFGll6i?Hk41hT=_4dL@w^l1E~I;0esZ?JJRG;;I6bad^~cera6E zkYPh&s)r1USyWP1T%9;DuB5D>w5rf=p{xrf%#xBqe|g-Q3oFaZ$^&teCuE6FV}tWJ zOk-+TbsUP|zZ2>hKKQ}_9`~q)^PD!v7D$gobry@N$_fIp3q{LwS`Nkt1cHTlgru@Q zFcQlJShn%RmW7oSrTM|4^2$XJaPC!HIuL-fDDm`HR+d+)qbydGEcKU41t=)X@(B6x z5}pHFR=5by%MD9`s>-7L0++C$v_wkaL`up#9S(bI&%(=rWdTY!&5{y`PyLW4!%` zeIU6eHFrcxvE_~ML{7qAdlUXd9>CL&BO(sq4}P$QKaolDceDH{xz_G-cx_7Rsb?gl z_%?cDI(=8Qbb(#H$!_hdwZHQEa(t-;C2;gau8n*rE&s(+tE#G&*vpgCisylxg<#O` zlQtnLguI!Ti_JUMzYUh!5@PK{u z(!;^YHA!*!pDX_->A#?_HH_zvPLvt8)$4y7)*c+1n1B8`2hS-E*pIHvK`oo?&zkur*)41BCCQ~rb2EK= zeLJ#0xn`IBiWO`Bef8R1Q#Vx29cD*O@}6?^eKNXm?aPwy0 zTz2Qy*1@{j_K7*QBa@2ln*z!8jL)?W`Z{BzuMe!X_qBS?@wvZ&&x5UlpN|+hd1KY( z_HBVp_RA5UI&OELm5gx<*YjAj;D&=qDO0Mq*KD>oowe3}H)4}-rhTjJtF0Yn|5;sB z&-+_n&|d62V7EnS zse8-QiuXQ$)8@jFlV1=&JAae?UG-u6Cf_#uGy8DuNWX3-YhjFtw0{cJulko(ve9@V zpTl2U{zUqmt;kmdZYA4RtH>1j>ugI7?UKb9`IB;nZw_)#q;Ds(2-)aR#hKn1JQXw| z!mbNQkO=!nXLF3OF9;-K^Rn|@(-YIho;%4mdG=ttw)M{ScDn=K(Vd4U%!#x2SMJ1o zIc#ri6~uOmI9|KGufzL*#*IA;)!o*OvOGfmI8-CFH?k;lyD#oLUtG%2MRxIFyVp*; zXzk7RH`Y$Ob?s}uDbM?E^xbsVfRS+aM8-zm z4qjz1O&)_O_a^p>CBC?r;`NvNIu`r7q$JfHv_HaDU*{>ZPbjh%CRde@wvP`AG=43q zso8Env+96-N#HzeSJIM&V%-+*4p#q?Bxf1an8TqNpbexiX8jb zHrr};*|)6TX)m56Tfo}NZT3TLHrbc2_H{sn0~Mcodv*Lz{_o^Ff_+<~LN3{b$N7G@ zTYGzXd`H~>><*12HKRY@+uoBswY%&MtDcjsd1QE}`GGfxSSg+r&R#6AFeNZ@Vbx*` zMzKA`7yGC^)Enoqr$1*uw6fNJAu88qxEp0iKfw%xvAwJ+KJ#HzJlU*Q^G?ASwF zj`%)fZ#s8xQVRb2>hSNN4?9i!vejO{$Nncu?nB8(?QPhf`#RX)L3mn1ahDyAC0pSe z_Re)l#dR@Gv??c}##_7EJJw_WiQf!rw^Qmq$k0Ihd(JvR90>Pj*y$PEqmR80`C(j2QV{$}qb{j(2h=yZhQV7mk>m zloCiOv0M0J?Pba7NNYy=x?FVQ@KG1r6TJx@duXyfF}c{+aW+b4gi5dVPUvJOtQ|Sx zyQB>$?2Er-Wa_Zg1x}%dS4*kqtYrJ))u!A+cey95ZT8r0_W3KYA#H17e%NnC)Y_@Z z_HHW{J@DEY+mLzeWe47~m*wQy%Qo5Xopsnb&U|LCwO>9f*}f+t*3QbYdmgS!O8M1Z zx^2wNVNS#Z*`oM;yl6|lpXd-<@WG_C2v)!u;~`v-LULUh}y@Emuq z|7optyPxg2AA$SX#=V!@{U^9j_Vq}ye_FNEKHrm!{D7{(c(>bY*d8A}tBHY}B%ADo z&9>R6C)>SZ?L*7A*|p6M+c#jeKEY`HzG@pfeh3{uV0%+N+soug^rC(I&RsDnC738@ z%8*BHinKplx%0|mU!MgvTdL|Ftt;_wF1BmEwZ6`y`WKA0+dgOKC)+(@?Z;Q==tW%XOHsDcKwh4 zZrtd8qaNMmE5<*#;H{%KuA_HA=Ymn&i_ctSFO4mJtg3p$E??&qU+3+Qq!b@4j;X_D zwbQ=ByYnrl-N8tEGd8pK$#!{B)yArkUk|U|j@`%FeMz}?UXK09D(qBiJck=Nys+vy zycgZ(fpOUZ`xYF2-|-YpURX79cmHZM*ADn{-0FF%E{A%X?Tzbz~)D=kj)onB@CxFTp@Y)`Vk zTT$feG5Jzooqeh8i=FHp*0E~B$dsz3bNk!(t;|_?Q-%GqH`zYJ*P+T@yc0A2dpn3P zg&=o0#}{q4^+o5}J67k|U9pSpyU82#w_It=f=%}P!*+}>`OF!Q4zOnw*>70B*j&4P zj{SjkK;9Pl?Z<<@pzCe!7xsOvp2Pdq8w;_EY*S=c27UW{J$-X?Q|g@m8O6R{8;k90 zS7OX?NO%bI=~Ct7;-u}qj`qbkTK?!w9+q;WeZk5i`#Uf84Y|1~dsFQ5a1QbtX40;` zb{ftw0!1k!^8ginU-zP0vCtzzwS0|&762kjT5f;cos`;rg(?azbt z-^-teW}jrgyE4|^g0XrRb=~4EDz3}TwGV=C_xiTwrr2))@ABdp_Ug)QfaH`Uyph_E zX5J?)uC`xcq?hCc|Cbaji zmA>fh_T3H6B_3}Pv==>RcirYYu1-#ULuU_fVT-#FyOW}`Yd+Z(D2~aMqk>%>o8cX) zQ{pCjef3)VIbZGOO1tx?vP<+O@4fshM6e%|KX%<}*@fEn`<5I9>{MrA(`q?d*m#E` zZ}n|CfY|o+tL3m_+n-xI$*!iGHB=2`jTt>DXA~|dd9?g`*oZxfqfmFzrB40asJ{! zLW;9lJ!^SKcioa3)2h899$$K(g| zEnHKo!ZoUr^0K^o3k$4De^EhsRawyOQfyUJmKRs%FA7B(H+ot|Ng!wi3ni9Z`I%i( zR#;v=RxTX53szb||I+mG^2)-1CD+69gN}EmT=W{J%X&G=UuhLp<`*xL^4gy)f50D{ z5zG(zT@{3EncAB4{DOu4v1P%^WmaKj3C7524njb11~o5KC$6Fu2N&uH>*X`6s5HMg zU|X!tDW%HP)5hkP`h#dii5XhyZx$}oIaaf-+$+Ipmt)ni=p2T@ zS*08>W0_c1RBlx}qnC#fSma+&RaArmx(-6coKm;|imQde0_{h7d1-lNXgIXl>E&hO zjunWesiQW^JzAj>I$2!fhxK~~%3(fOWfEk3disdyzT>CP>=!*Kc6e-j^uYLp#Q4F9 z3DJH1ODp`9C9R%cXaD!W7pa6UeWTYv}ev)g#Iq|>tTQRX9~Ok4u~*7N~= zUN3!K7m?PcQ%$qP(_Ly>R4U@gD-~Ch zKS7Q@hQ}p`!-8HEaA87}_DIHSH2N{jiGa@(aLG8|)sJz~kD6v0WslPd#QE9Pr?jX} zp|YECAsAl)u+rPKD{h1Snf1FL`r*bg?fved!TL=O#gXT$=i)-K=|`vy-kN%~dLOH| zh_Zb{<>N8YD!?eePUcgMo!+LCw-5vQ6bABHX&T$M8NTb)*BLWY*OCUoO<&?$<8$67 z{4YO>|A+AZrV0PskK(_-4L)CPVyw2h$0{v6Ry(kvU4psSV65y>URMQUqwJH9Qa%+c zZyr9wX;}WWC|CLMQQqmUMO1I$V=m{l`4rqs25oLwKB{@W0$%q78XM)WXS8=Wb1i2? znR&2dFg`EE_p=(tZtZqQ+fH|tmbP^ZwJjds3&6*UEbq;f*^bXIL-tzO@546JF#c%~ zu7KmCX4P9lSyNu_q9L~|G3A|YejK*>p7jUY?&}Vi7R9+V88@VMt-G}K_ITOY>|fpG zCq$td=e2t(K0rbH$F%ZKd+*W6pRBD@R3RiBnmz$Hy~g4krS7sIXt5lo!@ z_)NG8+t**k8S8C2j%mOAxaFX0uBPk0!oI=Xe5?>tZ#+I<-30%?s<+D1biHQI?FStB z541nAar?(&Z614U@LB58|3Dl2HEyF!J>3ZL&oY1tBx*0zLxYd~7tMIde8)gX<0D@Y^nBJC%AMe<@pQ@@i)86X|2pFuO6R;6Hr zQtf__mUx!*D(NfIFQf<@XtYENkbEPhlhu`4ENL()jZ^~C7Cb@v4y0}AjNOpzN;+95 zgH$U7&2+R&Ngso>1>cf>CAGqVO|9KXr;rAKw9QG>rjv3=XMnWcb3yXGh)&jJ)UG4l z3)0%Y2FZ6DI$2X%8Z8T?wG~iXNbP!%Y;K*bZJ5>gJ_6`%kjDD}q-DPVXGsJxY3;)-S1L;9#m{&j4xJrPO{Wb;kiotph+>Vkt;l zx`y;Qt-iLVL>G{jcnhShe;Wr`)qV$QvGTn$8S3*+o4B6gB|M=paMrb zK55wL7WpruGcAx2b(V z?R#p!P-}CX=|@M9_M_|o2dTY8?KNuupmvCw?|9SZ z)*x;3Nz_iIHk#UaYI)QOsjZ-PHnnT0ZKC!dwO!O+qxL4XL)3nt*7|Rz%^g76=2NM~ zQ5#P!gIXcA5^85tTSsjZwVSE!qPCmbo7CQ;_5-zFsdYHPwD~xYwmFX4AZi)Zrc*1S zRz__dwF{};3o3N>AP<534!sJ}JzOQu5po>upP)EUr1d@NPm=FMV{J?7LOPMuht!`m zkTjf>N*Yg^N}5TUM=BtlL0U{&N?J`?N4l8wI4IHS<%b~M+kQ)}sJmGoACdk^`h^tL z!}y&*I+@fTq{pq1)N)99q#{s}GxlZFsz|Fq8s+bx`HtVKq|Zn{f%G^N8Esk>4VvSW z$N}lvUkuXPmVpMt8fmQ|oe$F5E(59Gb+q0@x|4nn(C;x?pC-LXzk~GqfY#4R|DxY7 z^z-yI?eme^gS34ofV6$RX+4#cNWT>Njioh%G?RXL^ed*dj8sj(v*~v}t+k|U=yx;y z?xgiz(k}WvL%$bkeVz0k{l1{zzi9oDbcB8_dYN%)57PD9mDCfYT}4_?zYX-ehStrb+v#^7{dUp%BzuRfu zL3)IKPtosrT3;o-L%+}H_fJ~CC;dUc=6%e#v<2zB>O$%P((&s@zXV!`k<#clnSL{9 zokJ?1-y-@|(Yk_kF8wa0-&M43BHc#6d+7HFt-DEk>GvA_-l6ql(m&|;1O5J>HR2>Q zLajkMF2{j%UiF~$WKtachSM*N)(NEP^qWh+0$R@?1?abue&^D95$Ov0)zR-ZTJIt~ zM87BKx0lxaq_^nz3H|;->tWJw^lNsq8JE@|omZVmCxUeRPN82MtwTto=r@sm(`n5i z<`UPlRPO72b#q_&^*6T^P(C=>gJw)r{q&@U|g??|*`XT8n`h7>g-)QxoVn!$m zq~p>VRAkBd?}@bbA;r*dDE&s!I*v4re!29^r*$D|G5yY>Uk$AnkS?R&vmkw^^(9E( zY5h)ZQD5`E^Iedx{f|J!PLF<}=IMu@_Bq-Rkot`yWswR=LDFi{IUpUi%cyN9-A{@- z)zonuDV8*nG>$Zdlm(jPw6ua+HR(Wq6ZvD(FQgU&jI}+fE9pd#MjlCREU75Ql&vJ4 zPr8P5BWWvXJ4hqHMC}by=U5Z@WYR#=L{cuPkW>QF$SbIABwa&#g!B~Y71Bo}A5Kkl z?N27nCY6y^k=BteCT#?1t9DR(i1Y;M6;i8sQ*T#N9BCA3JZUOv21sjLN^Lc%%Rm#k z7ilw3S zOCAQzbhd>8gvfR1br7n-S;sG+Y)5N8#AuIz)bB7T!?9)#HBtHvGu8zlweALK9qWf1 z>yse0MvpMo3=k?ry*Z?E(rVIr(j}zJKswI%P2BfX;m26tD7NqU_BE_7I z{Y+{#(r71=9s=nIy$jM2`kLCqqf8x#L7@>!HFbOf(iU_{Gu9wTTksM{t=`ebIv=Fg zRUjRq3rIJT?jb!w+D&=}q$BhJwa-bObQ8Jj7}MW=q!FYFkhb8hv1SgPG|p(Lq`9Oe zq&=h$NxzUfj5ksGlg5yKnPA4C_e9gaOF%j>A@gf)9KXi1gYPNS%&(N29q*K^GL;{Qjper7PSqet4a5ej(~Lj z^_*c^6$eu73N%w&bt~y!(q7VAq)$m-fwV0@Q)@HR#Oq8-Ao)RB?|KjlVVtj^cGWCX z_EhX}2E!U@4Izyt<&sKBLDDjiw(2};n@G2io*;F^Mx@)(bYxoZdQ$QnGhcE+YAqsF zlFlbxL)t>R9i**#nA%IEH%L9_nmQ(uI?glg%LZu+E+EOrB{Q9o>8d?)Y_zGuCEsN7Yyh@`8*JkHBAz5)o-MAE_0o9jOzkE2$ePngpn)cw~}-|>2}fs zr0+;kT};_|r29!nNGIbXz%th^cCqRk{9P-8o3)u z&MH;Al=L9!Nz%t8Ig<-T!I4g>FX;i&Zqf@RFOGv+!ou-QNuCa@)P-~bR=8@>IHo8q zC#@rGByA$yL3)VvBuQ=$q4BO8W9U}WtEA6J|0Z=9Yf6kET}!%!B+mfRI-VnaLHdq# zgcLQ-l;}emN*Ya?N-85QBXz~`P3!GLiYFzLCXn(;*OG1_-9vhxG#tAqtwU~pq4W}t zTT0JNH}nPRFiDP9>USyW9a0Y*anw4VG=r2!T1Praio=0I%O;V=lV*_4A?+kROL~>` zPtq@>w3()kf?0;H0O?+83$>?7FN5#~5qqw0>Gub%t!A4jCy-7h4JSZe<6(Frw zZsnjozm{}6>3)!wc!b*1)DDu~1!=tBNo{cSQ|&m?6w*A9)>{nHI!dWkQfYlk-c*b9Y-2KN+ZdwD7C~nq{~3smYYc1 zK}pX1yBCC$2h7BWXnm5_J+yue(#ZBaLvf^$AgyBxDF>9~M3x(8sI?e07+R!N3etKn z1!?4MB)L1ET6cpq%3ji|q<2W4lD-0I*~8R+Bgs1+t*tdkBg+jvRQnr9%l4x+j@A^A zwtgyUKBtnP&OM02~Ch0xUC@0?M)c!^Kp4LC8Mb0;EX$czTlsz7#J?}wl z3`p0n@dH|%e^Eqno zf^;-KqV_GdpQyDeF!de}(h||s`jL`J`J@U^x+Qzj)uc;E*MKzMCTh1+yBDPWeGsH; z=2=>wr}jFv_dr_WFzE=bk%h+Emeh+hfixSG?zFjxbOmWMNZWi1wH?$R0ci^!18JN0 z()tp$gVa6*X^9_5UcafM1xT$ONFzy8K-$uIq%%oNK-$u?sI8-RDM%w<2GW+^OzT!^ z_fXpj(h@I|-lg>uYTuBKkh&C^vOP$HNRvrRN$Ww{w>psaV>@XVX)oy|kd}Ch+Q%Sm z^XDM#<&U)fMlGV))X^HGC3=zKXdOar6loS|4oK@b1Eg&ZkXDe+C0#w<21=7c)ex+t@4I!nIrjh273P{(2w57YK?IXPb(y@P= z+Go`IEi%?vkj|@3)V6^%@&lwtK)Po3((ff&KLqLMeopOYYJXB|S7!XWfV7Uj)MBZn zQX5AthuZ1XDyS`?b{@4$sBNZpE47EIJx*;uwFA_?r1mW}tK9S>5~Tg;O07G!cxpqa zO`tZF+I(vGRca{SQfjNH)l$2X+E!|JQQJ-JS!!=md!O1NYClr*RhYiD0mb3S9%)5W zJDJ)rY9py-Qkz9>A+<7UYpAWGb~Uw4)OJvNklJ(9UZVCPwa=;jOzlr&o1gxY!3E}^!W+O51$fQ zC;dvRU1j>)8KnK~K{|=nSW+sjlSrAg=912&wTg5Wt>=)gq;)gtR$A{SJwfa9q*rKt zoAeE>Kazf@wb>HW-{U}oo&9M~(kZmYlSb2;LCT_aE@=_1)uffQt|MJd>rJGswBAE{ ziq;oNuhIH0>04TVCjCik^J>%I<3ZZr-lTrC4kV4Cbt);F*3(Gkv@Rp9ru971wX|*_ z-9hVpq-SV-ne+y&?~@ME`YXv=YI@m%bOK2GdlIQXt%FG8Xw4+eqBW1SnAWpMXVZEC z>3UjkC2gbi0n#2?Um+c&^+VEOT7M^bmzn-Xkxm3@e@`LB&^m-Pfz~Wi4z2m50Ie%Y zHMCwt+C=MC(p|JZMA}R1Yoxbm{h0JUt$>mYe>zCiMVmfBTW*XdOnHL~Ax_4y^^G zDq2^Q&ZYGd(q>xkAnl;_5z_OtzCn72)=x=4(rTS$dK3xL<7!({Pg?tv5@;Pk%Aj=? zX&$Y9QZ=n-lh)H(OS*~HZKQi?-9>tl)`O(?X#Je@Gp*hgroTRr_P0H$2d(``gJ>NF z(lek5pd{yt*A!~AsO5unmYf07I?Cv`ihecJE~0h?NK4#7dWhD?sqG=XPx=_7?fVI& z?Xy-IYC-BiIu4{IqN(*G#nL*IS}I7}H-^?3wC2)U4AL=JO1gk_8U1b{Jw|$i^cm>~ zl5dr1L2uGXQZA{SbUx{3(qp9eNWYLeuQqk`C#8{Ql1?WrBW)zzNqU;}9_imCdyT2B z8!3S_mXu3cL|Q_+kW@$dk<{#LbC%zUG#I3_WCXRb)Fx4zNo@`_KeZLq)`4`LUkcJ$ zax?w5QhR{f)s7<3bms%cZlqJ{O%Rw4t zDd}v|1*FSJSA(?djnwWS-A(Jm)Sdw8xI9Da>$JX2>z5#H{V$}b8l!auX_RgtZ9xJk zv@S{Mqzuw@kd~N3t$?(U*2UD8gS56)v|dc>WwhQ1(l*~odVsWt^g2l6y$RB`{1c?D z|B-Zr0`&IM_SOQ>B%x}MfssNDt9+U}+G30n8i`UXf_{{iVM(r+Z+IuoxINZZmA zq^&=dlt@Y@rGd1>Bx*BAIke_eI|HPxFQauOtu?f60BP%QBHd4Vf_~3{v;}W~w9W66 zz91bU{X+T^q-C40H)Y$AI)l{Oo!TiNZGC@QN6?x|>r{}oK8Lh`6eO(#X&oCu+WMw9d(s*~09wEI>`UmL`QkM%% z**MZfQUU2I(p{w8q*qCwlKv!hz0lN=Od3m?M=B$&Cv7I}B)v}Rc9DskNE%Bzom5TQ zK)RC@eX)rW2TFI|gN!6iAI>4^5~z(J zrIRv9(?QzbbE#cMx`Ec6q!&nUkp4~bU1s8)NQxsRg0y`TKsp-JNpnaAq=g_Yv6$L& z(rQ}IqqYI0J-UL{EwtW2>%$=3(>zIff%HDI=3eqU!NHa0;7Gkk)n`wJoIWqz6g6 zKsp-U>kaiFC6GptW|4xV^GVl{>Ok6-9iSwq=Z}z{Bt1{s57H8EQTv$m1+9mu{Q}a~ z|3Pc38%%8-Kx&N!>7M3P(jd|}QWZ$|aJ8iCNn1(3fi!ZABGP%J>p{AXZld-ewMVJ#r*?qa*VGPCYq8nXb{t3} zpGd7gwFGLTsEwsIgIX@NVrq-1oki_zY8yy5lI|hBOlp0jY3XEAHfbSgCFw$t_UI~V z*MUY^a;^DJkgkRMNsrL_B(*&tT_5k0KBnJc`u#?-ZZdVW0BId?F-U3wEje`+0CYoj-;NXIMOhX_9GdjBbh<#Ow#G3 zVp0WZ8EGx)LQ*YABVR-9Cen70w%`eB`$#X-`Y!2Pkj{heskPW*qMS&IBc+jMko=@e zNH>7eo!PXF)ae$Z^#JL5>qBi2shZXm)YgHtrI&)VmzRNbG;RiIysgykp|%sGC0-`I zOY0}pz9HGSni9=HT1PjK)^QRkmXt`pWNK+3t+$G_jDDBU?<&$}(k=A6i`so4jrTd} zYx*6bpYJx)()Oe-AnivFYJET&FNZXbev9e1oK!8O24`ZwuU z(h-oh&$rc-Xiw?_3bmeEUy#;2fYu~h(`cOr(wQ@#R7pCEepiuhBRxcVjr0jA<#yA8 z43N(Dxujasbs!ys&D3^~{!ZEp(w4po(!L!4Y0p0gX_S9Z`<~h#AT8114nsXaTH<7C zainpiNg%Bw52Pg)k`|Me&~FV$YrCKHFs(0wG|B@2#`ie zCuNXklIDQ4L;y`Kz3XYclGf{Ky#u7{V;AW~(gFG%CdF(sk&{6>BgTWY zA9z+_NSjS<9<^d>Riqly22veqD@gmX4Wwi6D6LOW+ehs+ke2w8^aHKGQ){-}_;n*i zgS3u#koIUeX(auokqT%nB~_7Dk=B!HN!O5WBHaek*56NUH?`ME&F?aPT|l}PhLFaR zGC|spnbgXu1*xq9={%?b=@?u@>s26)vX%4*X&>nw(x;%%S^#OhKWL4-+r(>2>I721 z?w~jvS0k+{q%%lmAoZ&OX{#d?jMnc! zI%*L+40R#(0L3{`vPk(LU0Z8O8%WoKv`05m+eYnC(i5~k57HLw2Wc-qrr#mbuOMy9 zpY-c^kEyL2=_JyrAdQzuZ5T+Sl#s3`Z3bzH2SD17$4Prg`$=zrw8Z<=z94-=>kria z1ZfMr_nNZpL0a2!Ahn(Z(s3C=nn0RPzar8K(lw;JNY9ge_nA751L?XPMjB7b0%@ye zQ(Hi-l2i@SF*u*vRiqn1+M`?Ox0BYVNH36Hq2JroJ^*QyHuoFqO&U&`MLGwR=*->6 zK?x4YLws~hcamNu)ipELyGj2b{YL5-Y5c~wGc=o2OuC2k1nCvhSEOG^E!vxSb|=dk ziZ(}C9Z9`O@&pL&$4b)0q+3Y8A7}hpbv4wDG=OvtDSW5?E!6HOy+AtucoQ#tpZwdY zeMhqYX8bym`je7KlSyBYej+tL!9{zKl2(vjCw)r#o)po;MCnEvKuRWMkiH|? z(WY!i(rKhcq?M#ANZWdvvX7EpAiYcahLqLIlvqHjB&{WFB;7&UN!mwxoAfp5aBowG zw~wI?q+X=uqzg#blI|cqNqUv^G3hXA=SilveWbTZeNHykL8LLHd8AU(3Q`?*Wjc%R zCjFh%Vvw;OPwGcXBTXmelRAzzWqXqnNh?VglWrhAK$80`YWvvE0tPSO{opGa-z7{Ax%8Ty3O<20km{Z+J8<4KX0*%xC+ z9Xbjncnx8fXpKjTavo==$Ed#42Czg9HB=jlauKy!YTr;hM6H|0)DaERIx46IsohWQ zVQPn{eNWAY)@z$vu^+>zB~x2UZ3VS0)V5N4o!Xn!B5+*QI(#5)^B`)&s1;IMNNo$X zt<*lH_9eB{2vf%xkk+w=+BwuVQ`F zv!KQc-&rt++B}ffaX+<(sl^tRl=?9PfAI2H z(Uy%h+|=v5kcfe^Bw5z=NU2CpDdd)QH_~pTu<|UH)*xb7`2tEb0)&;{pv*^`F@&MW zktmT`PiYS&6As~0r-~0oDXgSIiASlhG7HML_2MjsB9AT&`>cbqzn*dflxymhk}W|V zR2nYzDwOzEZsiLo@_^B>&+p>X+O4$3%$A3QhJ8+gB98$LE3ysAgFeGbCX^XyVR(Gb zgp%6H?Q=Gi^Xj$vdMKMuar@i@Vj6<`}n6E|mDmZsiOpyQjL9RZvpv_4FDj@(9atU3Wr>tLO796nQ*l*ylYc z@&L-P@;#K}>y>JY;gmbEg?&zjV%PIY6Q8-pC)RnoGA1crShd(vCSdt_%6J zbbN9;>S)&YyDj7s<@j9QxFYEHhJ2(FTW+G?#Otw;4>mgZ{EQ(;ZsfHu!&>CnUL{lRIK!G-0;mH8D5OA7GVc=Jg3u*2w5e_7#_@h5&jm^%^%^Np!YI^p> zX;bs^ViN|&Ck{0Q#-piK!HTNjjFRPOipCz}$EcMr)2{g|j~Zr3yeW~MU$D?WV_|-w zzcRKYP?;ag3N%P&r9a>dZ>aHQ3ozyl26J>{Db$b#jv6w()Sr*0X+V{-{P~5MB}@IK zful8f(C`FPB)!s)0sN~z4j#x=p#|8MriV6RAl9OL4gHn>;IMxg=6AyxrYkfQBzNYl zqjfA{$PiQS41XzR1STD(-=eS>tg1*auUKY;&>%t?yYy&52My(Dh24+pJb18)jm=_A zWqx%@S@Db@#@NUjV_ZpTsZ80UuA{`^4JMDo%D^Ul^b*535w#8}ky&0+hD!dQ+Nqd^ zlq``ANcJiim9dqT<&}9^W79HJTI63;u&APeP_fJ9I^gz$Q;wUvF#V66&7Nj+qe?x>O_oU<&yl;`Yn)wJc_aL%!Ts= zY+tSjIAj#$2mGARaS6kRMY~=JgX4z{9X4e6;DqSt!SVPLJuqI(3Gwkm1`R@^35kJ=%gt+W(i#qZ4Hlnu{=zuKMnx7gsNSDpuSMXMOK8z2C{3J`Y z+KrA&&>k7T&jAV1W=V6$FEPHJC@#nKw5%=|6M3Nt8gGzXBMZNN0uF`WsUbgfUHt~j zXBgpEFJP?valM>+hYWKmI1j>7W+T7&)VQI;>-qJ;(hB$us@J~w(HCa-iAdO8^Q*7A z`GpZzNRjWJs&&1jeNxu_60N~-I%kSw+)iNe%Wgs|Y(fh*p`Fu&c6k%pmIm5pEMJ7Q z6iMombD>Nmxz^YTNnY_6TGkP~MtCu28Z67@8DqZ+_S9zKKr=M zyd=MJ8Qvm9!#ps0i9}B?FRv_Aqcmbkc}ZdPqWqGwzWtmwo#p(MKc>Mbni##TYDu_E zX?b;pL`;mXEM5?n;S;+wIwd;Pg@I%GvO5D1FI;=S*vk5)mMw3(SYFkDdd2c9qhq4u zV+V&zqX8(oC_k9kH#$LTab6^Xv1lG|JY(Wx6Ne8PGI&7rz}Wc2feA)|G)F+f7AY_iG5gJXqRDjbFxJ=G2#CY*+u=w_E3#>P_k1z+TLwR z{k>bGvi~36xnUpoKe&JUpPyMy#QX)tl})eqdMoZId-s%RDc`g)HXm^lV&j{(Mj!jY z@IQZi_&;y_WWC7n#=72rxR0%|^0vTn_}{h${(n7x|J&pL*K_>;)#K})Yyb6K#4)$? z|9JmHn{Rr%ny67_EWPmF2iDi=mj3kBd}tULv zD~E^kb&@!_m=|z9PYLh~CUG+Z{>ngHptQW|On({5;1iI5UtA>(jKO(g?9iA%c~xbB zKdz{}JZ9-Iz0_nbNq9Yx1q<<^i8rEoRau~x+g;Iaz8M0ND~r9D0_Yu%p6P|ePwU4^*A^3aApXW+ty*V{~+AhkKR z#DQY$i!a?+UY}ObxE6b+M6v7}ETanTMurrln6FJ7$;_(WH*+f6baSpv{pD z3~5Bqw43$Kil7g*F>vM*rQ8XPXm2Xu6lcdEXa z7V48rb#=+5N?UXy)fdx3{c)*IyYZ~uh=`J>a7EEI@EK{j(`IJ7*Q1VnNKeG-4^4Te zzae=LUiF4Pq$doJ7fphYYSa_#t^1UiC&lqz_Dpmw)xvK**$)fmjQX z5qr_a=H7@1=V)lz<1_qaRg0`<<7HRjlM9~hBDwSZFPclJD$Tk$n?@5fPF7595MwGyObk z#)LH4M@(7A(f$iZ6ENa0{7k%Nf8mFZx1D+;|H5zTtb~D%WAnds9GKuZ`eb^H zoq0g^FovoMbW!-Cxv}X7yp_wfo7_@%Y z#5e(((|UZ*Gt_!_6HE}SM-4Jy^07|q6M#qW|I}Fn6ST~ZOPw;iG0EIz8ciF^^Nj2@n%P_6*+gJ7K`hS; z>UVk5er7G|=vkiE)cc%cd+YkLJa4Oa@R;7l`6G2MJf^d0$Cv7iU0hSW3$nLIva#%VQQWt7t%|fPBn(%mQXL zC58(0{i_08RU<+rI{kHt(CSJHl|TXPrrUc?@^y@|eJA+Zdpbn6!*A`peXOXck&tlY z?PA%!5m8A|6Y(9{hzL(qlq`6#(5x>k-LONAYzuEOH$NHSd>uV@o3K}l)+|2^UrcC; zaBWPuD351iM+w!cr!}!-9L%jx2H?mN>lt;tQ*EJ@P(QD(zuc#!-m9E4;d7*2%pMUCk~7&DJv+g!WR^Aj_SeyPFI(d6#C2K z&RkeoUREB6b2b)ywZ4f{R#Y7b7UJaWf3f#1;8hh@+xsL3I0qspNQ9UK2yoD#DFzK1 zZB)R7O9>LLK?M=H2#OF*K(vTpLhCU`p<1<88*Q!H))w1pw5_%Tyw)4ar((TBxkS9+ z6;LGq`>vVUd-lmW;bOo4|NegEc@{Hk&8#(R)~uOXduH#P0dt_4szQ7Qa4eQ&sgxJ? z6n??HtH^fGEzZtg8N*9ntXah&YtX1lo?-P{^C_mP{+ z!GI{f1L(YyI64DmYX4pYLC##sZL)67Utd$a0;d$7AZ^Umf61Kng%n?nUl8ALU74i+z+G zz-Ia=>1dH#izlZLlyV7&wk$y zok5)k@jq0t{@L%^vB^Z=#@X-LN$Y_>;!QigUFZMD?~V8m27w&DW!G15`@d{mhchNM zu+=Vd^Zj)lm=Sey@jtcq|0~jUu=t=3->mcZowZAJ9ridi(1)Z}|HkM#7!K6w->RI1 zvvnOTDX0_0|9*WgK>2=OW{&$T;y^!yXuaLeFfVQMtx$<--H#L8cf$3fia$KoFTck{ zxo$+9xHv8dZo85WW818xBiAo!3u>#_p~G?HcmD z*+z{d>UtuQ*u|@m#3)_`9#Y}~whblpVMC%C@ov!iVRygwnU+YdYeM}%o?MEuP+LNj ziQ1~6EYMaBZKO7Q+m>&lmrAzBC0r+Kc4mQh; zbJcL%i28}X1Q0=S{~e4+*%1oG)B--hm&^7)dO*DAJq^dHJlAn8 zNqk20{@ssIDP>x~S*GQYL+TYB?^Qx>5#V>T6UaOH1YbSQpy&nh^RqebO-CW@Jal5kr13Q$MC+=fC3Pjy!F5xjMRjG-;#hSw2-=96-6_b1kS#-+hO|6V z%fBI2vpX26y$XX+vpW!}ZG^PCGlF%Or`25&iZsp%*PW66lU?7$)<#wj3HJXqHL#+k zZd6A7w3hm`A=OJ_J0p$rqG>g2QtOwtkBrV3}+iUivL~6r`BWw1hMrzNM3>rTgnb^LXj{-GKq1mw^y8&MT z_5${;`0}c)H9G=J!V4ad^8Zv41CEsz7=ECfmFmt5#CAdb-ZuBgK3@n`i z({dalwevB)k%#-&G^ND0_j7RM(X_i`q_H^lk>$&lEsLx!j_%rqf_FI@TY5F^ZWn1R zG-ZX+*lSH6cSv0lP2aUu>NkCy+O(}>?A1tP#<7vr8PTSXI;3KVcWr9=D79&8yYQ~2 z_dBFch^95YpBjE`cI@(f|9e}mf%^siZ=0Oo`q1nvUXI+*VP8uNl*kFBmPK=GmPB(} zA}gNzrlqBM5dK?PUwzbp%(}E8^}}1>X_=AQeS2G4Vms-r=fYdpVa|arz8Qq4Wz-F# zTf=YDQ$WXjXyvoP!%>g}mxXh}W%uEEN?f)SnL6;%Ws9Sc+9L5-%*d43+U1+XWxs;U z=5&j#t$DXsWc8G2aQP-WEZn$#(^u`3CpYGIi>#gpU)-!cdkNjJV{F5&Ey{H_cLdtB zsa<%(u5HMLH_VQm1^@haY^Nqa8rYBRU^klY5NuZ$jJoDqu_kiESmkG#^s^lJStk6f zJ7~?%f7Q}*01JC?Nd1_WSQ%aHr{IWvQq!bd>{+^48C|SQ7DPA}{H(t4@IUhngIHRW z1tHXcvz1|8#2y1ARCgF15t~s)&DU_Vd$D=de2tZH1Kdj7?CU^mpYgK1*pAr8%Qw@> zmT#j^HGSO?>ma=C$flNdsX1t)_~b}qet#^2!Bn`{@~_!=WcWXtcBD3K?zp@~p z4oKOzW7F)FUi}oWeu@eWmTr=|?G5*iO{fBU+?AWCB6Mf(LTIjA5AB=dbg!?>$D=*%fz_|d@v(IViMM`c;;jn~F5b%jcJWq}@z!4$=p+rda!k0D!*DAX=61s^ ziNqw_x{E6cN8&E1&rGHc!16E-xw4z_4JFylPEr9_jtam+k=klE0K@9Tfy#_+pWU>* zQ{>?_SX??V1dHw7wV6Q}gE$j}wU4Z};;-1wU7OKXP?nia5`g7-0a!+C{jSYTAEh7! zvjed3E-wT_yFt5Mh)>XN>@`FXnL6e}B$z@abemd({}04xMfBUI z@mG8pxuFH|7F39GgUrM76~zYmI0La9{C5Bwq=~_DBem}*ior6C3ukhJ%=s(*ozB`i z1T%h|Zu~f-UV^eHTni41-SS9zJi~5z9)q$ee7Xq4unX1>a)UB-I~|^!5nDUE>3w+d z%aO(@M>xLN41SEKw04dPGP*M^ON(vXwKcMO2{!EQDlFR?+ugLelY|nxwl=*Vme9(G_pF+hs2OEee0jg}-HUyS)Fv0d{nIu4vExW zApscze#B&v5zk_zqd`VxSj6fE$y!(z%}~#(C}D93W$A8=R*e-EG!~>Glct`1v1w)2 z?18ua1+f_xri_|Bsj)&h*&A@Onmu?dKbf%_1VtV$itUMgGrOs|)AB7`9wQGwQ?m`> zSz4#2Z`z@MXfuBRO!ZyHW{A*B4Q_fUc&fhr7yn8j3Hj@PrZohfa0~aUi|}z*KYD^?=M~xeb<_J4XdD7x;WaLi*9ih75&@U@tSu& zHUV)P&d4xB%=wrcm*KnwB%YJud~BmU6$c}=|KxKE&&TfJ)69XLk1emB*Xn$X&*3~D z!_n9#oQ{PMso?+(Cu8Y4NULUq$V0IwB!d=zgp7`k(_=$+#)f>3lQBfeI1qc^M7ay! zMtpoI=V4dZ;XJII=V24nd05-=*?}F01%C@8Ik3HVB6b{m!xOPZ*wSEI??f!b#RUgq zK|J|w!@EXK)5qyvG!$w4+>N{#b;V$>?UB{_QLHZMu~%{872CdRGf%ymwxyeBYilUH zEBspQ^1c6G%0+O3qpCwU1_RS%2H^?84VW8f!*>!jflI?*4ln>(?jAzLz>(w-N*z66 zpxX$5>eU~>funfmP~FTq)Twwvk^=&L4)q2n9-jwe>mrRG;E({W5^3Dsv;*G4-HxYC zjA$gZiEYP86GNIE9hx@NFPb)maMFaprbBo`?5w^2Lj_4Z@-4cD$!vPak$zr{wC^nF zMvnALSTa{0z$zA8t`37TBDFsQOWa`)BZ5Y(o=tmFVu%-zWw?PDKpp+aGFo3Kf8$7< z5iw4|2@jKg71s6#y2s6rVtBpt3OUb6$0YTgzidSq={tW} ziw)9TyO_OY>AO6931Oevu~o$jX0O4HD(F}$tnFvub5E#D&U7Jr(`!&`vb>4El(igb&C#K^Qb^ekEZyJH35_r~NtQX~a zKQF@r6t?$b93$Xb$ZY8o;HbRUs=dHmd`(gZF_;Yc&L~p*3ycb`yy_RU#Mbuzly^ti z9Mf@;#LKVxjH{~`aa%|HjMI0nQ1xfx>g#EFzT?)uC#7kdZ0#E*K*#zM-iT*`rp=k* zjdJhRn+FTr;xCm9w)oSLi9HJg*Q`yC4c!?V`gv^V?%2@1E8f5s|6w5TRn0do3*WAJ zJWn6M$bA7+^e(r)5Z!XFR!ehk^@d0zHug#Fp9)49f%nJN7R|{E1Kw@PZ9&|VDk`{# zEqF#ScU$ge?md=%YBuwek%0x|u@uuYQag*Ad8e9n!8)9lz$D)^ZHLV5`VQcu$m)HO z#!uuFqd8OG1VmP+MPsk*+NQ1rKJ0);hxFKM?hP03yFv($Vz2IcPu*{&HEj#2oj#*! zQ)c+n@cZGfV&nI!X7i=lFQnPsy4i0ctG|deHZy8yLbIwRY1ZEi+t9ZY>LLvx1vGoF zNt8-!+G;n8M#G=}zi(Cr3$XORw#%4M!8W_i?S;=1Xdh3uQ`{%pjhw*a@gL5A-6@se z{y4`ABKo1W3L-F%Ml>nk6i?*6tGZ@5$RJ{n2_mkE3nIScf}0Bej5Lng8(EEe3gszv zX8@xIH+~R%de>G#5l_Tk>Ia6FrsfXeCY%axEI)#p;r^9?Nf>avM{Yfvtm`11@B zORCGJ_vrU|8JFKh-aE*^QoJ73`Y6v5`9Iv&v* zU8J@vqXxAdhRjBYcqFA}El@8WaqDm9eUPdjlwA|?2r8#3UPKvg%|CfHQR?oph(}OA zxMQn{F_u6_1QzMdm-zHo`i7OhD*l*&Bl!Qo(Sk=+$x(n%yp}%qKg~)mR zUxZIqGWMvBE{-&g4%1zi@yzX6)L6DB7+LWy+3#k=2uf{a;MYT=8Yy(2V+=TkD7M?SOQg52G?J46qqu z!>=DJ@3Xuor+N~w<5eJaMT^BmMeU*b!pES21I04Xo3z-IH7!u@2)uq>(}GZCJ>Fle zX+fm^15lbz!G9~CDv8d)I*a#kCh#qsX0oduL}~})r6f`Rb|FIj-{FIdx=YjRCa1-A zHGSMGuW`<5g=he`zVZ62$sP=}G)WKAVdPBAc=Q6( zo>M>a@YKxN$fR+$$JR+7Mue$4`oOpFr4N5YX7rIJYPCRiZOoF&l$hFMsM z3TV(m=$%h7 z)B}q0u;g-N;4%d~_Qw;}3OP(|tmskmL`tM_I4;Y^^o}%6%SCva8)>ZQ8G909_dye^ ziDUY}483)vHQ{ ztdz$}`H|J|+qw){hc|2|sR#zZwUm0hWUvHW`jwB^20VOk*uhH0I-1+CnOH9N&<*c1 z7u~RlNgkfeXGRCl?u5<5Ez94qiSL9=-6sc}Y0(wWM6SOun@a!h>i&QF``_%|8C@c) zCvduQdQ8AGB%EFQw)S-1yxN}4SrGEMH@sIWwBg`elel+tKDHY5{@2-@rfCTmcv&8A z#R8FLUS2GW)RyyL*uTKz$W^aMxm=O>(3fCEst>BQeiw?1AT%ng&IeebW!3qNOEvC_ z%&N0j){4@cnx|l;(Y@;`_F|!FEX_p&SUX1df!29Elq>B4N>1!`EIj#;jKHe2C(=wT zfW6mm*sfQdx`imn3DDjdy^m_-)*e*g*^s;H1fUq6P$5yRI>8lOj?}_|)hHuf zKiy5hSWJi(v|e@ceX9-+0TpwGT6HpI)hXySHPbE0;hGbhwpW&%U=)$<^}GN;KmPah z{Xd=kclGM#BCIr+uRUv?Ou-@-LWmUPj2PXA6Jm6a*`09pwc%rAdvDl=|8v4$)fGpD zkh@`981GF@!s*SoXU8emp(}tJ_3Mx6$~pP16lwk(alOdEQB?w4befpih9z+9^R0RD zj{6}t&4c4R@r}Z_QK6aN^yBQNFo5H=B0RAd;)(rJJa!?NH)o7^*wFh?6&^U=<^#vu z^1$&zY9{t0m@N&D9I^E^+XE|J#yVeEy|&eEgoPUM@zxZC$a#DnrYQC{YU(YC8!p~@ zvX33H=I6_1^ddSan^7Y&@YFnRMm(Td!H)gG4r>28FioRvUHmVA_ zP4lAB4sIxrqe6km>Kt-VP=@SWIT8@yBrLryLjvd69&A#kaz=F5CT_Gi>elTRVAsLB z`JoN(%1)>P>i<=SAXXM?9e>;W@r z8{EMi6MJ%IY|r2HYe@UC!M3`kd;4DL*A4fuhA>Hq6^=EYWT*&y)s zx3z-X>Hj?g|G%)y%{h#T_w#6;p-&42M{0-jr5?IvNy3Eag7vBg zV^&#a@ER9ZuPM<&R>EX0s!Nl33sHUe9FEtiz%a3A?DY-X`ACliJ6M+{kKl}>|D?~D z3b?dj`3apWhXli$xUA?0nfwj!szXbu92t(438xj@;LzNLZLycaPd!4e*`4sBka?wk zBX(*1_`YFt_?_9YrRq^!-fFx4bU9!`hac{SzVcxJ-Hfe+rP5WmRm88md?l9XG=%)} zgis($wRAbw1cnTDT2+^h_r*J}Sd>wHbRTpIF$yXa*QIG$IbBqjVLyJ`#4a!YO7;0A z)n_?d!1;k#LU&orQK+BmHoP0#6J9Te$g?})490Z%AHFVcoE;m6fal+RQ2+gV*nB>g z6Wm9&d3c(k4^ImswY$GexSU`wle0eDNZ}Cy>q{F?)`*7a*%HdkbY8p5^y#I)E`b!y4T!CcBrykz9oO-zrO6(g!wj68eAD8&x%TQKsIEEu_o7K}_a zLvj)=81g8baVk09KzL}_=q6gyTRQ9y4r@L5W#@2G} zeaVW}dP~HWhNDecCvx%4X=7<`iO1BDBP@hN)ID5k5c>60^)pz%Pv5B-SPg=)CWdVo zpL}n<2;f{H7uP$oRK%WEw>$Q-V0Bs+5?v;%NmL&=Y}n*38CIvUV8nI$U)xL7!(!7z zZUY=myO-`pa1gzeucUM@WiL3`p=B>+tNZu!+U5)0^SDahDyAU}Y5J&F>ZR$pu=q?a zES^m*FwZ}QmEQADS)}%_pK|4JuUrCeV3jE5vQhJ1DjtD~Q?P-To5vCNDQGax_Tke( zRK^;kj?!^Yz*_^Ho$=NnN8K9anp*?DiZNIgm!su97A!8Ek-?!|F&CF=T!gIXsGgHB zPFG?k)!_w@35aC$MB0NXG6E$%A`chHBrD;RlH{xp|DTM+M z5~>MCQ~0pl6)yoOj~(3uQz$p~B&~s!3=u|8Xfpx^E5S?WVu&(4JiSzxAr~aDg0Tjd z^UU76m0lng;+YY5A@WM8kF(1Y798 z>NmVVOz!pp%?FG(20G0i=n*`ie%EtCCe`RhwDBVSjaYtboqnycZ8fm=1Ww z4zFI;s8{SZZNe@65g*C>@#QEi3k0w}Es2)l1n8Hj-@NBT^}Zm=N&>0#@RuW&L`zUO zbu$XzWTE;V66H8P!em7`kBB|q9XEofVphvwj%HL zQU|_VP#E>z8pwqH>H4jKyAjyp#=Uw1Z`*6%lQ4I55AVD)O^%&=%dvA$IcM$To;YJ4 z6bg=)+qiMZjw)|4AYzH~Sx3Cq1SW6+EX(lg zG;@oHPy~L916ufF5#RgZvraE$aQ=szMfJhrLcIsesqMtxvh(uFke9o7Vwu1#<2w zcZYCPG^8FB^yOl1_%*FOo<{JVSujOyWVvb`&%}X?dZ$E^#o zKu+zUk5IVaVKaq|2SXT6SMh|$w?nK49k9uInpfAse>bMrL|l+<0)Kv8cMLSb^?W?7 zxl5clDOWjv=$`N3?G{|L4VUFto3Mw> z3BKo|%m)#!L18?a(`-@3s&eaa2!@pBO}$6pSl?W*@scsNL78#K{*5RG$MC|2=xYcg z1fz=mVZ%@0E%~bZ#=P+IbY+R+IK#&DBi~^6*&`>+(|vW#z=v>oBGmg?G`!AdN4`YE zZHxz2uw`%kzL318C|f=4*%tw3vAgQz>1S^BrayOFzDG2;4)1_^wuOVZ&Iu8G8e50A z^+Dv7CGS)8S)S^&duglR--@jMOx0Fbwz=~CC~OdNy;2?neb%S&ObmhhR#+xpYosG- z;p$lw%29!!f}_e@vDqAits%6thwsRkpeMj$Wzwz45^F6fJ|#xC3Y9~*vq8zP1d z@?EkZKU8=V>oW*=u3h3j*WLwM^F4TIYddyU?^v5_g2G5`6o| zJWVD`F5N5xhsDF?(423M>T-1_huc8w;t;P0_Y~#~St?$TSBAMl@c6vIeMPts_i)2| zA(D>r?>k_!F!o1GJiMthAE)42sKp!)|j=g50qZ~f3Z-su*Ap>8= zO~C;d-bj{6AL@6(`x?B>Q*%M@?D^sK%lD}}zRzl&2&y?(uwiR>XRH*H1ct%01P!B} z7w{f2&iIsJKEW!J$S|rrJ;w5XXT$u*W0H7GoMAG2Qwi(&v>v|c#4~hyRJ!c@Q7iNr zgDtKw1%5-aB zdXMF0oH)OpN}nJan(C-I5bZlHlhXi;MFC?TZ+;&cduhWC+4FU*lNa776H8B|VQ*t1 z#s1-LIf#8qtt-15>Qy9+6F!7sh=h5= zy$;EW7R=zBYt%c(gJJsONbOjjhK&g_SQ`?;ANBeHe^Ud0!e}x608}l1kD-1z!-^nQ z-o^Fv@Xav4^~2u-fjZk!>cpA`uE7Tfwabx*9Blq&s4{}mt|^HQ2ip?<*^Xko`iAg3 z@&kUp&SidhaeAcoIJ8xqtNzq$ain^3-4H}%pMpOVie_LJs=b+FMFzCyky;K<`4Gl} zI08|Rymv?awr||Q1E2HMU%6cnr4m%2`3k(gxBT)n{-MN$4UxvRsEp?@oZ(9|-b;1- z11M>1%9T#3FW=kJvg1BHpyWak>9A=-$=Dx%%CnwU{1p0)NaK2m+ajx9iL8DLXV+U} z8xiclq&f1TBr@nH!evxosn`k?V6GJ};Y^EN*$oq}STC<-9%Of_9)MfEs>SfHLac}Z zf!Vb&U~=0+a*TwB*hHpT*m3(Se}c4YAYl7Xn~+;RpF@g(7H#XE1BFBy%oudXT)DI>+#fGfc%JScoS0lIbD>zXCY!36ji9pA9kd;?eG7p%+nz|BrY*|I(Gvk8)ktc=w1=YH$X$oz9jps2S@=_sa%vu*BmN(0#NRes6Is3XF?pAfzO^N`zG-_0RLza;#@_RL-1+h&<+)W0FP%Mo#w__!u%Y$p!DPTTkVKN@$Y}uFN0Stm|cC@^h@Q} zzNei}Bg}>oE`<^B8v%#>!{ATjFX!`Ls~-eU`b*p1Pl*3d_{s1ZOzqY`89wkt{$%)3 z+?MR05a&V?45nU(Uv^VJjXZ2f+4xeOpD=D>DSq51l|FO+f(7%O)EnL*zxiSDUl;_x zpq=`wzZnd_o1FU4i@@3kQ$oR+3l?H%V9ns{c?<9(!zpP&`K@wI?=V9&=oi2*lRBYG zo#4@d2y#y70wDCV@jDnW5K)y zmsUB!fBK&0h+y(QU;PHWD$k6d(Dsh6;PIEd1sY{q5gN1>gQ+zJ+ z`N5L|Lof|OdL{+GE6h%)a{9bk)z!0{V6l`3Lqq3QSC!AYw46WU=LAm`eM6z4msiiS z$fpT84DOlu?LYMP^uTaP?-&|)@${;ToZw)Qo)#Le&>@1RhlVP2sGu34AqqW1(9F=d zc?+u0?-G%n6B@42QbBu!hAMQJpgluF6gphcUZHVSbLP&jc7h`W&kYUN_(;KfhlXnW zdxG}~4bk{0!TTy3mWd6cq51fYT_-p?P=PMx!J=QlifJ5J5)L~bqY?l$kP17~w!t&; z(}ncJc16#ig8WE#>6v3jmyR~buyLhBO7!n>mkz5KH*!L${uS=hVdG0nN9mv5o_OZ? ziRJi#_6emWj{1S{vLWLql#UxW20wMKJbBiomoB(;#sd6?W4qJmqOndv>V;Q%;X&;O z^N(#t7CY^SiswWw*STQiGN=6+q=h2*Wo*f%$xqHX?Mwa%DZyZe{5}4Z-hQ%kMFEP+gJ*eKfn&;p8Zk=sXCW zDGrs+#epZX4sU>SQA8fki^a%o*)b0_pYQqv>qhbW!Us3LG@ zL>5-flHV|KLT8eY8JV|W#znJcI-#+wo+Icq`MvPaI9AAw%$PT~5- zi>FsQp~>H%`NA%occF90TZD0#3OgRIHmJGPqfu>gcoOSHW>!@@;mM0a>;QgcbAI*Q z>dT$*S>y{w&Yw3IrDu1>HFqc?ZHLcc+i8)x^Jgz`!c)!%Upi$>(=&CNng8MQXq55@ ze!jDH*>sjofLimQLOLxPn(}+}KrM%CG&H>@8toK};{UExW+*Zl^4|zw4t2=cDM$+( zF*tk@Rbs17_~f_IX~|E!%n6^Ox98#Ux1Qobag> zl_4F4sMA=IDHs?9%TY#9qE2Udu27Vy!6ZaQ_Uwyc(INDZJgFe~P~!QK>gin0!)LIu z0_|Mk67m*CWSzZe7RIKO#w&_k>V$`Jb`?i1(7971=j+^Qk?A^jy7A(<)gxudhMy^R zO~wD+S_LfA@KaNR1`TooJ=rM#U5vmjaQjM3;qLU5Ku>xKevv%00EK~`EJ#@u%b<1E1C%aP-e2@Ier zHzIc=RMF_;L^+pK>1fnA5Wv`tzZuW!{|W5Sw0ERNi8FxK+24Sn*=iwj>Thzlf_@~{HagEV9>=<($3w28401o zSY{+N0CTb{*)MvB)PGQFnD#T#`J5`ly+km>-4(whNexzlpTD)LY<(<^l7}K?YeDA_ z9gVsHK^uvR9}BvNsMz{g+Byx{><6e5Y%LXj3`*8|P_B}`K+|Js>y02wKLso5qBRxl zR$$^0f;m~+!Tp$zd#BV#Kcz-Fz7CXr3ibdno7=%e`r5}G!Xup5_8h@rCEhN#$8(2t0UUGr$y zoNka;PF-MEsc;)8S(Tu?CSwk}=FzUrAWPo_%jr%G8VWWBm}n@Nlf~bVIzqg{a9=I; zVOOc~kdJ$N9QU2z9`EDk0_L@SreLP+<-n}Avmaq!=(p0+gFen}KF+KoeVphc0(7+7 zlbdO$Ab;d6$tH0kHi<#BJfG};3kcl)5C%zY5`%o3#30`$aiX$lIxm}q&dVmD z^Lmpg;y8?k)>#{&+f5im+n%O}}8 zX*f86ROpEFnygGL`)^_ziaAT!_^&{gfe>tuU>FF&M)uI=6by?PxU*z3VlagE6V&jy zn*}r6C-?Mo&jI&jA9oBjJnkKW8Sc@&eB9Y9!R=|i8l@g*mt10ovkI8FkJ1_{KLTF< z60WkX#6hp1lCrI!NAw0N6HL%bqGDS?pCl@_Ev9W>2b#T|`oOkQ;ru={3^v7LS!`gP zV%qkXAd8lQUEY@%v=r^qK&g$DP;T=DuDq!~Fp;YH$tsr(j`Jww6bu zz%f8ErJR7ELx_s41-*f&*jmt+iHfa<($-smX5UAhU~8!`|5&v0G$?n=QVv@WrLF$} zvS=#Uf_$y1U@rj^j}Q!-1h_Z(xR3pg&AnYPjFi;>-T*&0e>s^adtxQ2aW`ssZBIYW zZhIXttL^MeaC@9R3T)1Q2xi(X9_ZtQ9g4uK>?#rY&8VR4D(F*0#jb*ej|VDt6|{_~ z*!6VU^$MWb<w z+Dz0C%LtY;h?wCX157NVxo-vcVjuU_QXgB4)HvltoBLv57I*do>e0#!ZYfl($?Fl+BdxFl( zo}lx3PZ&e9{}oDRJ&iuy*A3$~9+bcosxr0+sLUlntBA^&3%Zx6jJcrao(xpRd~TK*hG>Y1U6pQ;#BLYe82N67e3P_iBXm>1ER8V#m^em!cS3!SDRO~9~+eF2# zlW5npGMMa_u)#%`479COx)#)|BD9i$D$>76wC!^six&uX5!w*z2=+NJ>7QUuRynxG z`MA$K)8_tAFxXb=FB;?Lo&)ZcKJN9X;kCV>+-`d}FstqCYrySkefe0MGjp8Hc^5E? z6MgIya!wedo7kpQuoxtr~dz<}XhHrnE;oBc(TKmIHYk$yr*&lRX z_6MEU`@?LS|7$3lbtl@~h=^T{|HV`#6H`o$zo09K%J>WV6j2#}K|4+WD&v1K$G-?@ z_S3W%#$GBkf|9izlnk^YR=k*vx0|S~DA=`vVe|y+I*DaiKLmRb7*;_ns*`*Y+E>^T z>I5?qGA7#+)&s+H3nbj?lhENTTf%jM83{+6ZA*9wn3G)q30@CE=h)o!f*I~^Q*7>+ zfl-5U@DJ^YSU}dW3u)`XBxPwq!c&c<1+5?|mKOB4M8(n<($Z^yW-p^gu(VVdiMm;L zg0i%S*7HJI`Z|!s(*+wcjTrP4>~XxS>IM zN5{Fpm$7t}ZD~R7Lp|lwf)2dESX$7jM8(oowDcuFv-2R4mX->`=AeyoP_~<1R?*U1 zKo&g(8#GtzDcB0Zpr>H30CTbyL&7o8QhF-%eizyj77B*3lCmcRGZK!th!XCEgn2#* zvq1NBcuFuMq5nLV83}d3FjpbLYyU&3fqg?-9CIvQ+pvC|NwzJTq78SSeNpS$Zhgsg+ts z!G0_lbQCOf2^z~PhlG_r38#bZNw`HY^ip^}7R*RE|58er0|_ttB>V()Pr@gH83`k+ zSY{+V3Jmj<{h~ih8=pxHSXr=9)hsjIzYxrDcUuT<{7bNZVEb?aSJ38s^XAlCZXMh5 z9jCY4NnF9LV>Gxk3&0+@!nb#P-`YFAZ|xmAFMEg1%if{$nK`_e30%pGnTsJ>-BB#% zm}~=@bssv}6}qUcRV6K*b>hy_2X+yIbfGe*~KSGz|xb zkP5|DqLp_+Ij4^{=Phh}A;>Zqg6$Rz<`nGMrFuga%*omf?w|O$&qWQ7`_FEq75%I01onBiUxOo9Q`c6J`P#R&x8PW$A2x#j^?tC|cwm7a($ecuq--r{dM!}# zVnNR(Dz+AMD^c;{AM%jo{1wp2ISe|%)>7e1P_i;X>5W!I(;w2-$Nhj9G!<;MVCbh{ zn}CTw2!=%w+|zvANBq#{ULcs^{y8w4djz=e@NvK5<38>h$}-&N1GBiZ&tqR`U(w~q zQrBqxv5&J)%*RO&18?cku#ecbp0=HcO3Jo^{+Q@!T3*m?M8&p(F1Qw`*tVXw-2pWF zR_X)WN`>k=wDJHb%a77p*3-5Rfh@Ka>>0t(Kf&G>3_c{-XTWf10txGU5)Ql0me5-; zBjH5BjD%6Zuu4HfJM>g6C6Z_PB&_gBxYsA)8A{0B&3@6&!u^GhJ6z8)(|%9EO#3GQ zqXy|P&|P`3m)QDR+IlpKl&uA=CpsE+1A@LmRBSEijO&4lt*@o6-vOFkfDCOd6{>DP zDCrdQvJU~xuB0}wtW+3zGupTYl)H}6 zI^IOfE(cjGE7+rg!LowACm3dzVC`=~^{o3KVY5%d>7aWOt{2Qm_@iJ(!bXv>1`_(A zpJFGGJm^+iLZx6v!o7kS3C{t;K_UA^{}t|bKe4$73ud@y31+yj1;#$?1piz4u-ABC zfm&L69g5WYAZY4sKxKUp^jxCi#e!}nDz>iW`mp?`&?y}_Z7mfZ0VOLBl*7=9Xj)5K zhi=!J3N}D6Xe!uv!Jw&Ni-9?Px}Ju&N{|`vlkx|jl<*ytX{1aP%t*NcnA4}n>5lUi zGC%Q2d0lG4H>JIOJ}J?kQKpeH5}4B~d$7{Q>rIW+G7=sY%;@ojPeN7$BsfmrT0}R) zPC_nmOh3d4+{>}xd-OS7F*3IooM3|bdl}SEfSk+%@CWW)3A?**8r^3F_4ippz0ONe zuk#Yr>%0!?f6bu28lqKD{~M0fTA*2jF@U=VfG%$Gd#d&htA(k7pxJi<6*m#|GNR|Y zrEe023{>Wn?0FZbByhTk)V~*$tZP6iL@Q$0-?Q=m0$C=MV2Ayj7z``e@q%G!1gijs zDG3RSd=g?(3qvEd*7_uT?UPXW3rbi636J#Wo<#jzckhsbUsn^!wLME z)?N;@*Hw_p&oyXqsq{IhSvyhdp5v$?^!+m}e#|{uU%^fn4EhQ-K``hm*j!-PV!Gh` z!zbZNpM)RzB;4zh@Tf@0g@j|!S5JraJ_%cV629_Dh};Vuvek<`rU!jNlkpNQiv%-0 z7%iCT!TIDyAIhP@lLKKh@$QFd?L{b3-Yw{@M8&%W-9}WrThOxmfQr2zroE>D&7K39 zw6#=t3zV#7pmatn($9x!>mz=pH5F`-V9->siNIt#70k)v>q%uk?(2Qrzw>dw5Xb!h zxUcnbclfp4_R)fwwub|=+RlC&+@99Ue4KasIM?_&;mt$FI?kAOj&l^&FJ<2cY2Q7l zsO&3f_HTfSeFYs$RO~BgBT=#MgS78%pxN806YMJ$7Tpi~^1Y1t$7@X=q}FvI;x9Crb@-}iAxe`j+q70ht|9+=oywVgcz z++ttB|LNn*T+K4WISQD?iH)S)FujpPTfMXD1RkfU*H1#AlY+(I_IZQMox z9jb8)xeKB*yAgdt?;*W0qn_X%5_$l850+3t>WDxeK|22)5;2_wNm-S76yLnA#Jkyn zr}&~&%Bm?xkE+05cg9Y)0}havQthO!3bscYOt}nym%locvJk=lM%3Y{Rlh=2C*?9$ z4W_P|z^b9tRUxKnDT_!>PpM*(DVzf)JI)g9hZnWY8CrGURW}7fEm`Cbt$M^ol$2sf zxfMFrXesSdb72VQ==q@YB4+KONOz9@2JCmiv?16X4LeD?wIAh1orM@S1LvRLMoRyQ zkg@@j=a_lOu&-38T`IfjILEf~ohm2LLB6V3hUz24dp!eR2QcE|DXV##iBw z1B-mu5^|2`5YAd$Ieq@jY3JjkA1BM+SgWtTU@{#ka z@of@@lArRadhIXf$653frH!aGqJ!ZWKdagn+MhxnWo7g+ZoyQI23hu zg-V+dEflrMn68Bia~CaCmmLnykf&|eBLYVssf1^=gK%u_U9HY^8-UvE87t8YgEMa# zdL&ipjt_*i0a7xt0t2P$XocvJg&qpSWpxTn>`tz1X0S1!*f0a_;i0hpQKCk#P8fj0 z+ar{;L_u{yta?Om2l(ot1^LJJuLA^}NlZQjv~#e(_6_|O zbE`P)q9~AmWVjR%a4MK=mF##X+X1OgRiJ?x3JN&mDddj;WSKk!kSfeR><)j!Hw1qe9fn2;kUA&1zjeU8gW!@MYrW0`CKq&k-@Zg>Y7Wtg!v z%#(nCGnUEU0jRR1;RR$~QFJC76+NYanKu=(w1Jr~0bpkGm7y~e5G##k5(GeKN&_Vu|OEoh3>f~Ht4Xi9=U=-yc^Xo}T> zrdTa#iq(Rqm=@Y&Zyg7~9>#=wtKRf(hb7pWM$dv7_?4zcZT>JAQ=Dq&D5S^hJkw$T zb}1(JLT-w)YUXc{vJK`<1I!!g%p1|&z}HJelr!lq*@;Z@0TJ$MRn}HTA|r+U>}2F; zwSY6xG(^4mF(^7{rR-!jAe3%p)>OfMQ73-{gL|2^Z=kfliLiP8Fm_U z(`RH&mytD!P_JJBV1+46`+y1gGEcxbBY;(m1m=y1`@!}y;0R|S_W31Q9a~zmPC2T| z>7y4~6m0`^$98s8N`eY3+yUs|T;{Br+`dl(kuLynkc4f#n<{M#^0(2Bc2RA#uE4@D zpo6o>SyhfUh;#;Evy5+}3;HoeTJZIu8)|nI`Ei9T$O3dgWQGHeJ`F^A01&w_;g}9| zsvuQaq}plUbJv%FT|Y?q{0Au^{y`dQ&@+?^N=ZkksZZoCR=gPGkYVvbnE~)+S{eR{@gRoP{+2*XBg{^`K>Q(?$ZDQ~pXoLYuST zCV*>mBDVlwb0(ZG-@@h`GB)9}`JEs<2}ojd7QF#TYI7F818{9lq#0n@+}B2Ho3o8Q zfTT8O;Wq%+=0s9tA#nZNw2{E(l;07x6WW{wodK@RiF5(L=1jO2eG8j&$k>F>=2;+= z0+QIAMP~z&+MI>w0$iID;pc~z&3$dOwmI8a3`lBo7A^s}HYc(iVEMUeBZ18+KL$u> za~9MCT$>Z&2avEiliL8_!sZ+@HsP~5pKSS;o2Wh#KGW(Q_!2(0P%Cg zt-!*20G+W%VfzWS;J@r$j=R_R;B(sZ8e(P>i{!5@&uXQHh)*+?U+5%)Gk{1bo&;SZ2}1L%ge{qVt~qJ2Uw-7=Vd2RA<5 zy1HxpcGTG^EEP=B(2Z_*9BYe(qCXdwiA;J3%fdEUhM`Uw0E$gOGD}$6R;(O#CJRdi zlWJjUTQQ2BA}kY`tPqyA75g3PJSZ&VA4T%Ku(Yk%BdD`RSSpyjDJ*R(M$wN8%S0w0 z3QOCHb;D5S$f%ExA{hkO-%#eFPM)w-Fewq1wiTo3d|{c$WTLRNt=P{o?biXUn+~EU zb&R{|xDbR?-tT#rE+vQI9cF+%fh~qp4u<8-z??n0P8MkNqdjW`BnM_5? zdSRM+I3iL&+&V>uO~O#YWD*$QnM@{AYhI=>LqVWZ$P56oOlAS33Ntq+kSZ{Wad^^^Q*Gw*bA~ZvpyHVhdO;=)PDjXo}T>rdTa#iq(Rqm@%_j z(7m%-&=ji$O|e?g6srYIF)fTb04s4WateBO<4p8h>CL28vRcr+v-+SZRtuV9wV)|h z3!0Lk54v|&3z}lJpea@hnqsw}DW-)*uu>BMhb>IFx0>J_{bp+#P49{r4G^~nlK*l5 z&m3+>`g5IU`WpatDJJ|>4I$>tLZobi`7+%A^F})JMztS+?*5G1f z9A?;Q&`qC_HC;y5^q6`b1ArB#F#Rp0AV0zrFwqEL6(fOpBcdNzjt3l$!;Pb8u=Hwx9I^6>g-8rw?V7Zlv4J{9 z@+?RC4FF|>_)?bK2#`b8GDs(KGXT$yOlX4v*o*N-OZ*K^!oE|4={tRm@_i?)-+^zO z21qo>q>lo$9%NE0l5mlJ0U+@pv*aRxJIF*90Wio+I8nasAhS=@BH19b><574gUr%v z0q!6ZSp~2L*|b8-#SbG}xCM}SkXgb%n(7WRk)HuD$V_O1Lmgz!b;|b*@~=Q>1SA?{ z($@i64>GAQCgCFe4M5^SX30AMcaVv^55OQZp(lRZL1v$*MY2I=Sqj=oKFBO>4{!&W z$YB6$kWDLz2AM5%MfJpk%#!W^caVu>0Wio+XoEu?WI71t`v&xl=MC2s=UK_;>dfI()$o#xvPGW$d=k_|G;S^&uhnWY_|i95(dI?E2~ z-a?vI5)Cq2$UybPgUk|sc<&A}k!%14*(|$UvRThJSUhE@m3oty@O(i>LnkAY;m)kl z50KsKp++eAD}}#;$zsWtGr1F@u#2B}H&Tja-pFL$2xQ(!s{r3rC4$K`$&O>P6yQGe z6XDT_{m^ejurkZ6j?V@9rI5xlslc1)62mYv6@X}k$zKhfna35KNk1qr^_e*qfci{U z8agxVA?T)q$eR8kYjmStI|1nOWTq#9i9x0jz`T*bIz|NZMn)4fdKqvy0v;W>Ag<7_ zm4N;xAl)`lnbdr7!R9|K5ic$O>z#2cP8 zE|CXicq-54k{O<53joOt&r&Yy$qa8=NMv{;J+a|E$%zfmBYplH0OCI;+!FLI%pI7I z$Z;nYWO!E?Dwyn$?06>Kz<}*zN)}SeVcrN~-fSyRq3-j-R?g%_$&O?4I>6m|iSV)^ z(ay`ty-|jpmkF!2al1%8ACubUOr8PAtspbeE|gNvqyQjvX6h83$t{M?%$JJJB#b^v zeP-BU$T9u3ZWpQC`2d(;0@JU+%H5Y-#|T#ilS0W(Vxo*!Ein*BfSks7S3*K909!qi z>i}J`(B71yHfZ;iNfz7z=;mDFB)Udq8I5sF0%ktAC*om!+6+8+mDJy0G9IHh|2Dx& z0M3n={29OiH&HW&golUyW5P0)$rFHt)?vY`fMnKT z*_VKWu@39YdTXm4r zMp`LnvO==snA`wxw>%<01=w32advG#=kk>G2LN_NCgeD<8)h2jpTann$u>Z$b4g{x zPGpo}#?mmuq(ftwj0B*{;)XJ0_}8Slo*4~ou&)`mt)++*Ljq5OLQxCRr|DctsYotnf> zohBkC4MuW?$}&;?Lv8kNzM@wmsZv=csu!rj%&m&fpMkkUWtk{lQH8oHcbH_{f$Gt= zxHr@HN#&??Ho&7?3G7-Q<+s2n$g7h;p8lN3lBX$_JWa9W#eIZi>8C#)vgB!sB~Mc< zd2yc{(fJFJiD!8A$iu|mGh{ZHSz1Ik7 zER(KB=mnjbOaL|jCKnkxGnI%Rg47YjfjiE@_j%@Jl}*`21m07_iG@26#%2iWK~=-@t*_aUV-1> z5%~iE^_j3+-@yjgUd!9h?Jp(R+S~^AFtq9Dv}6_aYan_rpd%$}8u8Ttxii2)Wdo5% z0oX#BP=kEd4}TsF@9noA1t=h1f%amKENT5ANb8{blhr`vPeRZi@DX8q*10;zoArDb z3XfrYo(0&3CjKG-hGX(xTru%a0j{Bmq)1y8Oz3ZiXlQElKEN_G(Om%B(8OB+uAzyf zi3XFHP=iA=v{Aqqnyt5kG}q8X!a~r7Cc^eCL(}J3&u8c(KxnOsK)38QLgd49(WNL7Ho5B3VK(-~Iwo>-;#g{%|E> zJ)fcZ0J;JI6`Al^G;UXAjZ36P1(VAqTh4^Pn2GiNyk1E8%*uQi8z=V#=DCS}pz}tF z$>2LziC}V`WXCbN3gA8f5}_{k1E3MX$}F>d=t7{|g*28)es}f~k3q}~1Ylodve3|( zxkAyI{MFEzS*PesI-^q}hZ*(|a!d!2HT|=8P3pB7fbLIb`V^!v9PtE{8v(3hBrtEf zcNtjf03C54X?9KGD*<>SXYzAE{DD1bR6k4YCbHY&?}#P55@ZuU284MtrM5z%WKZ@{ z4_R&lv=^IG45Z?=-!RZgA7i?k^!0H82&Y5JrAj>v@=>_wue&Sy62&@u- zm5K>Z!{Syd)|etSDwxca>{uq8bC_dO_zd|coqr4|qgK+*+&cqxM+#dxlTnf#$K*nQ zyE+kJ`-xU3R=x{>)rkqKwQ(ae5ygk$&xPTdgvsFm+@vgNVCHN^XEM#unYmxlnXEQ+ zW?B@TNf7-KIn1#0kk7uezt)Wmm3smJ6HH)wuSl50L`lY}4Kqr@Bu~O5W3bo2^(Fvr z#N-`-y(bgj2}t&>5X;!_K3G+(kUrt1i?I*t+Tnk~y0&_o(FQ^WCVNGd#OJ##V-vlp zii+*Ad?u7`G(lDK7?7;0QG|xz4@2Wgk4Z-~lhvQ!fY3p(*imLqq z7y%~v0DA<8p9)Ae0xYA49moh6Pdu0rpn3%Wi~y67fMg%^v5ZX|zz7&k4q^mo2>u=- zMu15LAlV48j1%nuN8l1vT?D`gFu5FHj{xy&0m(*yWt__gG6Jl}33)IhK=rN!U<8=l z3`jNtEMpS~Fak!CgBSrCVmSaKz~pW~vJqg}!+`yafLW0CQ_W1mXCUzf00xT5O8|SI zh;ITU8z`1>aXpZMGK=uR3>4LS1%QEK@)01}K(UNX9Kb*sO%7t9Xo%MV7$_!t0m%l6 zW!xPOa0GUtYF@Uw#;SJY{WI_HB_4}{9|Ew!Gx-}pZ}2;i9grg>Or`@;@D2C%J@MKh z01Ql0dbtd@=Hi#N04QM+?(LQsUto>DN{tF8&q#JWlSO@0OmGEK{0$Tmnco z<5))d_KX|Rwi@<~OH$P+avCHL1>i}N36*J&FXgfQH!wdAknEP7Ws?CtRQ+Uu2&-r# zs(F{JqGiM-V#H(>ZQUuo9TXVRufa6Lu)aNTBMk583!=(;vJwLjCmXY4!~qIAejTOjC<979l&g82kZb;;sgL3fC+yJ zG?@dijPeh_0gM_4;Q)D%oDaYXz=X;e2VlM!kjw#CHWaWQ2VfO##I_y4Xn(*CK;0=_ zJAi4(IDnBC?*I(z(j=^_U~;%*%b8rka1K|oOOZ0lWBz_L@ECx3#$p$%c+CCG_cKV_ z3qZ`mWS?XwGHC~it*&TEWUKqRq9s4$O*pC9xyV^Br14Bz0C+uWNdq&%9;`Z^$s&Nz znfbn=Gx^ZanfX-FnOuy1N_}S7X~;2sM%Hv0S)&N`x&{D?Okw&Jq#!@S6Hsmhu!@nu zyb*CN*d73caM&=oAL9*TPXWT{QhP-r`YfP>vk(y+ZZwI!4S-RYYyupE?H=ET;Pcxm zH}=whUDWqIF4uxenr&utYupV5T#n0tM`2 z{5@_`73|MxjSB76A&ppV3nU`!=iyXV1CeGS=s)yIgl*!H#2BArMnQ5RVjp$F z2EYxNu$6;!gT-L^8NhP`Vh;fAJ16yh322}b9 zfaL~6p8>dTK;$0)xB(L?aOiGeR4{Hp1vUU&Hz4ww5VRW*VVjm4aJ(o;+`vfGZa{&* zlImlbyah0B!2Ejv*A0mL696}0!d4E_4L$}-7B(Qy4Tuc{SZ+Xc5WsZi8!$f|;JN{knES3DwzC3 zvJ;uS2}pGo1{#=oPth5gtpmWLnLGiID$IPQ=uEyabY^-WghPEMy#P|5nG!`e`(!y< zI7eD3XEF`YDx9RejcumKsR{Wxm>DgafOybeH>#SL#F zvq{mJY*F-J12fwdvZR5T_M-AQCSd@WmozXFQFJDUD|)bjnIjakxFHjn0svZOa)P2) zH=K;jP(^1#lZa5$(IzPWH~{e=6V)mFr8uusOhH5xt9M-UoP;!@!mW@F=Hh zK_12Ku9m0Y6u0DQiX~4|EP0xeK%Rb+)sm+vmOM?dh)KjYd3iE48@aYD4sk+ zG5T>l{r02(`Rzxi;>dW`;s9|VJW2w2+7gyLO|j%@iX|`3ewKdP5|%tovE*rrB`?l? zo;+g-PoAN8@(jh3XDFt>&$qIlnGK$8I4S%V<*f8uls=x=qE-vqHdYIoVzrIgVlnzpVtTTRf*Mtv9Z^JrdTbQI=T~93)+5G3z}lJU~KHQpea@hrcSFC zjQzY848?1~P&_Lcir0dnm~r6#-zecg1(Ux@wwy_Au0BCP%3CoW5Bvn9!J`A_>HWOH zv5yVz0N*c^2qwRj>^LT?0f=|hFRT&atz4qJFIHw5_C2E`tA9sGxjO6C-cC_O3ZpB6xwD_0rKma8a~J04&? zQxH{h6aQfWqpxdOBh^^e$aF1Bi4y_wmL-iX?bouVNn=^lqP8p>q?~xmlEw*US(a!W zz_To|n^h%aS)v@wWR~^GRd%%HDhlQP(#TaLqDpRJ%Nn_^WsOv0StHZ6EG6Cxh_@_h zY-zuiHBB1JnijQX*&yY_Tec_sm`jmmS)wNZJj)V0O;s|MCCU{m*=pdEtBhvLRTRn{ zZR9EvQ6)F=YGCBLmNin1WsOYNvXnRm5N}!1xNPp%vZhI6S<|AnEE}Ypc*|B|XIdPU zrP`@Q`r9*9-qHWANBLEt<1v%PP5mUx?m=j>-~vqYPhq*GG70~Oy?23+vbg?-v%4W|l9gR?#i$D|uxMf; zEE*(8)Bpj31_=TI6ciLvPy~d4pxl!v>$-}q+S*dVTh&&ItrqZ7C13$BwOp#=rCtDq zfENViCX)C2oq6W$vtbkH?|pxl_y7CvCns~BGiPpRX3orRhhs+r5OQm5>59RKmr2^Zz!Uz z9gPNsge86#K>P!% zpu|lK9l@Kgf(@c`u|kK^DFU3HGR2qH-i3eo3+pedTzKvhdNDU`)UZYl{S9pWKh9?o zVRYn2-5ZjL0*f{JEI_}6#hlI}fGcJCtR+NlLyrNS4m*#c6B&sX3OXG&Yegqgpjuct zojw3XCqi+6pVDB>0yP<7>VE;CqMx2iL`$wxH6At%?Eae;qIgU|@_wNMu9};VycPj? zPg%0F_4K3eX`OQas<~S!tVlTtf2H`1)XFG4kO-Fu%j6;=7E4#xb`xc2u%sj1WyMQ zWDtW?svu35fEii|P$f78&E#xAV^;3LGl8-O}s%w1K?$zKRDC8!5`Ciq|< zV32E6kfuw(4E+Y6O0XNq0Tn2DW1}Bi@ky3o4cIpWPy)u>5+P62iv9(@Z&Z*$bh@Y@ zO_yLhRAYuxjpcM&DYT3Zr>&}Ib?$^cL8w3V5J5M15TG6&2J(z~Fk<`;F&+d!jC2kw zbSRwwVr)cp(Ti&NWK|cVBfm{`x$ww5BVFdW005NEEdYJs21uo*(|N|wi9E0Abaoj! zk%O8}Cr=3h2Y`rBB8Z>zpa_5(0We=WBW29Ub1H&zIyz#UpC+OsD33=Vx{sllXZsLl zXpsBjxh5qWap`eH7+Ll7YKdWIoGhw6UPDWW*G7!TYlz3k%Q*L1@tWe;(=h%j4a1O- zpp9ecTpLF`b;A))-LSBpCXDcRBYvR zb}Dozo$ml1P7wxlz`u5#&s{2SHH=tQ!yC<2`h z7h;M|Bm-ptoz9s6MJK|tfo{qG)Z`VY$rCd&4}g}oYAz97xs^&yyn#wZ^_yUd#{?wr zp8=@k5*Kpq1vEAq(vRzA+;~>f_`Jnrv}rDr{zpiA4*)uq$>*x%n;tR`fW0~RP$W8K zDoE1<4s-nsfTcVD*M)j$Y;Hk6*3-%5ee5w}qhCm)JUk?X*BLXOkL~H?^8XyTR|6n_Mx26xCmQhI0^i3f$RIi$RFJ0g&-{!B zF#j*XU8lk%&p-XxdQUF@KL__?0OX$$Zv&ht|I5JhstPiQPIIKy*h_h)${xe$x=ju9 z1L@E>W~tc@9ijH2`mIN^f^DFLpGKfJRro=4-cx899Y%!?`RrU1k$PY>0f2f40^uT9 zJ(wK*31L^NXv*olsL-KwJ_aNzVp5n+GKFfAP3C6`lg!WLgDHLmfc)t&nI=@INv#PM zlV}qxChfIWg3yDEI1d1n&KQ7FphRxgbUKe4I+10XPUj0lC-S|f)5$~4s(6U7ni0Rr zpiTRpf>N{OPy)=z?^OhY=;(-Xh=qubU{E{)nY}R-vud9_7#gZQKKZf{#Rf;Nt&V)p?@JaxknPu)Zmr@^LtbF38;x{9TtpG$p z=R<`KrSlV@5n~0tnBd78D;V8HDxX8?sJu39qBW}}lT8*|m$aPD7#$g%D{?8B+h#2x zG711qK&MZhMJLi906LwEF0klCE&+f}CkWxGc!*Gvpi_`~$8@NX9jGQx%*aRp>Sfhj zB3k~HYU!3Q#{_&3$^8q^Sc`c9evGTJ7DNAk0?=Ygl6J<|keTL?L1PJg0{`L4 zKe4l!@-~(*!yN-On()hr)CD0omhgvG#Wa=x{f__|P2g!nzPE`4)>}2)SOWCl31~C{ z?s^ObsLnPW$b0~-z;tR9T1H3jA>Ut0l{!rilch7^MlAdubThpP6Ypv_Alx_=#UMI2 zDYTrr!N_C6^#k7n036GE#oFFj!smwom>|<(RCaF@bTa6b05?WN?7-lKCO-WE0Kpih zNAUQVVw%F~BAEE}s$#m@FtPMxRPQ+uVUlNIcMhk|?3dPA*2?%bsv{xWrvdit@%i@v z_JREs=>Pu5HAs*UIW-l^k+P-P)w#oeA=v-q(rO&GO7|0VK$m7k;zt5 zJSLl?(Q^I>uor>P&jC9Z3>fz`!B&C#it;gK z=F?Vy?Z_sJNJdp=B8=-~%2ST&e-vQPFrOa>pgeTgLhRlqW3xe@4~W+opH=~EHTDNQ zE>}z@_k4OwF&c_SSzd#rVZ*$cNGJr)`}0o12(A_^^|!+6ng$1u`v7G4OK(?8Np?8Hr(Za}zkDvEMCHz{-wovDDtB?u`@ zqvi32*(IhR$^1;Z$^1+{nBoHf)CnDm>Gb21xiuxQ#7MA-wS~z{6D%fAO|Y1(O-Ekz z;f8W^xPi-3lL&DWn|--T-qS8qk{?X>l*?5GE}eTikk$aGW;&E8Dt75y6CvpF_~J)| zZ|{Ls4IrIwhN?~GC46LX+kEOzApHg4#u7sJUOw#x*hYeX;c=H@LTi7P8kbK_6_d1f zKS*R$t(^!{I-BFgiBxVBrTr@aIW4tv%Ez|>$ON5t6k0}yBCs(UA=pT!9@c>SeSj8# z(oB5(41j3qSaCr-%GVZ`A(^;71a}?4js0jX0X`iC*t8XEjf_eHL>PaQ5-=$?$z<{{ zAF4jYTjH^utZ!s`tHyhd1+!pE-wC?g#!pz%$yexJf?J0M;l zKBXcRTm3NqWK;zr!pKglK+i$P9`3FBW=gX@XquQLK`W-1-)8vlggw0C)z;deI_&joB&1*zo{hY@jn2U}^u+S7PP@ zfDfI20UC@84BJzMEvFL?>tWahDr`BOdlXtm=K^Gv13+iEJuIAgUIwra4CBE&Nd+53 z=T?OdrE?#kk%>0Fn9q})XfwJG0FWCU2JK*J{YH)*HC)r)VFkmu!O%VXtH|i|1*o+s zk-M)_bUOC|6rIRB0~DRk7J#A?X$i?7Q*_P%C^`{J%&KGx45(=`Og*(!$#5`Ta;ov# zCfvb>xh0bL4M2C9=h*l8_*(!v6dh*5=4%3W1-UyQuHN}H17On`H{)@VV#2IjsdqlT zpqK`km{|IiN)+z;B~QZd85IKR@C9avPp_*GqCY01R9^s)EvR*sX+HXt$OqA(q;0+? zso#R@s19iKFdvTrP+B@xK;vryegLm?b(~NTsw8~O2B5y_SOJZ%3CId)1yGtH4SX2@ zrAt)d_*4L}>5>=m*cIZiWuK3fl1;MPz||6@_*{}t=P4$UY->E;1klx|a?QudimQwc zW3~C3T(dAg1E^dN2hT)6JlA}h2e9S3ybKx;pd(XN!pF}6kSrZGLz}Nj>JE6#1;pDC zpI!mjO1m77&nqU=j`(y)F-d9JP=5rdOxMBhYZbz@BlV;@jkKdMR8?24wdfQpw2aPH zC|C5E7v_Epgo;-^m^`-uM@TUbqI0f7htjzM(1=E&7xm)FY9vNSep}CGejit)L3DNk z)Hxs`-)K6W3srt`u7^lB0GcSB*@jN!E={NNmZ1}2VZm>T${Z|KQJ2xFR=(wQbSNDD ziHCw7(m%55++li{g!pta;xpj84nM7Nw0CkJ3hr zM`?)mC>fpAT;c_{5#v$Xi18>5(H>lHYGxI0_ zk|?IT89^yf6NfyD(`NE5 znw}{0bUW#-gva;8`~c8c!t>y_Lis08_;>JIru-8V zCXIF1Xu@~F^L0RD2|o?L9m+p>!fPb_l!U5coNO44CVT~kjRk7x7)Xb6>;_$s91|5s zIi2YWEu%A3_pZU$!sP@EZAT_wL*Rd{VjVQ81IHv*>ok#$?nV{1-AE4+&E`l^br_&3d z=tL+b&`k$plAi)F0zWsG$j$I)Z=_3JL8do(?40?@!RX8U&xX4c&{+QIrv!Xb`7Z%? zIRN=*#47)6TN)e&{eIrJZ^WeF=Tp*v~+o(wY+fMljuk@f4X)rMp$* zgFl12)1uSe3qTK}6CS462h%Oqcq-j%hHEgYUlnG8DN({q^)BSrci z6S?xR#qMG3(*eqZ$U^{zp!+KT)C?V_taxl$@FdBC&z6N%_AK~pSy(mKmIa?J3#;Zb z3rhgVf{*SK0AzuVm4#JvZCUUo$%3C*cprdpHW~PtfeUnWw&eXx{uWK9GgYDG%*XQp zAnGzWgEeZ)kl$oz9=vt~SP;7V6>Axtt=A}7J~8(*AU^@fL$@A) z^%i9WP|0ABvC&TwNiRPr4-Q2e!4*b%0S0T>4mwrl>D}oUYKi3 zDOvHdOiIXNDT{QzPAH2mBPHDyd6tQsbX(k6rW66haV@}^5?(_0ZUFQQoy`C&vgR%! z@=s0wJ(6HFWH(Vz`izD&x)cPGD`xh{PkKDu{l)QYB*tN~!EjpGasL1kbE*WTFDf3B z2h3wq_5z-Br=%368!C>Q0NoCF74**l-vC;`KLD`v{R2E(0Gr|eF5noz0iJw7SAhAE z=Y7Cd_%ps#__+ZgK(>vKJRbqpf#*#Cd6+JF@@#zM`4m8&cK`;b(rtuK|n%Fs%78Y&IYl za1o#@U=hIlOkPuvN6Om#3NYB8iu^aE-vIhcfWHFX0GJ=~wx>c50>S|EBfbz21^m)R zC%zx>6Cj=GSihT?2Mm1Sv-H=)4gF)#zXx0f`X~UutIaRW^K07tq>%aT01v;2UIrS! zgFYL;ub(diEC-k$d3FPafX4V10Qmjyr2u~Q+x*DGFLCz)tsj6qOqV?T?zQ=mXD@&} zrGV*xnE>)U128`y%2o{M1Go~vPd4{%1w8^DmU$!KGaJ91FYhGy_@P#Q!`XaT+N8@* z3RVC7OMF%&tXg=e8?;F&OGzGq2~8X z__sQNKR>+5Zy@qJmA3==z(D~&@eoL`4fMLy#VOImz16)Wq4Zsh0 znxDxl+X`iDe*A&o^SKj#M9BPz zo3CK-BSPj!oF7Nvw}3_i%zgjH|5D_!FJLdA1twp-w|-F@%sIfj8o)f?V#_!Er#0bk z?oBth@0)bYMcU@}eM2`lE1TQ*4gKrZFwp__0e%4R{(N3TTn6Axz~;w`aCsLe^UAy4 z%#UBFdLO_$R`&vUhavAX<;{h5K6B~pXYl8(mb?el3*haamjld?cVO~XNnS3?_{=@A z=3ZFCM;_iu_#Sw8DNeDvKd;Q=%~$ULc#&Hh@S7j6BRe0!Ysh$kmiZB%1>hxG3~PREg3tqi_JBM< z7%(0%0dO0@{QibAyafn$L!Dg;ne;?I>1BLjwzcSc8_;EnyEOvn5lL*Dp4 z4^Meh7CfI6w#m)B#AW_yS;le9P!N0N*QP z`sT+xtA|nP+;gh zBtH^hUMMhhzEf}oz`Rgk=w-+g+Z<)Lh=9ED7`XX8Y56Ck^Ncf3Wqt(UDQU)Iemrpd zEx??@Hgq0J-48eb*m0quYJ3--%_(f-!@g_U8td4Hyir!>_q64ojLt)WJf+kE;mprb zjI}(VIlu?trpQ9T`v7j=FDi#V0GJ=?*^SV73WcW&-Ws6Kws3de{CFth^8Wga438R^ zAMv{o#vG0@bcXdJ9diiA(7DaL6ks;P4V|04djMuL+|apWdojRlh8sG!UFQSLX1JmA zToq-&GIN*I{J2+Gl7!BE!zTe|`_k}pAMb5|*}gP%ZnNzNnC(kL=PuY;0B&Et1K?gH z_aV)XTOwB@Ka&Bh6Z7Nd2R9ka){LQZQ-Q{Nvo&MrG}hB7ZnkC&oks95;_U+9j*R&| z-JJHP77kd296z==1^*quQ~2DmW2dQ8ZtOH=?8Gr+r*xV+siN|>(No5zbecAGN~Z~v zZX7+K)A)-EF23Nli}NqIW&FgS-FDH1oyJeRal*7QV^a{+h9-%n6FBfUef*fQlc2ILs z5`RRI4a$@b^F1U>8^DC&e6&> zb)Pf8MT#@^6z5f~;AEsZ&ua;{xf2EfXR2E}>DtM3Mjb8F-0zS*%{h$>8P0Px`#8<6 zoOGvhGM%@9doH*-r#WZRzoWAQ9iR3;OFJR$baGB@>0Xew+;#gtuw=T@>70`G9{#&K z;$Mb4_+FZGl=s_jT`l(|DZ_<>$?qJNSc+Lp&+SxBx^^<1F_vN>+0&eNI>;f#_?hNc zPP$V$na=6)VpJ>kj?VMR=hF;lX(yzePLNfav(xGSW;q@*bzzmGUt&3i>3k_C-Km^R z=lFOrW+arNpXOFhx>Grs2$bfIA=ju3Rdqi14m_RZ>`&&9b~=*FIlS@A@7o9FPHC>& zor4|jXAZeMsw(bw%_w}KtGnG|S7rr1BZ^kF!~HrKPjL=PEXHj*W6DWK^8in#b0Mqa z39_d-r;sGIakXYwPP$V$naJ-WupH-ikLjmr5ws%50> z{*d9USC7q|dzI^^o96O4k3btKc1r}R_hdMaTHIe-+}drP=9=oDtL~ zUco0Y_?*Rz5&nhRUpX1hzI@6|bN2AMGTeo($O8EHL_4`#(L=gS9i88)N1tdBD;|Z#+I4pN_SQ{S;S1&ZSDnh-MiIOhHAf16w2-7y2*0UuG8@6y2ZW2 z)e11#y~F*v>l9$8yLVK&r*+@e=c;k;c9&dsFIp>Nf>g#UakyW?Q*-B)d~jE za?_o!D>u{mE<(C%z=>*5ox7v11)uX_#c`J9hAg*}^J!;G_l7k0=kDDuFAKUe_lKL^ zXT0Lxf5Fbz+-0tSd%>lDsBxa}ca<-2W$ydAYn-#I!`0=bInMK2xvp8zsr$0-S6(pf z{=W{n{O&iMm$Z8G(y5)CIj447>KeSyb-8=T9j=*IxSw~;?C9=wv%ARM#ns0Btou6G z6%cE8wk@Z7_LuI$P&&E}zsPQjF4Q%}}u&FV!jALS-NmFhaU75lGP!R{| zflf1wo-nquax4N@-Z(Dhw((;s$EA#)IDK@=)SJgoRvf)1O_($Vfh%sDG;LyKO5a|+ zE(vD$y=q8KFu!BBj^W^i;m#L@yIj;cm_2sJ(1&E#bqES&yG1#WBn6 zNljgdQ5*|X`Ef_5M+PjEA3$u*(_^Uv$FoL0B>0#%!mt^glj9`g_lU)z#ft_(JE`Ny7I*{xKm_ zKi&>~X|S>I<6Nl@M9`yw0D5P-Ue8PtanDSN_c^Q%0w`PZa*c9bFlO##4PbqOoEcfTbVq+Ju;owCyBU6<}FF7MmF4OEon5ZS+2p!WP`MxN)l^t$h-jU zt^>-Emg2=^PGi4HGuZA7gY6gW&!-sL%YxN=4J{uHTgP(2xdyvhu$u+TJJ0wI6znF! z0@=p5hhWzT=0OkAX>=BBh+vPOZ+tfh_PJn7a*glng8fUdd$11HG5<-hHwBw{f$@Dr zu$6*&I~(6of<*;84J%k3^BBRRg1NCq*1p39s}}4>!AkQD-)(|D2K$Z<`<7te2=?H` z#`kr>J{RmZ+Im#&FBNR9V8dbY(Y^}=ds47>VFS{>KM8gYY;l_QSHV6J>{M9fwD04B zy)M{6!J<%vn(ukR-WBY;%Z%?Gf-Mp3s>_Y=Qw@9!*3D*2d;2=*1$=Q@`2t~OYi zV6O?*Y>@FS5^TI+TLo(am8jzzF4zLWz7wn~*7KTgvS9ZM)*QN9`}Q4*S4hwo{3#a= z!_FtLw3Gs1P&=UA2)(Om;u+XJ&nXTagM@%DHu<2XxcWx4hZIi zy+He(i_t)1JcFUJF9bWQnW6nzux|ys2HDafQkxrWvD--FMPS-@y@Tx}BCdqUeKv;%^rqI2lFY$;e4FdYleUufR~!8i-lw84U115AgQ zAhg>BTPWB=f-MH7L;PN7s{~so*gpmP7?=+61u!j*Z^id}p&b*N%VYRX0cMp_XaS+M z6R$KJ`wCI!Hx=F#wn&8S%RG_ zSOG9A&%m^V`igI<(8`5&tv)s)V)>m`?3Mq5WED&kF4&!8QoCRrq!b z?T}z;Elep}0n=$@3+-aTiUk`id^ZSfvS4!r<5?Xv4`|>|fN2SRCD{3xA!}MbFx_6d z0n<6?DZZuRJ5XrX3T>3oZW7ugq0JQ99HA`~S`3&@?bkwEBD6mV?KQ#vF4(_>?^~h$ zBv_`;l;~_=I*kj2)?KiEf(;kGp9yW6U{!)WD146q)AD;-e3uDrrO;jx+B%`VCA4>i z_My;r2(1p7&iw(Q{V23kFkI_;J6o_E!MX}|DKH(&0HKW(>}J7c3N{y*4spNGmI$^? zu$Kj^1*Sv%LumgJY>!}v1%u7Y3XuU!OVSTam*`BPwHI2p&@L2OSE2O~S|6eDw407^ z2r!+$8-xavw?%`+-r~DUum=TuQutO1?Qeo@5p28g{U9{gX(r}V1#1gT=cSX-E*0!b z!A1(-4ZyU7CW!B?Lc2p~^MrP{(C!o3!$NyRXip1m88DrzmxT73&^8I}Q^9z?OiTAC z;q&?pt+imef^`R`)95d>YXuuG*i7NOOK1-Y_PAj00@E69A22N;PCqqvnP4TrbWZyN z(>W*?-%;W_R%nxiRw=YOLaP#5OlUtB+G3$S3QVW=N1;70G@fPCx!NMw=YoAFe6Ci8 z?^MCg5v&t1okkC#4G?UkV7Cb09YTu;#{7w56l@?c9pXlz-745z!D52_0+89b&uCz7woouv4;3IZg+rL$m>=C7CV07YMDZ&6tceCG+Ri(tJ38zg*Vg*H{N`GVaqd`pDJ^T1jzFAMeqFrDX?NM1`QDA;v^jRU5` z-U1AN2sK@N=ZSBP(C!o3144U5XpakRnb7_$v{!`2@0H^Zsl6jKo)y%zFNC&VFh{`T z)GOHOz;uZ7gw{o{UV;r2Y$z}tV!Y696RbwCUkLUvFdgD4q5Va$wSsLD>;qsr#5Q1B z_TLJ2Son?!%?&e$u7y*8=@4fKEg-aWg_a9Ur%@oZONBN-Xd?x?S+JRc%>|}oxnF2Y z1Y0K9%YxMc(;>D9?Q_9+npKzMC&658Oo&r~Y2R}MyFjq+g7pHX)8J`XEsf!V-6(wH zgf>NJw+U^&(C!o(Pnzl+JP1su@tDw_655MGTQAtVf^8S94w#PRN1>%7!#a&K1nVGJ zE-)S9QlVWb*l@vqCfF^&bcj2I77^^1g7Mq3I^AW!bcjC#!ykItYl6K2O!M)qtoGe1 zG=BA1({>8&E1?|_+K<3=8t$Np?-XE~c8<_45Ujgk{RA5TOotdPv`K=^7Az{*{lIjH z$A$JM!Cn*W?}BXsrbB!#v~LCbNwCberW|2lT6gvn+Eu_%WY9+l_JsI8Beds*whEX| zw^n@L65owN`%q|~3aw6P-w5rH(0&qH^L8fB9$-4PGlkYhXknpUCRnLpBZP0F&}IpC zw_v{(K7N~Bx1pB=+aTCh;rmi(-wWo%o~RD%2d4Af8km;u`GVyOAJ2+w-(Es15!%&4 z8!EKXLaP9#)0ir>8A7{TXulHdcY?hj*h|24EN=_#L&0_lc0jPBz;uWfuy*V61_V1_ zumZs@1Exci3hf%f#tAlEFn+dIhv3O-Eus6x_aUJz721Xbx;gXueEfx*R^Coh7t$gq9<;j=*#&y9=#IXxuy2@r@E}qF}QG zTL4VQ@_^7D6YM#`UKQ+hU^>KmLfawOKEb%1qjQi3Oo#9bt({a-sDT+Eu`GUal3|D4|Ue+C0JT6>PC!j{(!MydbnS zf^8J+6Tx->(;*HBEj8DasHI>*!OjJyL*xssr(k7*T_;!tFdbqNFx{?ZitikuEfiWz zXulNNVxj#`XnzpeUxfA&FrC_Zp}j4%PlWcBVEi(Gu0eO6!CC;z#B3=oB_y;91uGKl zD!~Q=(;;pW+6=+&6zl=Peho~AcvfgH3ARD7_XPU{m=4kG0)w>yrgPsOn3is5!Dfo@ z9HA`~S`3($)kEUDRD7Ql+H#@s8xcBkgexWt%Xv%S# zU~L8KBv=<sXu-3pdUpt}Y35{<`X_I*n068w*V5^fsZ@2=)uX9u@2< zU^>K$LR&A`yMk>OtPYqC@uSev!=^-M2-ZQcTwppxH=*?vY=~et3U)Iv9ikGLmc|_M ztrA*HXg?R)Vxc`Mv_A;#IibBIwAX;?)ZP}_CZTN?+INE03&yi$I&52Dx>h?0cBx?f zh3|Ty-6Gf>g7I9Mj_+ZiJtf#*1X~YG*Zx0&X$gHIzT1WNwb1qn?WoWk7n-n{z;y0? zLOV-n=K#~W$`e{=q4g5lK*6pTY?AQJ7utP-{Z_DL!uOic{w~-@g6$E$!$NC*k;(n( zf}ICUOQ@e<6~MHtCJWy*p+$xEE5V)=Yy&VI-&ca2n{Q|n1e*iwR5eyq3vI1n>0L~S z0fG$^tOA%0dzaAG1Jil_6qv4~uLb*2uv0EJd>w#kzKaFxC)icMbUFB*sm4|dwi%et z0l)F7eZLf18p?H=vKsi*e~yS}I}9I;;we}rA`}dPR@h-e8zHn`32m{^whHZIp=BXv zD?UkMvd}7pwn1ob3oYMi!WID2<>-i4v&JHJ{*Kk-HbZdZ&3OJx_(iNIM@lforFas& z)x+cX&(qwBM^XNY|2&@^r@RjePh7_-`xy#Fic>NWKTki$DeXYvxn)w2b^N-3!qdf? z(y?;vj7mi(1+RBGcpuX*EQ)qIju~A!+M+OyWTohM!_=uJkgGACDe;I>70-MVB*E>+ zjNsP{fc$jDeIAT5;WxzMVHYc;-Lfz*{{|w0PW#Cy4*YM>X5x zK?NZ#-c@t_FKY2*D4u7Lq(!i?{?a0`{kR;{Z9Z}IF^k8ec(6D~@>^!{oT7LZBE#%I ziNBX@$?FomB^1*VK01!FKY@~lfE~w-y-nBXPreS>2d_i& zg^%m6?%T6Vmo6!d_*~qWPeDOJvM@am9lVnI!7Eu1kb5MdCn1SI{_BLO#DaHGMo%1b z{S7nmZi^!H=G&mxU){S$sebM^v2yH`sgS0YsL%(Et+cVqtEjBOj*~id?h-EOT5xf< zi@OAaUBaD%LA?Hgf5Fb-@WuK0a4){7YiE*!qcTbzY@@hb`*vpvmVo%BI_w&UlzD%| z+Zt$TPhX(h>0dw#rj(7cYaQ|>`xT{xSKBpDG9J?AkHGinVau^S-O^{%q(T@J32Q9&hyy6ukQ@p@krLtLqRlawM`R z_W?!7U91^5)*d=1@EZaUu5Ng5X{-wd2?h$D73yfl*QM`;DS3|fB}O;e(xh|tpa*id=vozDLw(7*od?1 zy#q=^S%@GTOz=~E!*+G^_JcE-*(G3{BM)~A)<0u zWDX7$D3*3xwns}t`HJkTi1^QhcM$RT9cvj=EN})MvRt!5*|E~oQ-FtD6GC~8H8rcF z5R$iKaLDH^`O#ZaSA`5ay5XOGLue*Na+C{O-b5p=N3yG&ki+m3sJnUWm zw|LFvKr6*-?tIKM;x$*%A}-x~vmtCHg=dvSUDdiq2l;Ehj`@3fYktCfEOMx7jWbvK z)U5Va--e8MSI)_b<@H4J0eC_($V_U2bapA}e5RzcmC{K+WJHs`wIb5vZ7;8VY5u%<^H7Q2(QV(vgoe)ZG4%7|A z-MsF=(fayCiNwY6KwJQ5$g_NQalA)y=(Bl^%lEu z*xKCbyHs;(w`E)U#)^o`H6rAxs;{5+N?itGjlBRHJ~Eb2-?q|0@5L+o7-}?L*~3sE zQ@Z=!&eD|~*^RGvWZ_)A%3(IP+4 zvS=R(guU4akcg1yq$RRTcOQHBmLwS+I=m()KyP|$B+7N@s zsrn%q+y}SoK3U2%OOcl?wR@T$923e@WOjMvxpsGRDow=CW{w26Y*UdIr*8pks3LPj zXcS7EMLxxly=5Clmw8AneG3YaUlGZIf1$&Y?yOLW>j5R3*obEA7-9HSgBuwwaMXfO z{>`o%uSEpWIi6T?Z;o!+kzJ7=ApgAR93Px;bdDbm#+o@dw0&)#+W1DFyN#QuSwQmz8SO z<-wi0W_5i^jiE{zhd*AU1>%>)C_7>IgMqoyW?8DO4nU@;Ytf4H(Y^}ex)o2Q zR=+|sFR59r)NCQttcUr94z;vuw4#NErJ{v~rN;=ZXh#`E zTY>2v#aCu@D`w~O5DmImYxG4Z*U8=$(*iDNYOCk9MSjDP{oa*fM2B|LyB$2xgZj5Y zUh_Z;Ai80yJ8p{lm5P0tla#i5t?D$L%5!i#ra>dx?vHGRDn%zn#KHEJp;4H>1e-_w zF=PYzP~9+K6fEWeTfQMN@8I?bHDMMyB3e&sG}UTT{;=wf-sKn%u#^b8@|Rh*T+7CFzR?yb;DH=w&IHEj{1DnTamU0O}X0?k1!c4%oK9|d42 zwREuK5a`stHTBTA@F+~8bwiGBm7!2WtviWY_uL;a0hmq&z~#gV$N!lyW$A{QZyIJn zykQo`8)n#Qn0b_}QR`@!dB-)(u+=bGpO_u2wg!DX6~`N9k<~EsIsSidHB4*#XM0pD zi-hsN1TwRlWvOnKm`5+!3GtmWDg1YU8!o^xzrkOSVJCNd%k3~m!*fCfF5#I zF;v2sv$g7PPHRe_D{uC(?h`NxtnqWCx%xYsV5eaH)s$eTq3d9knJ|+&6%oV*%Q+9G zPn1=@9?T2OU|vYMA}pokT{-($1a^QvL9L{(;=CyoSpy2^&X`3*s@ayBRy}A%pEhu* z^1^Ko*)+CZi!Mj6hBk$wMhD7Qin=Y9Ct82E$Na4cwXNHJqiVarrnYB6Z5L8)TRF&X zT5VHh7bd9ekraKNx8^&x>G!|Y>nUq?1$o?Cn~Dn1iz)B&wT?sRL9?Pm{m?j1pju<8 zJ!|TfG-`@4=*Q<*sl!N(_2B%9gJ1P5L`_9@5RYN4%JQ`;Lv`q-OkphbZ1@&cEb^`x z+8T28c~=a;#CB4E4H~p|7)re>u4fG?vBR4ymSEJcW?ZPSytaE)WqqIqQcJ2e*@se$z^Q7Ojnq*&HW)fX99r|)M^fV>XkJ29 z_;rKN(j#a|bE2z8P)xqE9himrFagWP1ng_pP4{nXv)&(Jo3m!UGTqga zU95drG1Lq-Z+L4ShOsSPD~Yq-ptt(VuT@vUtoH{_Y6`=# z#>0w%Eb}ndu$N>-4(ov>o7xG)b}&;~BgbEms}ztaSXplPZOaWVB^xX^vZ!fbOXIj= zUv6N%n6KwK)+)ohyb{ym_);S~VX5Jh<%C}^HL|eO_>%c&1;iH{wpmOe>LAEE@SqNY zsDq=dgOy+D{t@e8nIv20yorf~+E9Z0f;k&Hzd^NuAsq%2Wl5k)tFIfk2LZ34;Q z*^0CJxePu&zE2^aIFni{AJ6pOUK5`(L&a@ug#*#*Y3^aG A)eo$ZMgN3MKQDm3J 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 znjΞ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 Date: Sat, 7 Oct 2017 14:48:49 -0500 Subject: [PATCH 067/111] Fixes from toaster, plus some other things --- src/filesrch.c | 2 +- src/filesrch.h | 1 + src/m_menu.c | 5 +++++ 3 files changed, 7 insertions(+), 1 deletion(-) diff --git a/src/filesrch.c b/src/filesrch.c index a28c4d83c..f8bf15293 100644 --- a/src/filesrch.c +++ b/src/filesrch.c @@ -520,7 +520,7 @@ filestatus_t filesearch(char *filename, const char *startpath, const UINT8 *want char exttable[NUM_EXT_TABLE][5] = { ".txt", ".cfg", // exec - ".wad", ".soc", ".lua"}; // addfile + ".wad", ".pk3", ".soc", ".lua"}; // addfile char filenamebuf[MAX_WADFILES][MAX_WADPATH]; diff --git a/src/filesrch.h b/src/filesrch.h index c2201b453..e88242698 100644 --- a/src/filesrch.h +++ b/src/filesrch.h @@ -54,6 +54,7 @@ typedef enum EXT_CFG, EXT_LOADSTART, EXT_WAD = EXT_LOADSTART, + EXT_PK3, EXT_SOC, EXT_LUA, // allowed even if not HAVE_BLUA so that we can yell on load attempt NUM_EXT, diff --git a/src/m_menu.c b/src/m_menu.c index 64255e71a..caf56fd8c 100644 --- a/src/m_menu.c +++ b/src/m_menu.c @@ -64,6 +64,9 @@ // And just some randomness for the exits. #include "m_random.h" +// P_GetSkinSprite2 +#include "r_things.h" + #ifdef PC_DOS #include // for snprintf int snprintf(char *str, size_t n, const char *fmt, ...); @@ -4758,6 +4761,7 @@ static void M_Addons(INT32 choice) addonsp[EXT_TXT] = W_CachePatchName("M_FTXT", PU_STATIC); addonsp[EXT_CFG] = W_CachePatchName("M_FCFG", PU_STATIC); addonsp[EXT_WAD] = W_CachePatchName("M_FWAD", PU_STATIC); + addonsp[EXT_PK3] = W_CachePatchName("M_FPK3", PU_STATIC); addonsp[EXT_SOC] = W_CachePatchName("M_FSOC", PU_STATIC); addonsp[EXT_LUA] = W_CachePatchName("M_FLUA", PU_STATIC); addonsp[NUM_EXT] = W_CachePatchName("M_FUNKN", PU_STATIC); @@ -5165,6 +5169,7 @@ static void M_HandleAddons(INT32 choice) // else intentional fallthrough case EXT_SOC: case EXT_WAD: + case EXT_PK3: COM_BufAddText(va("addfile %s%s", menupath, dirmenu[dir_on[menudepthleft]]+DIR_STRING)); addonsresponselimit = 5; break; From a3cfa8dd5c22d9e3ca3a7ec7f71ebc4436129079 Mon Sep 17 00:00:00 2001 From: wolfy852 Date: Sat, 7 Oct 2017 14:52:27 -0500 Subject: [PATCH 068/111] Fixes from toaster, plus some other stuff --- src/w_wad.c | 10 +++++----- src/w_wad.h | 10 ++++++++-- 2 files changed, 13 insertions(+), 7 deletions(-) diff --git a/src/w_wad.c b/src/w_wad.c index cf7034958..3c0c2eb4f 100644 --- a/src/w_wad.c +++ b/src/w_wad.c @@ -553,7 +553,7 @@ UINT16 W_InitFile(const char *filename) switch(eCompression) { case 0: - lump_p->compression = CM_NONE; + lump_p->compression = CM_NOCOMPRESSION; break; case 8: lump_p->compression = CM_DEFLATE; @@ -584,7 +584,7 @@ UINT16 W_InitFile(const char *filename) lumpinfo[numlumps].position = 0; lumpinfo[numlumps].size = 0; lumpinfo[numlumps].disksize = 0; - lumpinfo[numlumps].compression = CM_NONE; + lumpinfo[numlumps].compression = CM_NOCOMPRESSION; numlumps++;*/ break; } @@ -670,7 +670,7 @@ UINT16 W_InitFile(const char *filename) else { lump_p->size -= 4; - lump_p->compression = CM_NONE; + lump_p->compression = CM_NOCOMPRESSION; } lump_p->position += 4; @@ -678,7 +678,7 @@ UINT16 W_InitFile(const char *filename) } else { - lump_p->compression = CM_NONE; + lump_p->compression = CM_NOCOMPRESSION; } memset(lump_p->name, 0x00, 9); strncpy(lump_p->name, fileinfo->name, 8); @@ -1092,7 +1092,7 @@ size_t W_ReadLumpHeaderPwad(UINT16 wad, UINT16 lump, void *dest, size_t size, si // But let's not copy it yet. We support different compression formats on lumps, so we need to take that into account. switch(wadfiles[wad]->lumpinfo[lump].compression) { - case CM_NONE: // If it's uncompressed, we directly write the data into our destination, and return the bytes read. + case CM_NOCOMPRESSION: // If it's uncompressed, we directly write the data into our destination, and return the bytes read. return fread(dest, 1, size, handle); case CM_LZF: // Is it LZF compressed? Used by ZWADs. { diff --git a/src/w_wad.h b/src/w_wad.h index 1c81f2587..429c12c41 100644 --- a/src/w_wad.h +++ b/src/w_wad.h @@ -43,7 +43,13 @@ typedef struct } ATTRPACK filelump_t; // Available compression methods for lumps. -enum compmethod{CM_NONE, CM_DEFLATE, CM_LZF, CM_UNSUPPORTED}; +typedef enum +{ + CM_NOCOMPRESSION, + CM_DEFLATE, + CM_LZF, + CM_UNSUPPORTED +} compmethod; // a memory entry of the wad directory typedef struct @@ -54,7 +60,7 @@ typedef struct char *name2; // Used by PK3s. Dynamically allocated name. size_t size; // real (uncompressed) size INT32 compressed; // i - enum compmethod compression; // lump compression method + compmethod compression; // lump compression method } lumpinfo_t; // ========================================================================= From 38c109ddd218aac29c0514f44ebfc7988b96c783 Mon Sep 17 00:00:00 2001 From: Monster Iestyn Date: Sat, 7 Oct 2017 21:31:24 +0100 Subject: [PATCH 069/111] filtered out the FILTERS makefile option --- src/Makefile | 19 ------------------- 1 file changed, 19 deletions(-) diff --git a/src/Makefile b/src/Makefile index 99079a370..5368f8e6f 100644 --- a/src/Makefile +++ b/src/Makefile @@ -760,25 +760,6 @@ $(OBJDIR)/s_openal.o: hardware/s_openal/s_openal.c hardware/hw3dsdrv.h \ hardware/hw_dll.h $(CC) $(M5) -Os -o $(OBJDIR)/s_openal.o -DHW3SOUND -DUNIXCOMMON -shared -nostartfiles -c hardware/s_openal/s_openal.c endif - -ifdef FILTERS -$(OBJDIR)/%.o: $(INTERFACE)/filter/%.c - @echo $< needs deps - $(CC) $(CFLAGS) $(WFLAGS) -c $< -o $@ - -$(OBJDIR)/filters.o: $(INTERFACE)/filter/filters.c $(INTERFACE)/filter/filters.c \ - $(INTERFACE)/filter/filters.h - $(CC) $(CFLAGS) $(WFLAGS) -c $< -o $@ - -$(OBJDIR)/hq2x.o: $(INTERFACE)/filter/hq2x.c $(INTERFACE)/filter/hq2x.c \ - $(INTERFACE)/filter/filters.h - $(CC) $(CFLAGS) $(WFLAGS) -c $< -o $@ - -$(OBJDIR)/lq2x.o: $(INTERFACE)/filter/lq2x.c $(INTERFACE)/filter/lq2x.c \ - $(INTERFACE)/filter/filters.h $(INTERFACE)/filter/interp.h \ - $(INTERFACE)/filter/hq2x.h $(INTERFACE)/filter/lq2x.h - $(CC) $(CFLAGS) $(WFLAGS) -c $< -o $@ -endif endif ############################################################# From b298c7a541f18a4c13c7e707b60d6cab6ebb53fe Mon Sep 17 00:00:00 2001 From: wolfy852 Date: Sat, 7 Oct 2017 17:18:25 -0500 Subject: [PATCH 070/111] Fix p_spec.c and r_things.h, get the compiler to shut up This compiles with no errors or warnings, but hasn't been tested yet. Please review/test when you can. --- src/p_setup.c | 7 +- src/p_setup.h | 2 + src/p_spec.c | 174 ++++++------------------------------------------- src/r_data.c | 22 +++---- src/r_things.c | 12 ++-- src/r_things.h | 14 ++-- src/w_wad.c | 23 +++++-- src/w_wad.h | 5 +- 8 files changed, 67 insertions(+), 192 deletions(-) diff --git a/src/p_setup.c b/src/p_setup.c index 753c4f6e0..ff263c052 100644 --- a/src/p_setup.c +++ b/src/p_setup.c @@ -2796,7 +2796,8 @@ boolean P_SetupLevel(boolean skipprecip) { // Remember that we're assuming that the WAD will have a specific set of lumps in a specific order. UINT8 *wadData = W_CacheLumpNum(lastloadedmaplumpnum, PU_STATIC); - filelump_t *fileinfo = wadData + ((wadinfo_t *)wadData)->infotableofs; + //filelump_t *fileinfo = wadData + ((wadinfo_t *)wadData)->infotableofs; + filelump_t *fileinfo = (filelump_t *)(wadData + ((wadinfo_t *)wadData)->infotableofs); P_LoadRawVertexes(wadData + (fileinfo + ML_VERTEXES)->filepos, (fileinfo + ML_VERTEXES)->size); P_LoadRawSectors(wadData + (fileinfo + ML_SECTORS)->filepos, (fileinfo + ML_SECTORS)->size); @@ -3233,7 +3234,7 @@ boolean P_AddWadFile(const char *wadfilename, char **firstmapname) // UINT16 socPos, socNum = 0; UINT16 sfxPos, sfxNum = 0; UINT16 musPos, musNum = 0; - UINT16 sprPos, sprNum = 0; +// UINT16 sprPos, sprNum = 0; UINT16 texPos, texNum = 0; // UINT16 patPos, patNum = 0; // UINT16 flaPos, flaNum = 0; @@ -3254,7 +3255,7 @@ boolean P_AddWadFile(const char *wadfilename, char **firstmapname) case RET_PK3: { // Auxiliary function - input a folder name and gives us the resource markers positions. - void FindFolder(char *folName, UINT16 *start, UINT16 *end) + void FindFolder(const char *folName, UINT16 *start, UINT16 *end) { if (!stricmp(lumpinfo->name2, folName)) { diff --git a/src/p_setup.h b/src/p_setup.h index 3443ffdb7..de763bed0 100644 --- a/src/p_setup.h +++ b/src/p_setup.h @@ -61,6 +61,8 @@ void P_LoadThingsOnly(void); boolean P_SetupLevel(boolean skipprecip); boolean P_AddWadFile(const char *wadfilename, char **firstmapname); boolean P_RunSOC(const char *socfilename); +void P_LoadSoundsRange(UINT16 wadnum, UINT16 first, UINT16 num); +void P_LoadMusicsRange(UINT16 wadnum, UINT16 first, UINT16 num); void P_WriteThings(lumpnum_t lump); size_t P_PrecacheLevelFlats(void); void P_AllocMapHeader(INT16 i); diff --git a/src/p_spec.c b/src/p_spec.c index 97990eb26..2d17330d4 100644 --- a/src/p_spec.c +++ b/src/p_spec.c @@ -74,7 +74,7 @@ typedef struct #endif /** Animated texture definition. - * Used for ::harddefs and for loading an ANIMATED lump from a wad. + * Used for loading an ANIMDEFS lump from a wad. * * Animations are defined by the first and last frame (i.e., flat or texture). * The animation sequence uses all flats between the start and end entry, in @@ -121,104 +121,6 @@ static anim_t *lastanim; static anim_t *anims = NULL; /// \todo free leak static size_t maxanims; -// -// P_InitPicAnims -// -/** Hardcoded animation sequences. - * Used if no ANIMATED lump is found in a loaded wad. - */ -static animdef_t harddefs[] = -{ - // flat animations. - {false, "LITEY3", "LITEY1", 4}, - {false, "FWATER16", "FWATER1", 4}, - {false, "BWATER16", "BWATER01", 4}, - {false, "LWATER16", "LWATER1", 4}, - {false, "WATER7", "WATER0", 4}, - {false, "LAVA4", "LAVA1", 8}, - {false, "DLAVA4", "DLAVA1", 8}, - {false, "RLAVA8", "RLAVA1", 8}, - {false, "LITER3", "LITER1", 8}, - {false, "SURF08", "SURF01", 4}, - - {false, "CHEMG16", "CHEMG01", 4}, // THZ Chemical gunk - {false, "GOOP16", "GOOP01", 4}, // Green chemical gunk - {false, "OIL16", "OIL01", 4}, // Oil - {false, "THZBOXF4", "THZBOXF1", 2}, // Moved up with the flats - {false, "ALTBOXF4", "ALTBOXF1", 2}, - - {false, "LITEB3", "LITEB1", 4}, - {false, "LITEN3", "LITEN1", 4}, - {false, "ACZRFL1H", "ACZRFL1A", 4}, - {false, "ACZRFL2H", "ACZRFL2A", 4}, - {false, "EGRIDF3", "EGRIDF1", 4}, - {false, "ERZFAN4", "ERZFAN1", 1}, - {false, "ERZFANR4", "ERZFANR1", 1}, - {false, "DISCO4", "DISCO1", 15}, - - // animated textures - {true, "GFALL4", "GFALL1", 2}, // Short waterfall - {true, "CFALL4", "CFALL1", 2}, // Long waterfall - {true, "TFALL4", "TFALL1", 2}, // THZ Chemical fall - {true, "AFALL4", "AFALL1", 2}, // Green Chemical fall - {true, "QFALL4", "QFALL1", 2}, // Quicksand fall - {true, "Q2FALL4", "Q2FALL1", 2}, - {true, "Q3FALL4", "Q3FALL1", 2}, - {true, "Q4FALL4", "Q4FALL1", 2}, - {true, "Q5FALL4", "Q5FALL1", 2}, - {true, "Q6FALL4", "Q6FALL1", 2}, - {true, "Q7FALL4", "Q7FALL1", 2}, - {true, "LFALL4", "LFALL1", 2}, - {true, "MFALL4", "MFALL1", 2}, - {true, "OFALL4", "OFALL1", 2}, - {true, "DLAVA4", "DLAVA1", 8}, - {true, "ERZLASA2", "ERZLASA1", 1}, - {true, "ERZLASB4", "ERZLASB1", 1}, - {true, "ERZLASC4", "ERZLASC1", 1}, - {true, "THZBOX04", "THZBOX01", 2}, - {true, "ALTBOX04", "ALTBOX01", 2}, - {true, "SFALL4", "SFALL1", 4}, // Lava fall - {true, "RVZFALL8", "RVZFALL1", 4}, - {true, "BFALL4", "BFALL1", 2}, // HPZ waterfall - {true, "GREYW3", "GREYW1", 4}, - {true, "BLUEW3", "BLUEW1", 4}, - {true, "COMP6", "COMP4", 4}, - {true, "RED3", "RED1", 4}, - {true, "YEL3", "YEL1", 4}, - {true, "ACWRFL1D", "ACWRFL1A", 1}, - {true, "ACWRFL2D", "ACWRFL2A", 1}, - {true, "ACWRFL3D", "ACWRFL3A", 1}, - {true, "ACWRFL4D", "ACWRFL4A", 1}, - {true, "ACWRP1D", "ACWRP1A", 1}, - {true, "ACWRP2D", "ACWRP2A", 1}, - {true, "ACZRP1D", "ACZRP1A", 1}, - {true, "ACZRP2D", "ACZRP2A", 1}, - {true, "OILFALL4", "OILFALL1", 2}, - {true, "SOLFALL4", "SOLFALL1", 2}, - {true, "DOWN1C", "DOWN1A", 4}, - {true, "DOWN2C", "DOWN2A", 4}, - {true, "DOWN3D", "DOWN3A", 4}, - {true, "DOWN4C", "DOWN4A", 4}, - {true, "DOWN5C", "DOWN5A", 4}, - {true, "UP1C", "UP1A", 4}, - {true, "UP2C", "UP2A", 4}, - {true, "UP3D", "UP3A", 4}, - {true, "UP4C", "UP4A", 4}, - {true, "UP5C", "UP5A", 4}, - {true, "EGRID3", "EGRID1", 4}, - {true, "ERFANW4", "ERFANW1", 1}, - {true, "ERFANX4", "ERFANX1", 1}, - {true, "DISCOD4", "DISCOD1", 15}, - {true, "DANCE4", "DANCE1", 8}, - {true, "SKY135", "SKY132", 2}, - {true, "APPLMS4", "APPLMS1", 2}, - {true, "APBOXW3", "APBOXW1", 2}, - {true, "ERZLAZC4", "ERZLAZC1", 4}, - - // End of line - { -1, "", "", 0}, -}; - // Animating line specials // Init animated textures @@ -232,7 +134,7 @@ void P_ParseAnimationDefintion(SINT8 istexture); /** Sets up texture and flat animations. * - * Converts an ::animdef_t array loaded from ::harddefs or a lump into + * Converts an ::animdef_t array loaded from a lump into * ::anim_t format. * * Issues an error if any animation cycles are invalid. @@ -244,73 +146,41 @@ void P_InitPicAnims(void) { // Init animation INT32 w; // WAD - UINT8 *animatedLump; - UINT8 *currentPos; size_t i; I_Assert(animdefs == NULL); + + maxanims = 0; - if (W_CheckNumForName("ANIMATED") != LUMPERROR || W_CheckNumForName("ANIMDEFS") != LUMPERROR) + if (W_CheckNumForName("ANIMDEFS") != LUMPERROR) { - for (w = numwadfiles-1, maxanims = 0; w >= 0; w--) + for (w = numwadfiles-1; w >= 0; w--) { - UINT16 animatedLumpNum; UINT16 animdefsLumpNum; - // Find ANIMATED lump in the WAD - animatedLumpNum = W_CheckNumForNamePwad("ANIMATED", w, 0); - if (animatedLumpNum != INT16_MAX) - { - animatedLump = (UINT8 *)W_CacheLumpNumPwad(w, animatedLumpNum, PU_STATIC); - - // Get the number of animations in the file - i = maxanims; - for (currentPos = animatedLump; *currentPos != UINT8_MAX; maxanims++, currentPos+=23); - - // Resize animdefs (or if it hasn't been created, create it) - animdefs = (animdef_t *)Z_Realloc(animdefs, sizeof(animdef_t)*(maxanims + 1), PU_STATIC, NULL); - // Sanity check it - if (!animdefs) - I_Error("Not enough free memory for ANIMATED data"); - - // Populate the new array - for (currentPos = animatedLump; *currentPos != UINT8_MAX; i++, currentPos+=23) - { - M_Memcpy(&(animdefs[i].istexture), currentPos, 1); // istexture, 1 byte - M_Memcpy(animdefs[i].endname, (currentPos + 1), 9); // endname, 9 bytes - M_Memcpy(animdefs[i].startname, (currentPos + 10), 9); // startname, 9 bytes - M_Memcpy(&(animdefs[i].speed), (currentPos + 19), 4); // speed, 4 bytes - } - - Z_Free(animatedLump); - } - - // Now find ANIMDEFS - if (wadfiles[w]->type == RET_WAD) - animdefsLumpNum = W_CheckNumForNamePwad("ANIMDEFS", w, 0); - else if (wadfiles[w]->type == RET_PK3) + // Find ANIMDEFS lump in the WAD + if (wadfiles[w]->type == RET_PK3) animdefsLumpNum = W_CheckNumForFullNamePK3("ANIMDEFS", w, 0); + else + animdefsLumpNum = W_CheckNumForNamePwad("ANIMDEFS", w, 0); + if (animdefsLumpNum != INT16_MAX) P_ParseANIMDEFSLump(w, animdefsLumpNum); } - // Define the last one - animdefs[maxanims].istexture = -1; - strncpy(animdefs[maxanims].endname, "", 9); - strncpy(animdefs[maxanims].startname, "", 9); - animdefs[maxanims].speed = 0; - } - else - { - animdefs = harddefs; - for (maxanims = 0; animdefs[maxanims].istexture != -1; maxanims++); } + + // Define the last one + animdefs[maxanims].istexture = -1; + strncpy(animdefs[maxanims].endname, "", 9); + strncpy(animdefs[maxanims].startname, "", 9); + animdefs[maxanims].speed = 0; if (anims) free(anims); anims = (anim_t *)malloc(sizeof (*anims)*(maxanims + 1)); if (!anims) - I_Error("Not enough free memory for ANIMATED data"); + I_Error("Not enough free memory for ANIMDEFS data"); lastanim = anims; for (i = 0; animdefs[i].istexture != -1; i++) @@ -342,10 +212,7 @@ void P_InitPicAnims(void) animdefs[i].startname, animdefs[i].endname); } - if (animdefs == harddefs) - lastanim->speed = animdefs[i].speed; - else - lastanim->speed = LONG(animdefs[i].speed); + lastanim->speed = LONG(animdefs[i].speed); lastanim++; } lastanim->istexture = -1; @@ -353,8 +220,7 @@ void P_InitPicAnims(void) // Clear animdefs now that we're done with it. // We'll only be using anims from now on. - if (animdefs != harddefs) - Z_Free(animdefs); + Z_Free(animdefs); animdefs = NULL; } diff --git a/src/r_data.c b/src/r_data.c index e3933a950..e224457bb 100644 --- a/src/r_data.c +++ b/src/r_data.c @@ -1198,8 +1198,17 @@ lumpnum_t R_GetFlatNumForName(const char *name) // Scan wad files backwards so patched flats take preference. for (i = numwadfiles - 1; i >= 0; i--) { - // WAD type? use markers. - if (wadfiles[i]->type == RET_WAD) + + if (wadfiles[i]->type == RET_PK3) + { + start = W_CheckNumForFolderStartPK3("Flats/", i, 0); + if (start == INT16_MAX) + continue; + end = W_CheckNumForFolderEndPK3("Flats/", i, start); + if (end == INT16_MAX) + continue; + } + else // WAD type? use markers. { // Find the ranges to work with. start = W_CheckNumForNamePwad("F_START", (UINT16)i, 0); @@ -1222,15 +1231,6 @@ lumpnum_t R_GetFlatNumForName(const char *name) continue; } } - else if (wadfiles[i]->type == RET_PK3) - { - start = W_CheckNumForFolderStartPK3("Flats/", i, 0); - if (start == INT16_MAX) - continue; - end = W_CheckNumForFolderEndPK3("Flats/", i, start); - if (end == INT16_MAX) - continue; - } // Now find lump with specified name in that range. lump = W_CheckNumForNamePwad(name, (UINT16)i, start); if (lump < end) diff --git a/src/r_things.c b/src/r_things.c index ab896f8e8..06ae16fb1 100644 --- a/src/r_things.c +++ b/src/r_things.c @@ -380,7 +380,9 @@ void R_AddSpriteDefs(UINT16 wadnum) char wadname[MAX_WADPATH]; // Find the sprites section in this resource file. - if (wadfiles[wadnum]->type == RET_WAD) + if (wadfiles[wadnum]->type == RET_PK3) + start = W_CheckNumForFolderStartPK3("Sprites/", wadnum, 0); + else { start = W_CheckNumForNamePwad("S_START", wadnum, 0); if (start == UINT16_MAX) @@ -390,21 +392,19 @@ void R_AddSpriteDefs(UINT16 wadnum) else start++; // just after S_START } - else if (wadfiles[wadnum]->type == RET_PK3) - start = W_CheckNumForFolderStartPK3("Sprites/", wadnum, 0); // ignore skin wads (we don't want skin sprites interfering with vanilla sprites) if (start == 0 && W_CheckNumForNamePwad("S_SKIN", wadnum, 0) != UINT16_MAX) return; - if (wadfiles[wadnum]->type == RET_WAD) + if (wadfiles[wadnum]->type == RET_PK3) + end = W_CheckNumForFolderEndPK3("Sprites/", wadnum, start); + else { end = W_CheckNumForNamePwad("S_END",wadnum,start); if (end == UINT16_MAX) end = W_CheckNumForNamePwad("SS_END",wadnum,start); //deutex compatib. } - else if (wadfiles[wadnum]->type == RET_PK3) - end = W_CheckNumForFolderEndPK3("Sprites/", wadnum, start); if (end == UINT16_MAX) { diff --git a/src/r_things.h b/src/r_things.h index 3b7d6ba3f..18cc701ab 100644 --- a/src/r_things.h +++ b/src/r_things.h @@ -51,11 +51,6 @@ void R_SortVisSprites(void); // (only sprites from namelist are added or replaced) void R_AddSpriteDefs(UINT16 wadnum); - -#ifdef DELFILE -void R_DelSpriteDefs(UINT16 wadnum); -#endif - //SoM: 6/5/2000: Light sprites correctly! void R_AddSprites(sector_t *sec, INT32 lightlevel); void R_InitSprites(void); @@ -217,11 +212,10 @@ void SetPlayerSkinByNum(INT32 playernum,INT32 skinnum); // Tails 03-16-2002 boolean R_SkinUsable(INT32 playernum, INT32 skinnum); UINT32 R_GetSkinAvailabilities(void); INT32 R_SkinAvailable(const char *name); +void R_PatchSkins(UINT16 wadnum); void R_AddSkins(UINT16 wadnum); -#ifdef DELFILE -void R_DelSkins(UINT16 wadnum); -#endif +UINT8 P_GetSkinSprite2(skin_t *skin, UINT8 spr2, player_t *player); void R_InitDrawNodes(void); @@ -236,7 +230,7 @@ char *GetPlayerFacePic(INT32 skinnum); // Future: [[ ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyz!@ ]] FUNCMATH FUNCINLINE static ATTRINLINE char R_Frame2Char(UINT8 frame) { -#if 0 // 2.1 compat +#if 1 // 2.1 compat return 'A' + frame; #else if (frame < 26) return 'A' + frame; @@ -250,7 +244,7 @@ FUNCMATH FUNCINLINE static ATTRINLINE char R_Frame2Char(UINT8 frame) FUNCMATH FUNCINLINE static ATTRINLINE UINT8 R_Char2Frame(char cn) { -#if 0 // 2.1 compat +#if 1 // 2.1 compat return cn - 'A'; #else if (cn >= 'A' && cn <= 'Z') return cn - 'A'; diff --git a/src/w_wad.c b/src/w_wad.c index 3c0c2eb4f..b4372ec15 100644 --- a/src/w_wad.c +++ b/src/w_wad.c @@ -25,6 +25,19 @@ #endif #include "lzf.h" #endif + +#ifndef _FILE_OFFSET_BITS +#define _FILE_OFFSET_BITS 0 +#endif + +#ifndef _LARGEFILE64_SOURCE +#define _LARGEFILE64_SOURCE +#endif + +#ifndef _LFS64_LARGEFILE +#define _LFS64_LARGEFILE +#endif + //#ifdef HAVE_ZLIB #include "zlib.h" //#endif // HAVE_ZLIB @@ -181,14 +194,14 @@ static inline void W_LoadDehackedLumpsPK3(UINT16 wadnum) if (posStart != INT16_MAX) { posEnd = W_CheckNumForFolderEndPK3("Lua/", wadnum, posStart); - for (posStart; posStart < posEnd; posStart++) + for (; posStart < posEnd; posStart++) LUA_LoadLump(wadnum, posStart); } posStart = W_CheckNumForFolderStartPK3("SOCs/", wadnum, 0); if (posStart != INT16_MAX) { posEnd = W_CheckNumForFolderEndPK3("SOCs/", wadnum, posStart); - for(posStart; posStart < posEnd; posStart++) + for(; posStart < posEnd; posStart++) DEH_LoadDehackedLumpPwad(wadnum, posStart); } } @@ -604,12 +617,12 @@ UINT16 W_InitFile(const char *filename) // assume wad file else { - type = RET_WAD; - wadinfo_t header; lumpinfo_t *lump_p; filelump_t *fileinfo; void *fileinfov; + + type = RET_WAD; // read the header if (fread(&header, 1, sizeof header, handle) < sizeof header) @@ -925,7 +938,7 @@ lumpnum_t W_CheckNumForMap(const char *name) { UINT16 lumpNum, end; UINT32 i; - for (i = numwadfiles - 1; i >= 0; i--) + for (i = numwadfiles - 1; i < numwadfiles; i--) { if (wadfiles[i]->type == RET_WAD) { diff --git a/src/w_wad.h b/src/w_wad.h index 429c12c41..14bf4d85f 100644 --- a/src/w_wad.h +++ b/src/w_wad.h @@ -110,9 +110,6 @@ void W_Shutdown(void); FILE *W_OpenWadFile(const char **filename, boolean useerrors); // Load and add a wadfile to the active wad files, returns numbers of lumps, INT16_MAX on error UINT16 W_InitFile(const char *filename); -#ifdef DELFILE -void W_UnloadWadFile(UINT16 num); -#endif // W_InitMultipleFiles returns 1 if all is okay, 0 otherwise, // so that it stops with a message if a file was not found, but not if all is okay. @@ -136,6 +133,8 @@ UINT8 W_LumpExists(const char *name); // Lua uses this. size_t W_LumpLengthPwad(UINT16 wad, UINT16 lump); size_t W_LumpLength(lumpnum_t lumpnum); +void zerr(int ret); // zlib error checking + size_t W_ReadLumpHeaderPwad(UINT16 wad, UINT16 lump, void *dest, size_t size, size_t offset); size_t W_ReadLumpHeader(lumpnum_t lump, void *dest, size_t size, size_t offest); // read all or a part of a lump void W_ReadLumpPwad(UINT16 wad, UINT16 lump, void *dest); From 021417500e179bda49e08b9a686c45b232958eb0 Mon Sep 17 00:00:00 2001 From: Alam Ed Arias Date: Sat, 7 Oct 2017 19:08:29 -0400 Subject: [PATCH 071/111] Do not use Win32's TRUE/FALSE is OS independent code --- src/w_wad.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/w_wad.c b/src/w_wad.c index b4372ec15..4b0eb1918 100644 --- a/src/w_wad.c +++ b/src/w_wad.c @@ -439,7 +439,7 @@ UINT16 W_InitFile(const char *filename) char *s; int c; UINT32 position; - boolean matched = FALSE; + boolean matched = false; lumpinfo_t *lump_p; type = RET_PK3; @@ -463,7 +463,7 @@ UINT16 W_InitFile(const char *filename) s++; if (*s == 0x00) // The array pointer has reached the key char which marks the end. It means we have matched the signature. { - matched = TRUE; + matched = true; CONS_Debug(DBG_SETUP, "Found PK3 central directory at position %ld.\n", ftell(handle)); break; } @@ -471,7 +471,7 @@ UINT16 W_InitFile(const char *filename) } // Error if we couldn't find the central directory at all. It likely means this is not a ZIP/PK3 file. - if (matched == FALSE) + if (matched == false) { CONS_Alert(CONS_ERROR, "No central directory inside PK3! File may be corrupted or incomplete.\n"); return INT16_MAX; From 79879bbd7b323657d8ea5ef3a5ff1bd42feee72d Mon Sep 17 00:00:00 2001 From: Alam Ed Arias Date: Sat, 7 Oct 2017 19:10:29 -0400 Subject: [PATCH 072/111] Need to handle that FindFolder() does not fill musPos --- src/p_setup.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/p_setup.c b/src/p_setup.c index ff263c052..35a64ded8 100644 --- a/src/p_setup.c +++ b/src/p_setup.c @@ -3233,7 +3233,7 @@ boolean P_AddWadFile(const char *wadfilename, char **firstmapname) // UINT16 luaPos, luaNum = 0; // UINT16 socPos, socNum = 0; UINT16 sfxPos, sfxNum = 0; - UINT16 musPos, musNum = 0; + UINT16 musPos = 0, musNum = 0; // UINT16 sprPos, sprNum = 0; UINT16 texPos, texNum = 0; // UINT16 patPos, patNum = 0; From ec9d47cb34810483c6fa155b181b038b50a63b26 Mon Sep 17 00:00:00 2001 From: Wolfy Date: Mon, 9 Oct 2017 14:24:04 -0500 Subject: [PATCH 073/111] Use the new sprite system --- src/r_things.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/r_things.h b/src/r_things.h index 18cc701ab..65b7775e5 100644 --- a/src/r_things.h +++ b/src/r_things.h @@ -230,7 +230,7 @@ char *GetPlayerFacePic(INT32 skinnum); // Future: [[ ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyz!@ ]] FUNCMATH FUNCINLINE static ATTRINLINE char R_Frame2Char(UINT8 frame) { -#if 1 // 2.1 compat +#if 0 // 2.1 compat return 'A' + frame; #else if (frame < 26) return 'A' + frame; @@ -244,7 +244,7 @@ FUNCMATH FUNCINLINE static ATTRINLINE char R_Frame2Char(UINT8 frame) FUNCMATH FUNCINLINE static ATTRINLINE UINT8 R_Char2Frame(char cn) { -#if 1 // 2.1 compat +#if 0 // 2.1 compat return cn - 'A'; #else if (cn >= 'A' && cn <= 'Z') return cn - 'A'; From 2fff5e9f6d2bbbbc7feeeabaaa102245b94692dc Mon Sep 17 00:00:00 2001 From: Wolfy Date: Tue, 10 Oct 2017 01:41:28 -0500 Subject: [PATCH 074/111] Fix empty WAD files printing the wrong sprite count. --- src/r_things.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/r_things.c b/src/r_things.c index 06ae16fb1..62a235427 100644 --- a/src/r_things.c +++ b/src/r_things.c @@ -385,9 +385,9 @@ void R_AddSpriteDefs(UINT16 wadnum) else { start = W_CheckNumForNamePwad("S_START", wadnum, 0); - if (start == UINT16_MAX) + if (start == INT16_MAX) start = W_CheckNumForNamePwad("SS_START", wadnum, 0); //deutex compatib. - if (start == UINT16_MAX) + if (start == INT16_MAX) start = 0; //let say S_START is lump 0 else start++; // just after S_START @@ -402,11 +402,11 @@ void R_AddSpriteDefs(UINT16 wadnum) else { end = W_CheckNumForNamePwad("S_END",wadnum,start); - if (end == UINT16_MAX) + if (end == INT16_MAX) end = W_CheckNumForNamePwad("SS_END",wadnum,start); //deutex compatib. } - if (end == UINT16_MAX) + if (end == INT16_MAX) { CONS_Debug(DBG_SETUP, "no sprites in pwad %d\n", wadnum); return; From 7ebaa58997d3089c58fc1a023a2ddebe430e5563 Mon Sep 17 00:00:00 2001 From: Monster Iestyn Date: Wed, 11 Oct 2017 19:11:35 +0100 Subject: [PATCH 075/111] Removed makefile options that existed only for the removed ports --- src/Makefile | 4 ---- src/Makefile.cfg | 3 --- 2 files changed, 7 deletions(-) diff --git a/src/Makefile b/src/Makefile index 5368f8e6f..017bd2442 100644 --- a/src/Makefile +++ b/src/Makefile @@ -187,11 +187,7 @@ ifndef ECHO OBJDUMP:=@$(OBJDUMP) STRIP:=@$(STRIP) WINDRES:=@$(WINDRES) - CP:=@$(CP) MKDIR:=@$(MKDIR) - MKISOFS:=@$(MKISOFS) - DD:=@$(DD) - NDSTOOL:=@$(NDSTOOL) GZIP:=@$(GZIP) MSGFMT:=@$(MSGFMT) UPX:=@$(UPX) diff --git a/src/Makefile.cfg b/src/Makefile.cfg index c0dbd5022..a82cc3e57 100644 --- a/src/Makefile.cfg +++ b/src/Makefile.cfg @@ -240,10 +240,7 @@ else NASM?=nasm endif REMOVE?=rm -f -CP?=cp MKDIR?=mkdir -p -MKISOFS?=mkisofs -DD?=dd GZIP?=gzip GZIP_OPTS?=-9 -f -n GZIP_OPT2=$(GZIP_OPTS) --rsyncable From 8a676d8aa4623db2086b372dc13cbdf494816e7e Mon Sep 17 00:00:00 2001 From: TehRealSalt Date: Sat, 14 Oct 2017 16:11:08 -0400 Subject: [PATCH 076/111] Added movebob removed viewheight "movebob" lets you determine the strength of movement bobbing (does not affect landing delta, that's technically not movement bobbing :p), values range from 0.0 to 4.0. viewheight is now relative to player->height. --- src/m_cheat.c | 2 +- src/p_local.h | 4 +--- src/p_mobj.c | 10 +++++----- src/p_saveg.c | 2 +- src/p_user.c | 19 ++++++++++--------- src/r_main.c | 6 ++---- 6 files changed, 20 insertions(+), 23 deletions(-) diff --git a/src/m_cheat.c b/src/m_cheat.c index 3308f721c..5f45790a1 100644 --- a/src/m_cheat.c +++ b/src/m_cheat.c @@ -1129,7 +1129,7 @@ void OP_ObjectplaceMovement(player_t *player) // make sure viewz follows player if in 1st person mode player->deltaviewheight = 0; - player->viewheight = FixedMul(cv_viewheight.value << FRACBITS, player->mo->scale); + player->viewheight = FixedMul(41*player->height/48, player->mo->scale); if (player->mo->eflags & MFE_VERTICALFLIP) player->viewz = player->mo->z + player->mo->height - player->viewheight; else diff --git a/src/p_local.h b/src/p_local.h index 91ee0c496..59f9bee0a 100644 --- a/src/p_local.h +++ b/src/p_local.h @@ -25,8 +25,6 @@ #define FLOATSPEED (FRACUNIT*4) -#define VIEWHEIGHTS "41" - // Maximum player score. #define MAXSCORE 999999990 @@ -217,7 +215,7 @@ void P_RestoreMultiMusic(player_t *player); extern mapthing_t *itemrespawnque[ITEMQUESIZE]; extern tic_t itemrespawntime[ITEMQUESIZE]; extern size_t iquehead, iquetail; -extern consvar_t cv_gravity, cv_viewheight; +extern consvar_t cv_gravity, cv_movebob; void P_RespawnSpecials(void); diff --git a/src/p_mobj.c b/src/p_mobj.c index 10bdee2bc..4fe5be9c4 100644 --- a/src/p_mobj.c +++ b/src/p_mobj.c @@ -36,9 +36,9 @@ #endif #include "f_finale.h" -// protos. -static CV_PossibleValue_t viewheight_cons_t[] = {{16, "MIN"}, {56, "MAX"}, {0, NULL}}; -consvar_t cv_viewheight = {"viewheight", VIEWHEIGHTS, 0, viewheight_cons_t, NULL, 0, NULL, NULL, 0, 0, NULL}; +static CV_PossibleValue_t CV_BobSpeed[] = {{0, "MIN"}, {4*FRACUNIT, "MAX"}, {0, NULL}}; +consvar_t cv_movebob = {"movebob", "1.0", CV_FLOAT|CV_SAVE, CV_BobSpeed, NULL, 0, NULL, NULL, 0, 0, NULL}; + #ifdef WALLSPLATS consvar_t cv_splats = {"splats", "On", CV_SAVE, CV_OnOff, NULL, 0, NULL, NULL, 0, 0, NULL}; #endif @@ -2896,7 +2896,7 @@ static void P_PlayerZMovement(mobj_t *mo) mo->player->viewheight -= mo->floorz - mo->z; mo->player->deltaviewheight = - (FixedMul(cv_viewheight.value<scale) - mo->player->viewheight)>>3; + (FixedMul(41*mo->player->height/48, mo->scale) - mo->player->viewheight)>>3; } // adjust height @@ -9088,7 +9088,7 @@ void P_AfterPlayerSpawn(INT32 playernum) else if (playernum == secondarydisplayplayer) localangle2 = mobj->angle; - p->viewheight = cv_viewheight.value<viewheight = 41*p->height/48; if (p->mo->eflags & MFE_VERTICALFLIP) p->viewz = p->mo->z + p->mo->height - p->viewheight; diff --git a/src/p_saveg.c b/src/p_saveg.c index 8efe7027b..71bc93971 100644 --- a/src/p_saveg.c +++ b/src/p_saveg.c @@ -413,7 +413,7 @@ static void P_NetUnArchivePlayers(void) if (flags & AWAYVIEW) players[i].awayviewmobj = (mobj_t *)(size_t)READUINT32(save_p); - players[i].viewheight = cv_viewheight.value<bob = (FixedMul(player->rmomx,player->rmomx) - + FixedMul(player->rmomy,player->rmomy))>>2; + player->bob = FixedMul(cv_movebob.value, + (FixedMul(player->rmomx,player->rmomx) + + FixedMul(player->rmomy,player->rmomy))>>2); - if (player->bob > FixedMul(MAXBOB, mo->scale)) - player->bob = FixedMul(MAXBOB, mo->scale); + if (player->bob > FixedMul(cv_movebob.value, FixedMul(MAXBOB, mo->scale))) + player->bob = FixedMul(cv_movebob.value, FixedMul(MAXBOB, mo->scale)); if (!P_IsObjectOnGround(mo)) { @@ -215,7 +216,7 @@ void P_CalcHeight(player_t *player) bob = FixedMul(player->bob/2, FINESINE(angle)); // move viewheight - pviewheight = FixedMul(cv_viewheight.value << FRACBITS, mo->scale); // default eye view height + pviewheight = FixedMul(41*player->height/48, mo->scale); // default eye view height if (player->playerstate == PST_LIVE) { @@ -8606,9 +8607,9 @@ void P_ResetCamera(player_t *player, camera_t *thiscam) x = player->mo->x - P_ReturnThrustX(player->mo, thiscam->angle, player->mo->radius); y = player->mo->y - P_ReturnThrustY(player->mo, thiscam->angle, player->mo->radius); if (player->mo->eflags & MFE_VERTICALFLIP) - z = player->mo->z + player->mo->height - (cv_viewheight.value<mo->z + player->mo->height - (41*player->height/48) - 16*FRACUNIT; else - z = player->mo->z + (cv_viewheight.value<mo->z + (41*player->height/48); // set bits for the camera thiscam->x = x; @@ -8876,7 +8877,7 @@ boolean P_MoveChaseCamera(player_t *player, camera_t *thiscam, boolean resetcall } #endif // bad 2D camera code - pviewheight = FixedMul(cv_viewheight.value<scale); + pviewheight = FixedMul(41*player->height/48, mo->scale); if (mo->eflags & MFE_VERTICALFLIP) z = mo->z + mo->height - pviewheight - height; @@ -10427,7 +10428,7 @@ void P_PlayerAfterThink(player_t *player) { // defaults to make sure 1st person cam doesn't do anything weird on startup player->deltaviewheight = 0; - player->viewheight = FixedMul(cv_viewheight.value << FRACBITS, player->mo->scale); + player->viewheight = FixedMul(41*player->height/48, player->mo->scale); if (player->mo->eflags & MFE_VERTICALFLIP) player->viewz = player->mo->z + player->mo->height - player->viewheight; else diff --git a/src/r_main.c b/src/r_main.c index cabefed14..c5f64c1e9 100644 --- a/src/r_main.c +++ b/src/r_main.c @@ -1311,10 +1311,8 @@ void R_RegisterEngineStuff(void) CV_RegisterVar(&cv_translucenthud); CV_RegisterVar(&cv_maxportals); - - // Default viewheight is changeable, - // initialized to standard viewheight - CV_RegisterVar(&cv_viewheight); + + CV_RegisterVar(&cv_movebob); #ifdef HWRENDER // GL-specific Commands From 9f46f8413279f913b4495e6bb7d8a55177ae8c26 Mon Sep 17 00:00:00 2001 From: toasterbabe Date: Wed, 18 Oct 2017 21:02:43 +0100 Subject: [PATCH 077/111] Disable REDXVI cheat by default. --- src/m_cheat.c | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/src/m_cheat.c b/src/m_cheat.c index 0d6824125..dd5b20dfc 100644 --- a/src/m_cheat.c +++ b/src/m_cheat.c @@ -70,6 +70,7 @@ static UINT8 cheatf_ultimate(void) return 1; } +#ifdef REDXVI static UINT8 cheatf_warp(void) { if (modifiedgame) @@ -91,6 +92,7 @@ static UINT8 cheatf_warp(void) M_StartControlPanel(); return 1; } +#endif #ifdef DEVELOP static UINT8 cheatf_devmode(void) @@ -131,10 +133,7 @@ static cheatseq_t cheat_ultimate_joy = { SCRAMBLE(KEY_ENTER), 0xff } }; -#ifndef DEVELOP -Probably time to change these cheats? -#endif - +#ifdef REDXVI static cheatseq_t cheat_warp = { 0, cheatf_warp, { SCRAMBLE('r'), SCRAMBLE('e'), SCRAMBLE('d'), SCRAMBLE('x'), SCRAMBLE('v'), SCRAMBLE('i'), 0xff } @@ -147,6 +146,7 @@ static cheatseq_t cheat_warp_joy = { SCRAMBLE(KEY_LEFTARROW), SCRAMBLE(KEY_UPARROW), SCRAMBLE(KEY_ENTER), 0xff } }; +#endif #ifdef DEVELOP static cheatseq_t cheat_devmode = { @@ -239,8 +239,10 @@ boolean cht_Responder(event_t *ev) ret += cht_CheckCheat(&cheat_ultimate, (char)ch); ret += cht_CheckCheat(&cheat_ultimate_joy, (char)ch); +#ifdef REDXVI ret += cht_CheckCheat(&cheat_warp, (char)ch); ret += cht_CheckCheat(&cheat_warp_joy, (char)ch); +#endif #ifdef DEVELOP ret += cht_CheckCheat(&cheat_devmode, (char)ch); #endif From 49aa6ee339ba3a7bdd9e7c1240123786842295ba Mon Sep 17 00:00:00 2001 From: toasterbabe Date: Wed, 18 Oct 2017 22:18:43 +0100 Subject: [PATCH 078/111] Tweak to modifications to new level select. --- src/m_menu.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/m_menu.c b/src/m_menu.c index ab005894d..af93ee6d8 100644 --- a/src/m_menu.c +++ b/src/m_menu.c @@ -636,7 +636,7 @@ static const gtdesc_t gametypedesc[] = {{ 66, 66}, "Sling rings at your foes in a free-for-all battle. Use the special weapon rings to your advantage!"}, {{153, 37}, "Sling rings at your foes in a color-coded battle. Use the special weapon rings to your advantage!"}, {{123, 123}, "Whoever's IT has to hunt down everyone else. If you get caught, you have to turn on your former friends!"}, - {{135, 135}, "Try and find a good hiding place in these maps - we dare you."}, + {{150, 150}, "Try and find a good hiding place in these maps - we dare you."}, {{ 37, 153}, "Steal the flag from the enemy's base and bring it back to your own, but watch out - they could just as easily steal yours!"}, }; @@ -4438,7 +4438,7 @@ static void M_DrawLevelPlatterMenu(void) // draw cursor box if (levellistmode != LLM_CREATESERVER || lsrow) - V_DrawSmallScaledPatch(lsbasex + cursorx + lsoffs[1], lsbasey, 0, (levselp[sizeselect][((skullAnimCounter/4) ? 1 : 0)])); + V_DrawSmallScaledPatch(lsbasex + cursorx + lsoffs[1], lsbasey+lsoffs[0], 0, (levselp[sizeselect][((skullAnimCounter/4) ? 1 : 0)])); #if 0 if (levelselect.rows[lsrow].maplist[lscol] > 0) From 3a96c507a209be02f3b7bbc3488de256a9018996 Mon Sep 17 00:00:00 2001 From: toasterbabe Date: Sat, 21 Oct 2017 16:18:28 +0100 Subject: [PATCH 079/111] * Made PK3s fail the music lump check, because... that method of checking doesn't really work with it. * Improve the output of listwad to identify unimportant, non-networked files. https://cdn.discordapp.com/attachments/237467298590490625/371314970002063370/srb20044.png * Fixed mainwads being one too high due to the removal of rings.dta. --- src/d_main.c | 4 ++-- src/d_netcmd.c | 2 ++ src/w_wad.c | 8 ++++---- 3 files changed, 8 insertions(+), 6 deletions(-) diff --git a/src/d_main.c b/src/d_main.c index 2d89770db..5a86cc7a6 100644 --- a/src/d_main.c +++ b/src/d_main.c @@ -1135,14 +1135,14 @@ void D_SRB2Main(void) //W_VerifyFileMD5(1, ASSET_HASH_ZONES_DTA); // zones.dta //W_VerifyFileMD5(2, ASSET_HASH_PLAYER_DTA); // player.dta #ifdef USE_PATCH_DTA - W_VerifyFileMD5(4, ASSET_HASH_PATCH_DTA); // patch.dta + W_VerifyFileMD5(3, ASSET_HASH_PATCH_DTA); // patch.dta #endif // don't check music.dta because people like to modify it, and it doesn't matter if they do // ...except it does if they slip maps in there, and that's what W_VerifyNMUSlumps is for. #endif //ifndef DEVELOP - mainwads = 4; // there are 4 wads not to unload + mainwads = 3; // there are 3 wads not to unload #ifdef USE_PATCH_DTA ++mainwads; // patch.dta adds one more #endif diff --git a/src/d_netcmd.c b/src/d_netcmd.c index 1a80f4dc0..5cf83fa3e 100644 --- a/src/d_netcmd.c +++ b/src/d_netcmd.c @@ -3242,6 +3242,8 @@ static void Command_ListWADS_f(void) CONS_Printf("\x82 IWAD\x80: %s\n", tempname); else if (i <= mainwads) CONS_Printf("\x82 * %.2d\x80: %s\n", i, tempname); + else if (!wadfiles[i]->important) + CONS_Printf("\x86 %.2d: %s\n", i, tempname); else CONS_Printf(" %.2d: %s\n", i, tempname); } diff --git a/src/w_wad.c b/src/w_wad.c index f7261e5f0..c8701f98f 100644 --- a/src/w_wad.c +++ b/src/w_wad.c @@ -1481,12 +1481,12 @@ static int W_VerifyFile(const char *filename, lumpchecklist_t *checklist, if ((handle = W_OpenWadFile(&filename, false)) == NULL) return -1; - // detect dehacked file with the "soc" extension - if (stricmp(&filename[strlen(filename) - 4], ".soc") != 0 + // detect wad file by the absence of the other supported extensions + if (stricmp(&filename[strlen(filename) - 4], ".soc") #ifdef HAVE_BLUA - && stricmp(&filename[strlen(filename) - 4], ".lua") != 0 + && stricmp(&filename[strlen(filename) - 4], ".lua") #endif - ) + && stricmp(&filename[strlen(filename) - 4], ".pk3")) { // assume wad file wadinfo_t header; From d1e007ef8def2940c689a27e8b72d4f418f293ae Mon Sep 17 00:00:00 2001 From: toasterbabe Date: Tue, 24 Oct 2017 00:06:13 +0100 Subject: [PATCH 080/111] Change the little green light symbol on the save to indicate modifiedgame. --- src/m_menu.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/m_menu.c b/src/m_menu.c index af93ee6d8..a4a271d7e 100644 --- a/src/m_menu.c +++ b/src/m_menu.c @@ -5045,7 +5045,7 @@ static void M_DrawAddons(void) x = BASEVIDWIDTH - x - 16; V_DrawSmallScaledPatch(x, y + 4, (CANSAVE ? 0 : V_TRANSLUCENT), addonsp[NUM_EXT+5]); - if CANSAVE + if (modifiedgame) V_DrawSmallScaledPatch(x, y + 4, 0, addonsp[NUM_EXT+3]); #undef CANSAVE } From 0cc8fbdb4edcaba47191ec47327773ef76a251dc Mon Sep 17 00:00:00 2001 From: Monster Iestyn Date: Tue, 24 Oct 2017 20:45:55 +0100 Subject: [PATCH 081/111] Don't use interpolation code if the frame lasts instantaneously or infinitely Also removed the + 1 from newtime, since there was never really any need for it. It just offset the interpolation so it went like (1 -> 2] instead of [1 -> 2), so you never saw the base appearance for each frame except at the end of any frames interpolating to it Changed DrawMD2Ex's duration/tics type to INT32 so -1 comparisons work, probably want to change the signs elsewhere too but this is fine for now --- src/hardware/r_opengl/r_opengl.c | 25 ++++++++++++------------- 1 file changed, 12 insertions(+), 13 deletions(-) diff --git a/src/hardware/r_opengl/r_opengl.c b/src/hardware/r_opengl/r_opengl.c index e6ff83e89..e672da8dc 100644 --- a/src/hardware/r_opengl/r_opengl.c +++ b/src/hardware/r_opengl/r_opengl.c @@ -1819,15 +1819,14 @@ EXPORT void HWRAPI(SetSpecialState) (hwdspecialstate_t IdState, INT32 Value) } } -static void DrawMD2Ex(INT32 *gl_cmd_buffer, md2_frame_t *frame, UINT32 duration, UINT32 tics, md2_frame_t *nextframe, FTransform *pos, float scale, UINT8 flipped, UINT8 *color) +static void DrawMD2Ex(INT32 *gl_cmd_buffer, md2_frame_t *frame, INT32 duration, INT32 tics, md2_frame_t *nextframe, FTransform *pos, float scale, UINT8 flipped, UINT8 *color) { INT32 val, count, pindex; GLfloat s, t; GLfloat ambient[4]; GLfloat diffuse[4]; - float pol; - UINT32 newtime; + float pol = 0.0f; float scalex = scale, scaley = scale, scalez = scale; // Because Otherwise, scaling the screen negatively vertically breaks the lighting @@ -1835,18 +1834,18 @@ static void DrawMD2Ex(INT32 *gl_cmd_buffer, md2_frame_t *frame, UINT32 duration GLfloat LightPos[] = {0.0f, 1.0f, 0.0f, 0.0f}; #endif - if (duration == 0) - duration = 1; + if (duration != 0 && duration != -1 && tics != -1) // don't interpolate if instantaneous or infinite in length + { + UINT32 newtime = (duration - tics); // + 1; - newtime = (duration - tics) + 1; + pol = (newtime)/(float)duration; - pol = (newtime)/(float)duration; + if (pol > 1.0f) + pol = 1.0f; - if (pol > 1.0f) - pol = 1.0f; - - if (pol < 0.0f) - pol = 0.0f; + if (pol < 0.0f) + pol = 0.0f; + } if (color) { @@ -1940,7 +1939,7 @@ static void DrawMD2Ex(INT32 *gl_cmd_buffer, md2_frame_t *frame, UINT32 duration pglTexCoord2f(s, t); - if (!nextframe) + if (!nextframe || pol == 0.0f) { pglNormal3f(frame->vertices[pindex].normal[0], frame->vertices[pindex].normal[1], From 9ffb5c0fb0901a025b356caae2b2dbaaa14dc16c Mon Sep 17 00:00:00 2001 From: toasterbabe Date: Wed, 25 Oct 2017 11:54:21 +0100 Subject: [PATCH 082/111] Since Mystic complained, moved the right-aligned Rings to a special "Mania" HUD mode. --- src/d_netcmd.c | 3 +-- src/st_stuff.c | 4 ++-- 2 files changed, 3 insertions(+), 4 deletions(-) diff --git a/src/d_netcmd.c b/src/d_netcmd.c index d2439799f..828d4481b 100644 --- a/src/d_netcmd.c +++ b/src/d_netcmd.c @@ -195,8 +195,6 @@ static CV_PossibleValue_t matchboxes_cons_t[] = {{0, "Normal"}, {1, "Mystery"}, static CV_PossibleValue_t chances_cons_t[] = {{0, "MIN"}, {9, "MAX"}, {0, NULL}}; static CV_PossibleValue_t pause_cons_t[] = {{0, "Server"}, {1, "All"}, {0, NULL}}; -static CV_PossibleValue_t timetic_cons_t[] = {{0, "Normal"}, {1, "Tics"}, {2, "Centiseconds"}, {0, NULL}}; - #ifdef NETGAME_DEVMODE static consvar_t cv_fishcake = {"fishcake", "Off", CV_CALL|CV_NOSHOWHELP|CV_RESTRICT, CV_OnOff, Fishcake_OnChange, 0, NULL, NULL, 0, 0, NULL}; #endif @@ -307,6 +305,7 @@ consvar_t cv_overtime = {"overtime", "Yes", CV_NETVAR, CV_YesNo, NULL, 0, NULL, consvar_t cv_rollingdemos = {"rollingdemos", "On", CV_SAVE, CV_OnOff, NULL, 0, NULL, NULL, 0, 0, NULL}; +static CV_PossibleValue_t timetic_cons_t[] = {{0, "Normal"}, {1, "Tics"}, {2, "Centiseconds"}, {3, "Mania"}, {0, NULL}}; consvar_t cv_timetic = {"timerres", "Normal", CV_SAVE, timetic_cons_t, NULL, 0, NULL, NULL, 0, 0, NULL}; // use tics in display consvar_t cv_resetmusic = {"resetmusic", "No", CV_SAVE, CV_YesNo, NULL, 0, NULL, NULL, 0, 0, NULL}; diff --git a/src/st_stuff.c b/src/st_stuff.c index b29b86aa0..92f75e463 100644 --- a/src/st_stuff.c +++ b/src/st_stuff.c @@ -654,7 +654,7 @@ static void ST_drawTime(void) ST_DrawPatchFromHudWS(HUD_TIMECOLON, sbocolon, V_HUDTRANS); // Colon ST_DrawPadNumFromHudWS(HUD_SECONDS, seconds, 2, V_HUDTRANS); // Seconds - if (!splitscreen && (cv_timetic.value == 2 || modeattacking)) // there's not enough room for tics in splitscreen, don't even bother trying! + if (!splitscreen && (cv_timetic.value == 2 || cv_timetic.value == 3 || modeattacking)) // there's not enough room for tics in splitscreen, don't even bother trying! { ST_DrawPatchFromHud(HUD_TIMETICCOLON, sboperiod, V_HUDTRANS); // Period ST_DrawPadNumFromHud(HUD_TICS, tictrn, 2, V_HUDTRANS); // Tics @@ -681,7 +681,7 @@ static inline void ST_drawRings(void) else ringnum = max(stplyr->rings, 0); - if (!splitscreen && (cv_timetic.value == 2 || modeattacking)) + if (!splitscreen && cv_timetic.value == 3) // Yes, even in modeattacking ST_DrawNumFromHud(HUD_RINGSNUMTICS, ringnum, ((stplyr->spectator) ? V_HUDTRANSHALF : V_HUDTRANS)); else ST_DrawNumFromHudWS(HUD_RINGSNUM, ringnum, ((stplyr->spectator) ? V_HUDTRANSHALF : V_HUDTRANS)); From 9a10dfeaee7a76e5247ffda4cedd9dcdf2648efa Mon Sep 17 00:00:00 2001 From: toasterbabe Date: Wed, 25 Oct 2017 16:40:21 +0100 Subject: [PATCH 083/111] Replaced the laggy randomised-at-runtime static with sufficiently random low-impact pregenerated static. Requires new patch.dta. https://cdn.discordapp.com/attachments/293238104096112641/372770688890830859/srb20003.gif --- src/dehacked.c | 1 - src/m_menu.c | 64 +++++++++++++++++++++++++++++------------- src/v_video.c | 75 ++++++++++++++++++++++++++------------------------ src/v_video.h | 1 - src/y_inter.c | 2 +- 5 files changed, 85 insertions(+), 58 deletions(-) diff --git a/src/dehacked.c b/src/dehacked.c index 774257d4d..6bf22a204 100644 --- a/src/dehacked.c +++ b/src/dehacked.c @@ -7331,7 +7331,6 @@ struct { {"V_70TRANS",V_70TRANS}, {"V_80TRANS",V_80TRANS}, {"V_90TRANS",V_90TRANS}, - {"V_STATIC",V_STATIC}, {"V_HUDTRANSHALF",V_HUDTRANSHALF}, {"V_HUDTRANS",V_HUDTRANS}, {"V_HUDTRANSDOUBLE",V_HUDTRANSDOUBLE}, diff --git a/src/m_menu.c b/src/m_menu.c index a4a271d7e..780ca3d16 100644 --- a/src/m_menu.c +++ b/src/m_menu.c @@ -3085,6 +3085,26 @@ void M_DrawTextBox(INT32 x, INT32 y, INT32 width, INT32 boxlines) */ } +#define scale FRACUNIT/2 + +static fixed_t staticalong = 0; + +static void M_DrawStaticBox(fixed_t x, fixed_t y, INT32 flags, fixed_t w, fixed_t h) +{ + patch_t *patch = W_CachePatchName("LSSTATIC", PU_CACHE); + INT32 pw = SHORT(patch->width); + fixed_t sw = FixedDiv(w, scale); + + if (staticalong >= (pw - sw)) + staticalong = 0; + + V_DrawCroppedPatch(x<>FRACBITS]))<<8)&0xff00) + (*dest&0xff)); } -static UINT8 staticstep = 0; -static fixed_t staticval = 0; - -static inline UINT8 staticpdraw(const UINT8 *dest, const UINT8 *source, fixed_t ofs) -{ - UINT8 val = source[ofs>>FRACBITS]; - (void)dest; - if ((++staticstep) >= 4) - { - staticstep = 0; - staticval = M_RandomFixed(); - } - if (val < 7) return val; - return ((staticval>>staticstep)&7)+(val-7); -} - // Draws a patch scaled to arbitrary size. void V_DrawFixedPatch(fixed_t x, fixed_t y, fixed_t pscale, INT32 scrn, patch_t *patch, const UINT8 *colormap) { @@ -571,25 +555,18 @@ void V_DrawFixedPatch(fixed_t x, fixed_t y, fixed_t pscale, INT32 scrn, patch_t patchdrawfunc = standardpdraw; v_translevel = NULL; - if ((alphalevel = ((scrn & V_ALPHAMASK) >> V_ALPHASHIFT)) == 12) // static + if ((alphalevel = ((scrn & V_ALPHAMASK) >> V_ALPHASHIFT))) { - alphalevel = 0; - patchdrawfunc = staticpdraw; - } - else - { - if (alphalevel) - { - if (alphalevel == 13) - alphalevel = hudminusalpha[cv_translucenthud.value]; - else if (alphalevel == 14) - alphalevel = 10 - cv_translucenthud.value; - else if (alphalevel == 15) - alphalevel = hudplusalpha[cv_translucenthud.value]; + if (alphalevel == 13) + alphalevel = hudminusalpha[cv_translucenthud.value]; + else if (alphalevel == 14) + alphalevel = 10 - cv_translucenthud.value; + else if (alphalevel == 15) + alphalevel = hudplusalpha[cv_translucenthud.value]; + + if (alphalevel >= 10) + return; // invis - if (alphalevel >= 10) - return; // invis - } if (alphalevel) { v_translevel = transtables + ((alphalevel-1)<> V_ALPHASHIFT))) + { + if (alphalevel == 13) + alphalevel = hudminusalpha[cv_translucenthud.value]; + else if (alphalevel == 14) + alphalevel = 10 - cv_translucenthud.value; + else if (alphalevel == 15) + alphalevel = hudplusalpha[cv_translucenthud.value]; + + if (alphalevel >= 10) + return; // invis + + if (alphalevel) + { + v_translevel = transtables + ((alphalevel-1)<>FRACBITS) < SHORT(patch->width) && (col>>FRACBITS) < w; col += colfrac, ++x, desttop++) + for (col = sx<>FRACBITS) < SHORT(patch->width) && ((col>>FRACBITS) - sx) < w; col += colfrac, ++x, desttop++) { INT32 topdelta, prevdelta = -1; if (x < 0) // don't draw off the left of the screen (WRAP PREVENTION) @@ -863,10 +866,10 @@ void V_DrawCroppedPatch(fixed_t x, fixed_t y, fixed_t pscale, INT32 scrn, patch_ dest = desttop; dest += FixedInt(FixedMul(topdelta<>FRACBITS) < column->length && ((ofs>>FRACBITS) + topdelta) < h; ofs += rowfrac) + for (ofs = sy<>FRACBITS) < column->length && (((ofs>>FRACBITS) - sy) + topdelta) < h; ofs += rowfrac) { if (dest >= screens[scrn&V_PARAMMASK]) // don't draw off the top of the screen (CRASH PREVENTION) - *dest = source[ofs>>FRACBITS]; + *dest = patchdrawfunc(dest, source, ofs); dest += vid.width; } column = (const column_t *)((const UINT8 *)column + column->length + 4); diff --git a/src/v_video.h b/src/v_video.h index 3781f3337..f9fd475f4 100644 --- a/src/v_video.h +++ b/src/v_video.h @@ -94,7 +94,6 @@ extern RGBA_t *pMasterPalette; #define V_70TRANS 0x00070000 #define V_80TRANS 0x00080000 // used to be V_8020TRANS #define V_90TRANS 0x00090000 -#define V_STATIC 0x000C0000 // ogl unsupported kthnxbai #define V_HUDTRANSHALF 0x000D0000 #define V_HUDTRANS 0x000E0000 // draw the hud translucent #define V_HUDTRANSDOUBLE 0x000F0000 diff --git a/src/y_inter.c b/src/y_inter.c index 185a6c1fe..0ed225584 100644 --- a/src/y_inter.c +++ b/src/y_inter.c @@ -205,7 +205,7 @@ static void Y_IntermissionTokenDrawer(void) calc = (lowy - y)*2; if (calc > 0) - V_DrawCroppedPatch(32<width), calc); + V_DrawCroppedPatch(32<width), calc); } // From 4a4ba228dfb2288252deac37be1d75a233b2bd26 Mon Sep 17 00:00:00 2001 From: toasterbabe Date: Wed, 25 Oct 2017 23:34:20 +0100 Subject: [PATCH 084/111] Per request, remove the "/ * ACTION" stuff --- src/m_menu.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/m_menu.c b/src/m_menu.c index 780ca3d16..018b0f1bb 100644 --- a/src/m_menu.c +++ b/src/m_menu.c @@ -1077,8 +1077,8 @@ static menuitem_t OP_ChangeControlsMenu[] = {IT_CALL | IT_STRING2, NULL, "Move Backward", M_ChangeControl, gc_backward }, {IT_CALL | IT_STRING2, NULL, "Move Left", M_ChangeControl, gc_strafeleft }, {IT_CALL | IT_STRING2, NULL, "Move Right", M_ChangeControl, gc_straferight }, - {IT_CALL | IT_STRING2, NULL, "Jump / Main Action", M_ChangeControl, gc_jump }, - {IT_CALL | IT_STRING2, NULL, "Spin / Shield Action", M_ChangeControl, gc_use }, + {IT_CALL | IT_STRING2, NULL, "Jump", M_ChangeControl, gc_jump }, + {IT_CALL | IT_STRING2, NULL, "Spin", M_ChangeControl, gc_use }, {IT_HEADER, NULL, "Camera", NULL, 0}, {IT_SPACE, NULL, NULL, NULL, 0}, // padding {IT_CALL | IT_STRING2, NULL, "Camera Up", M_ChangeControl, gc_lookup }, From b2e89f6832fbe1b8df24d3cff3694244ef660d64 Mon Sep 17 00:00:00 2001 From: toasterbabe Date: Thu, 26 Oct 2017 11:45:08 +0100 Subject: [PATCH 085/111] WOOPS CAN'T UPDATE THE PLAYSIM RANDOM SEED IN A MENU --- src/m_menu.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/m_menu.c b/src/m_menu.c index 018b0f1bb..5025c4185 100644 --- a/src/m_menu.c +++ b/src/m_menu.c @@ -3100,7 +3100,7 @@ static void M_DrawStaticBox(fixed_t x, fixed_t y, INT32 flags, fixed_t w, fixed_ V_DrawCroppedPatch(x< Date: Thu, 26 Oct 2017 16:58:18 +0100 Subject: [PATCH 086/111] * Optimise the new static code further. * Update all the other V_DrawCroppedPatch calls to match the new behaviour. * Fix the OGL version of V_DrawCroppedPatch to match the new behaviour. (To justify my changes: It's not exposed to Lua, and the function signature was a mess. This way it's easier to mentally map how it would work.) --- src/hardware/hw_draw.c | 12 ++++++------ src/m_menu.c | 40 ++++++++++++++++++++++++---------------- src/y_inter.c | 2 +- 3 files changed, 31 insertions(+), 23 deletions(-) diff --git a/src/hardware/hw_draw.c b/src/hardware/hw_draw.c index 9c912495a..dc97f7014 100644 --- a/src/hardware/hw_draw.c +++ b/src/hardware/hw_draw.c @@ -281,16 +281,16 @@ void HWR_DrawCroppedPatch(GLPatch_t *gpatch, fixed_t x, fixed_t y, fixed_t pscal sdupx = sdupy = 2.0f; v[0].x = v[3].x = (cx*sdupx - gpatch->leftoffset * pdupx) / vid.width - 1; - v[2].x = v[1].x = (cx*sdupx + ((w-sx) - gpatch->leftoffset) * pdupx) / vid.width - 1; + v[2].x = v[1].x = (cx*sdupx + ((w) - gpatch->leftoffset) * pdupx) / vid.width - 1; v[0].y = v[1].y = 1 - (cy*sdupy - gpatch->topoffset * pdupy) / vid.height; - v[2].y = v[3].y = 1 - (cy*sdupy + ((h-sy) - gpatch->topoffset) * pdupy) / vid.height; + v[2].y = v[3].y = 1 - (cy*sdupy + ((h) - gpatch->topoffset) * pdupy) / vid.height; v[0].z = v[1].z = v[2].z = v[3].z = 1.0f; - v[0].sow = v[3].sow = ((sx)/(float)gpatch->width )*gpatch->max_s; - v[2].sow = v[1].sow = ((w )/(float)gpatch->width )*gpatch->max_s; - v[0].tow = v[1].tow = ((sy)/(float)gpatch->height)*gpatch->max_t; - v[2].tow = v[3].tow = ((h )/(float)gpatch->height)*gpatch->max_t; + v[0].sow = v[3].sow = ((sx )/(float)gpatch->width )*gpatch->max_s; + v[2].sow = v[1].sow = ((sx+w)/(float)gpatch->width )*gpatch->max_s; + v[0].tow = v[1].tow = ((sy )/(float)gpatch->height)*gpatch->max_t; + v[2].tow = v[3].tow = ((sy+h)/(float)gpatch->height)*gpatch->max_t; flags = BLENDMODE|PF_Clip|PF_NoZClip|PF_NoDepthTest; diff --git a/src/m_menu.c b/src/m_menu.c index 5025c4185..9403dabc4 100644 --- a/src/m_menu.c +++ b/src/m_menu.c @@ -3085,26 +3085,34 @@ void M_DrawTextBox(INT32 x, INT32 y, INT32 width, INT32 boxlines) */ } -#define scale FRACUNIT/2 - static fixed_t staticalong = 0; static void M_DrawStaticBox(fixed_t x, fixed_t y, INT32 flags, fixed_t w, fixed_t h) { - patch_t *patch = W_CachePatchName("LSSTATIC", PU_CACHE); - INT32 pw = SHORT(patch->width); - fixed_t sw = FixedDiv(w, scale); + patch_t *patch; + fixed_t sw, pw; - if (staticalong >= (pw - sw)) - staticalong = 0; + patch = W_CachePatchName("LSSTATIC", PU_CACHE); + pw = SHORT(patch->width) - (sw = w*2); //FixedDiv(w, scale); -- for scale FRACUNIT/2 - V_DrawCroppedPatch(x< 0) -- model code for modders providing weird LSSTATIC + { + if (staticalong > pw) + staticalong -= pw; + } + else + staticalong = 0;*/ - staticalong += M_RandomRange(sw/2, 2*sw); + if (staticalong > pw) // simplified for base LSSTATIC + staticalong -= pw; + + V_DrawCroppedPatch(x<width) >= 256) - V_DrawCroppedPatch(8<height) - 64 + o*2, SHORT(patch->width), SHORT(patch->height)); + V_DrawCroppedPatch(8<height) + 2*(o-32), SHORT(patch->width), 32 - o); else - V_DrawCroppedPatch(8<height) - 32 + o, SHORT(patch->width), SHORT(patch->height)); + V_DrawCroppedPatch(8<height) + o - 32, SHORT(patch->width), 32 - o); W_UnlockCachedPatch(patch); } @@ -6957,7 +6965,7 @@ static void M_DrawSetupChoosePlayerMenu(void) { patch = W_CachePatchName(description[next].picname, PU_CACHE); if (SHORT(patch->width) >= 256) - V_DrawCroppedPatch(8<width), o*2); + V_DrawCroppedPatch(8<width)/2, o); else V_DrawCroppedPatch(8<width), o); W_UnlockCachedPatch(patch); @@ -6975,9 +6983,9 @@ static void M_DrawSetupChoosePlayerMenu(void) else { if (SHORT(patch->width) >= 256) - V_DrawCroppedPatch(8<width), SHORT(patch->height)); + V_DrawCroppedPatch(8<width)/2, SHORT(patch->height)/2 - (o-32)); else - V_DrawCroppedPatch(8<width), SHORT(patch->height)); + V_DrawCroppedPatch(8<width), SHORT(patch->height) - (o-32)); } W_UnlockCachedPatch(patch); diff --git a/src/y_inter.c b/src/y_inter.c index 0ed225584..0812ba80f 100644 --- a/src/y_inter.c +++ b/src/y_inter.c @@ -205,7 +205,7 @@ static void Y_IntermissionTokenDrawer(void) calc = (lowy - y)*2; if (calc > 0) - V_DrawCroppedPatch(32<width), calc); + V_DrawCroppedPatch(32<width), calc); } // From f512b64563c6550048b777a0f9f36da45b1bc0be Mon Sep 17 00:00:00 2001 From: toasterbabe Date: Thu, 26 Oct 2017 16:58:18 +0100 Subject: [PATCH 087/111] Fix some mistakes when updating the function signature. --- src/m_menu.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/m_menu.c b/src/m_menu.c index 9403dabc4..795c94f95 100644 --- a/src/m_menu.c +++ b/src/m_menu.c @@ -6954,7 +6954,7 @@ static void M_DrawSetupChoosePlayerMenu(void) { patch = W_CachePatchName(description[prev].picname, PU_CACHE); if (SHORT(patch->width) >= 256) - V_DrawCroppedPatch(8<height) + 2*(o-32), SHORT(patch->width), 32 - o); + V_DrawCroppedPatch(8<height) + 2*(o-32), SHORT(patch->width), 64 - 2*o); else V_DrawCroppedPatch(8<height) + o - 32, SHORT(patch->width), 32 - o); W_UnlockCachedPatch(patch); @@ -6965,7 +6965,7 @@ static void M_DrawSetupChoosePlayerMenu(void) { patch = W_CachePatchName(description[next].picname, PU_CACHE); if (SHORT(patch->width) >= 256) - V_DrawCroppedPatch(8<width)/2, o); + V_DrawCroppedPatch(8<width), 2*o); else V_DrawCroppedPatch(8<width), o); W_UnlockCachedPatch(patch); @@ -6983,7 +6983,7 @@ static void M_DrawSetupChoosePlayerMenu(void) else { if (SHORT(patch->width) >= 256) - V_DrawCroppedPatch(8<width)/2, SHORT(patch->height)/2 - (o-32)); + V_DrawCroppedPatch(8<width), SHORT(patch->height) - 2*(o-32)); else V_DrawCroppedPatch(8<width), SHORT(patch->height) - (o-32)); } From 365cd305d7521ac35e8b75d92cc4f369a92c2ffd Mon Sep 17 00:00:00 2001 From: Monster Iestyn Date: Fri, 27 Oct 2017 17:41:23 +0100 Subject: [PATCH 088/111] Make appveyor config use GCC72=1 instead of GCC63=1 --- appveyor.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/appveyor.yml b/appveyor.yml index 23b9b6281..630695237 100644 --- a/appveyor.yml +++ b/appveyor.yml @@ -47,7 +47,7 @@ before_build: - upx -V - ccache -V - ccache -s -- set SRB2_MFLAGS=-C src MINGW=1 WARNINGMODE=1 GCC63=1 CCACHE=1 NOOBJDUMP=1 +- set SRB2_MFLAGS=-C src MINGW=1 WARNINGMODE=1 GCC72=1 CCACHE=1 NOOBJDUMP=1 build_script: - cmd: mingw32-make.exe %SRB2_MFLAGS% %CONFIGURATION%=1 clean From ee4b891318320373fac52759f409a0685a772d30 Mon Sep 17 00:00:00 2001 From: toasterbabe Date: Thu, 26 Oct 2017 16:58:18 +0100 Subject: [PATCH 089/111] Since I'm on the branch: bugfix a thing with introchanged/titlechanged. --- src/dehacked.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/dehacked.c b/src/dehacked.c index 774257d4d..b1136c2cf 100644 --- a/src/dehacked.c +++ b/src/dehacked.c @@ -3346,9 +3346,15 @@ static void DEH_LoadDehackedFile(MYFILE *f) if (gamestate == GS_TITLESCREEN) { if (introchanged) + { + menuactive = false; COM_BufAddText("playintro"); + } else if (titlechanged) + { + menuactive = false; COM_BufAddText("exitgame"); // Command_ExitGame_f() but delayed + } } dbg_line = -1; From ce40c00b7adb7e23102e1db271ea94542a566490 Mon Sep 17 00:00:00 2001 From: Alam Ed Arias Date: Fri, 27 Oct 2017 19:49:55 -0400 Subject: [PATCH 090/111] Build: do not error on FALLTHURs --- src/Makefile.cfg | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/Makefile.cfg b/src/Makefile.cfg index 317218397..68cced815 100644 --- a/src/Makefile.cfg +++ b/src/Makefile.cfg @@ -190,6 +190,9 @@ endif ifdef GCC46 WFLAGS+=-Wno-suggest-attribute=noreturn endif +ifdef GCC71 +WFLAGS+=-Wno-error=implicit-fallthrough -Wimplicit-fallthrough=3 +endif ifndef MINGW ifdef GCC45 From bdfdd868c7db881d8ce1de986049cd4de06ecc0c Mon Sep 17 00:00:00 2001 From: Alam Ed Arias Date: Fri, 27 Oct 2017 20:30:15 -0400 Subject: [PATCH 091/111] Appveyor: let see what is the command line --- appveyor.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/appveyor.yml b/appveyor.yml index 630695237..40dc453d0 100644 --- a/appveyor.yml +++ b/appveyor.yml @@ -47,7 +47,7 @@ before_build: - upx -V - ccache -V - ccache -s -- set SRB2_MFLAGS=-C src MINGW=1 WARNINGMODE=1 GCC72=1 CCACHE=1 NOOBJDUMP=1 +- set SRB2_MFLAGS=-C src MINGW=1 WARNINGMODE=1 GCC72=1 CCACHE=1 NOOBJDUMP=1 ECHO=1 build_script: - cmd: mingw32-make.exe %SRB2_MFLAGS% %CONFIGURATION%=1 clean From c160241f1b621075af8883446953b924218d5529 Mon Sep 17 00:00:00 2001 From: Alam Ed Arias Date: Fri, 27 Oct 2017 20:59:18 -0400 Subject: [PATCH 092/111] Appveyor: stuff warnings switchs --- appveyor.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/appveyor.yml b/appveyor.yml index 40dc453d0..768688ce7 100644 --- a/appveyor.yml +++ b/appveyor.yml @@ -6,7 +6,7 @@ environment: CCACHE_CC: i686-w64-mingw32-gcc WINDRES: windres MINGW_SDK: c:\msys64\mingw32 - CFLAGS: -Wall -W -Werror + CFLAGS: -Wall -W -Werror -Wno-error=implicit-fallthrough -Wimplicit-fallthrough=3 NASM_ZIP: nasm-2.12.01 NASM_URL: http://www.nasm.us/pub/nasm/releasebuilds/2.12.01/win64/nasm-2.12.01-win64.zip UPX_ZIP: upx391w From 264fc2f3c70d81b26b5e2b4033bd8ec869bfb113 Mon Sep 17 00:00:00 2001 From: Alam Ed Arias Date: Fri, 27 Oct 2017 21:14:52 -0400 Subject: [PATCH 093/111] Appveyor: remove error --- appveyor.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/appveyor.yml b/appveyor.yml index 768688ce7..9291b9a27 100644 --- a/appveyor.yml +++ b/appveyor.yml @@ -47,7 +47,7 @@ before_build: - upx -V - ccache -V - ccache -s -- set SRB2_MFLAGS=-C src MINGW=1 WARNINGMODE=1 GCC72=1 CCACHE=1 NOOBJDUMP=1 ECHO=1 +- set SRB2_MFLAGS=-C src MINGW=1 WARNINGMODE=1 GCC72=1 CCACHE=1 NOOBJDUMP=1 build_script: - cmd: mingw32-make.exe %SRB2_MFLAGS% %CONFIGURATION%=1 clean From f6af81be5907cad3a4df09997dcf6158e36f9661 Mon Sep 17 00:00:00 2001 From: Alam Ed Arias Date: Fri, 27 Oct 2017 21:25:52 -0400 Subject: [PATCH 094/111] Appvendor: -Wno-tautological-compare --- appveyor.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/appveyor.yml b/appveyor.yml index 9291b9a27..434fdce07 100644 --- a/appveyor.yml +++ b/appveyor.yml @@ -6,7 +6,7 @@ environment: CCACHE_CC: i686-w64-mingw32-gcc WINDRES: windres MINGW_SDK: c:\msys64\mingw32 - CFLAGS: -Wall -W -Werror -Wno-error=implicit-fallthrough -Wimplicit-fallthrough=3 + CFLAGS: -Wall -W -Werror -Wno-error=implicit-fallthrough -Wimplicit-fallthrough=3 -Wno-tautological-compare NASM_ZIP: nasm-2.12.01 NASM_URL: http://www.nasm.us/pub/nasm/releasebuilds/2.12.01/win64/nasm-2.12.01-win64.zip UPX_ZIP: upx391w From daf442f17b6cf3067c61199e63a0709eb6340cc9 Mon Sep 17 00:00:00 2001 From: Alam Ed Arias Date: Fri, 27 Oct 2017 21:31:02 -0400 Subject: [PATCH 095/111] Appvendor: -Wno-error=suggest-attribute=noreturn --- appveyor.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/appveyor.yml b/appveyor.yml index 434fdce07..89b1eeeb5 100644 --- a/appveyor.yml +++ b/appveyor.yml @@ -6,7 +6,7 @@ environment: CCACHE_CC: i686-w64-mingw32-gcc WINDRES: windres MINGW_SDK: c:\msys64\mingw32 - CFLAGS: -Wall -W -Werror -Wno-error=implicit-fallthrough -Wimplicit-fallthrough=3 -Wno-tautological-compare + CFLAGS: -Wall -W -Werror -Wno-error=implicit-fallthrough -Wimplicit-fallthrough=3 -Wno-tautological-compare -Wno-error=suggest-attribute=noreturn NASM_ZIP: nasm-2.12.01 NASM_URL: http://www.nasm.us/pub/nasm/releasebuilds/2.12.01/win64/nasm-2.12.01-win64.zip UPX_ZIP: upx391w From efc4d2f81d5a6c9c1f4fce2a9316fc9116882141 Mon Sep 17 00:00:00 2001 From: toasterbabe Date: Thu, 26 Oct 2017 16:58:18 +0100 Subject: [PATCH 096/111] * Make multiple ANIMDEFS lumps get loaded. * Refactor the multiple TEXTURES lump code. --- src/p_spec.c | 21 +++++++++------------ src/r_data.c | 16 +++++++--------- 2 files changed, 16 insertions(+), 21 deletions(-) diff --git a/src/p_spec.c b/src/p_spec.c index 7da411580..803c1ab86 100644 --- a/src/p_spec.c +++ b/src/p_spec.c @@ -148,20 +148,17 @@ void P_InitPicAnims(void) maxanims = 0; - if (W_CheckNumForName("ANIMDEFS") != LUMPERROR) + for (w = numwadfiles-1; w >= 0; w--) { - for (w = numwadfiles-1; w >= 0; w--) - { - UINT16 animdefsLumpNum; + UINT16 animdefsLumpNum; - // Find ANIMDEFS lump in the WAD - if (wadfiles[w]->type == RET_PK3) - animdefsLumpNum = W_CheckNumForFullNamePK3("ANIMDEFS", w, 0); - else - animdefsLumpNum = W_CheckNumForNamePwad("ANIMDEFS", w, 0); - - if (animdefsLumpNum != INT16_MAX) - P_ParseANIMDEFSLump(w, animdefsLumpNum); + // Find ANIMDEFS lump in the WAD + animdefsLumpNum = W_CheckNumForNamePwad("ANIMDEFS", w, 0); + + while (animdefsLumpNum != INT16_MAX) + { + P_ParseANIMDEFSLump(w, animdefsLumpNum); + animdefsLumpNum = W_CheckNumForNamePwad("ANIMDEFS", (UINT16)w, animdefsLumpNum + 1); } } diff --git a/src/r_data.c b/src/r_data.c index 07db46aa3..1a6162dc2 100644 --- a/src/r_data.c +++ b/src/r_data.c @@ -571,20 +571,18 @@ void R_LoadTextures(void) { texstart = W_CheckNumForFolderStartPK3("textures/", (UINT16)w, 0); texend = W_CheckNumForFolderEndPK3("textures/", (UINT16)w, texstart); - texturesLumpPos = W_CheckNumForNamePwad("TEXTURES", (UINT16)w, 0); - while (texturesLumpPos != INT16_MAX) - { - numtextures += R_CountTexturesInTEXTURESLump((UINT16)w, (UINT16)texturesLumpPos); - texturesLumpPos = W_CheckNumForNamePwad("TEXTURES", (UINT16)w, texturesLumpPos + 1); - } } else { texstart = W_CheckNumForNamePwad(TX_START, (UINT16)w, 0) + 1; texend = W_CheckNumForNamePwad(TX_END, (UINT16)w, 0); - texturesLumpPos = W_CheckNumForNamePwad("TEXTURES", (UINT16)w, 0); - if (texturesLumpPos != INT16_MAX) - numtextures += R_CountTexturesInTEXTURESLump((UINT16)w, (UINT16)texturesLumpPos); + } + + texturesLumpPos = W_CheckNumForNamePwad("TEXTURES", (UINT16)w, 0); + while (texturesLumpPos != INT16_MAX) + { + numtextures += R_CountTexturesInTEXTURESLump((UINT16)w, (UINT16)texturesLumpPos); + texturesLumpPos = W_CheckNumForNamePwad("TEXTURES", (UINT16)w, texturesLumpPos + 1); } // Add all the textures between TX_START and TX_END From b7d0896c83db3c166669fb78c9add2996eb59623 Mon Sep 17 00:00:00 2001 From: Alam Ed Arias Date: Sat, 28 Oct 2017 17:50:36 -0400 Subject: [PATCH 097/111] libs: updated SDL2 to 2.0.7 --- libs/SDL2/BUGS.txt | 32 +- libs/SDL2/COPYING.txt | 40 +- libs/SDL2/CREDITS.txt | 106 +- libs/SDL2/INSTALL.txt | 33 +- libs/SDL2/Makefile | 2 +- libs/SDL2/README-SDL.txt | 26 +- libs/SDL2/README.txt | 42 +- libs/SDL2/WhatsNew.txt | 548 +- libs/SDL2/docs/README-android.md | 52 +- libs/SDL2/docs/README-cmake.md | 4 +- libs/SDL2/docs/README-directfb.md | 2 +- libs/SDL2/docs/README-dynapi.md | 260 +- libs/SDL2/docs/README-emscripten.md | 72 +- libs/SDL2/docs/README-hg.md | 11 +- libs/SDL2/docs/README-ios.md | 36 +- libs/SDL2/docs/README-linux.md | 172 +- libs/SDL2/docs/README-macosx.md | 56 +- libs/SDL2/docs/README-nacl.md | 206 +- libs/SDL2/docs/README-pandora.md | 6 +- libs/SDL2/docs/README-platforms.md | 16 +- libs/SDL2/docs/README-porting.md | 12 +- libs/SDL2/docs/README-psp.md | 4 +- libs/SDL2/docs/README-raspberrypi.md | 10 +- libs/SDL2/docs/README-touch.md | 14 +- libs/SDL2/docs/README-wince.md | 4 +- libs/SDL2/docs/README-windows.md | 6 +- libs/SDL2/docs/README-winrt.md | 1009 +- libs/SDL2/docs/README.md | 126 +- libs/SDL2/i686-w64-mingw32/bin/SDL2.dll | Bin 1047552 -> 996352 bytes libs/SDL2/i686-w64-mingw32/bin/sdl2-config | 4 +- libs/SDL2/i686-w64-mingw32/include/SDL2/SDL.h | 31 +- .../include/SDL2/SDL_assert.h | 20 +- .../include/SDL2/SDL_atomic.h | 22 +- .../i686-w64-mingw32/include/SDL2/SDL_audio.h | 270 +- .../i686-w64-mingw32/include/SDL2/SDL_bits.h | 25 +- .../include/SDL2/SDL_blendmode.h | 67 +- .../include/SDL2/SDL_clipboard.h | 8 +- .../include/SDL2/SDL_config.h | 29 +- .../include/SDL2/SDL_cpuinfo.h | 23 +- .../i686-w64-mingw32/include/SDL2/SDL_egl.h | 4 +- .../include/SDL2/SDL_endian.h | 29 +- .../i686-w64-mingw32/include/SDL2/SDL_error.h | 8 +- .../include/SDL2/SDL_events.h | 70 +- .../include/SDL2/SDL_filesystem.h | 8 +- .../include/SDL2/SDL_gamecontroller.h | 71 +- .../include/SDL2/SDL_gesture.h | 8 +- .../include/SDL2/SDL_haptic.h | 76 +- .../i686-w64-mingw32/include/SDL2/SDL_hints.h | 298 +- .../include/SDL2/SDL_joystick.h | 133 +- .../include/SDL2/SDL_keyboard.h | 10 +- .../include/SDL2/SDL_keycode.h | 18 +- .../include/SDL2/SDL_loadso.h | 8 +- .../i686-w64-mingw32/include/SDL2/SDL_log.h | 10 +- .../i686-w64-mingw32/include/SDL2/SDL_main.h | 12 +- .../include/SDL2/SDL_messagebox.h | 8 +- .../i686-w64-mingw32/include/SDL2/SDL_mouse.h | 16 +- .../i686-w64-mingw32/include/SDL2/SDL_mutex.h | 8 +- .../i686-w64-mingw32/include/SDL2/SDL_name.h | 8 +- .../include/SDL2/SDL_opengl.h | 15 +- .../include/SDL2/SDL_opengles.h | 3 +- .../include/SDL2/SDL_opengles2.h | 4 +- .../include/SDL2/SDL_pixels.h | 22 +- .../include/SDL2/SDL_platform.h | 52 +- .../i686-w64-mingw32/include/SDL2/SDL_power.h | 8 +- .../i686-w64-mingw32/include/SDL2/SDL_quit.h | 8 +- .../i686-w64-mingw32/include/SDL2/SDL_rect.h | 8 +- .../include/SDL2/SDL_render.h | 44 +- .../include/SDL2/SDL_revision.h | 4 +- .../i686-w64-mingw32/include/SDL2/SDL_rwops.h | 43 +- .../include/SDL2/SDL_scancode.h | 22 +- .../i686-w64-mingw32/include/SDL2/SDL_shape.h | 17 +- .../include/SDL2/SDL_stdinc.h | 89 +- .../include/SDL2/SDL_surface.h | 30 +- .../include/SDL2/SDL_system.h | 18 +- .../i686-w64-mingw32/include/SDL2/SDL_syswm.h | 51 +- .../i686-w64-mingw32/include/SDL2/SDL_test.h | 25 +- .../include/SDL2/SDL_test_assert.h | 14 +- .../include/SDL2/SDL_test_common.h | 8 +- .../include/SDL2/SDL_test_compare.h | 8 +- .../include/SDL2/SDL_test_crc32.h | 10 +- .../include/SDL2/SDL_test_font.h | 17 +- .../include/SDL2/SDL_test_fuzzer.h | 36 +- .../include/SDL2/SDL_test_harness.h | 19 +- .../include/SDL2/SDL_test_images.h | 30 +- .../include/SDL2/SDL_test_log.h | 8 +- .../include/SDL2/SDL_test_md5.h | 8 +- .../include/SDL2/SDL_test_memory.h | 63 + .../include/SDL2/SDL_test_random.h | 8 +- .../include/SDL2/SDL_thread.h | 51 +- .../i686-w64-mingw32/include/SDL2/SDL_timer.h | 8 +- .../i686-w64-mingw32/include/SDL2/SDL_touch.h | 8 +- .../i686-w64-mingw32/include/SDL2/SDL_types.h | 2 +- .../include/SDL2/SDL_version.h | 10 +- .../i686-w64-mingw32/include/SDL2/SDL_video.h | 184 +- .../include/SDL2/SDL_vulkan.h | 257 + .../include/SDL2/begin_code.h | 25 +- .../include/SDL2/close_code.h | 4 +- .../lib/cmake/SDL2/sdl2-config.cmake | 7 +- libs/SDL2/i686-w64-mingw32/lib/libSDL2.a | Bin 6105676 -> 5811450 bytes libs/SDL2/i686-w64-mingw32/lib/libSDL2.dll.a | Bin 356240 -> 392616 bytes libs/SDL2/i686-w64-mingw32/lib/libSDL2.la | 41 - libs/SDL2/i686-w64-mingw32/lib/libSDL2_test.a | Bin 517718 -> 489408 bytes libs/SDL2/i686-w64-mingw32/lib/libSDL2main.a | Bin 9566 -> 9568 bytes .../i686-w64-mingw32/lib/pkgconfig/sdl2.pc | 4 +- .../i686-w64-mingw32/share/aclocal/sdl2.m4 | 54 +- libs/SDL2/include/SDL.h | 70 +- libs/SDL2/include/SDL_assert.h | 59 +- libs/SDL2/include/SDL_atomic.h | 32 +- libs/SDL2/include/SDL_audio.h | 347 +- libs/SDL2/include/SDL_bits.h | 25 +- libs/SDL2/include/SDL_blendmode.h | 67 +- libs/SDL2/include/SDL_clipboard.h | 8 +- libs/SDL2/include/SDL_config.h | 43 +- libs/SDL2/include/SDL_config.h.cmake | 445 + libs/SDL2/include/SDL_config.h.in | 389 + libs/SDL2/include/SDL_config_android.h | 157 + libs/SDL2/include/SDL_config_iphoneos.h | 166 + libs/SDL2/include/SDL_config_macosx.h | 197 + libs/SDL2/include/SDL_config_macosx.h.orig | 197 + libs/SDL2/include/SDL_config_minimal.h | 82 + libs/SDL2/include/SDL_config_pandora.h | 128 + libs/SDL2/include/SDL_config_psp.h | 144 + libs/SDL2/include/SDL_config_windows.h | 225 + libs/SDL2/include/SDL_config_winrt.h | 215 + libs/SDL2/include/SDL_config_wiz.h | 121 + libs/SDL2/include/SDL_copying.h | 20 + libs/SDL2/include/SDL_cpuinfo.h | 30 +- libs/SDL2/include/SDL_egl.h | 1673 ++ libs/SDL2/include/SDL_endian.h | 33 +- libs/SDL2/include/SDL_error.h | 10 +- libs/SDL2/include/SDL_events.h | 109 +- libs/SDL2/include/SDL_filesystem.h | 8 +- libs/SDL2/include/SDL_gamecontroller.h | 86 +- libs/SDL2/include/SDL_gesture.h | 8 +- libs/SDL2/include/SDL_haptic.h | 108 +- libs/SDL2/include/SDL_hints.h | 561 +- libs/SDL2/include/SDL_joystick.h | 161 +- libs/SDL2/include/SDL_keyboard.h | 10 +- libs/SDL2/include/SDL_keycode.h | 18 +- libs/SDL2/include/SDL_loadso.h | 8 +- libs/SDL2/include/SDL_log.h | 26 +- libs/SDL2/include/SDL_main.h | 48 +- libs/SDL2/include/SDL_messagebox.h | 8 +- libs/SDL2/include/SDL_mouse.h | 92 +- libs/SDL2/include/SDL_mutex.h | 8 +- libs/SDL2/include/SDL_name.h | 28 +- libs/SDL2/include/SDL_opengl.h | 13067 +++------------- libs/SDL2/include/SDL_opengl_glext.h | 11177 +++++++++++++ libs/SDL2/include/SDL_opengles.h | 3 +- libs/SDL2/include/SDL_opengles2.h | 2758 +--- libs/SDL2/include/SDL_opengles2_gl2.h | 621 + libs/SDL2/include/SDL_opengles2_gl2ext.h | 2050 +++ libs/SDL2/include/SDL_opengles2_gl2platform.h | 30 + libs/SDL2/include/SDL_opengles2_khrplatform.h | 282 + libs/SDL2/include/SDL_pixels.h | 53 +- libs/SDL2/include/SDL_platform.h | 75 +- libs/SDL2/include/SDL_power.h | 8 +- libs/SDL2/include/SDL_quit.h | 8 +- libs/SDL2/include/SDL_rect.h | 18 +- libs/SDL2/include/SDL_render.h | 68 +- libs/SDL2/include/SDL_revision.h | 4 +- libs/SDL2/include/SDL_rwops.h | 46 +- libs/SDL2/include/SDL_scancode.h | 22 +- libs/SDL2/include/SDL_shape.h | 17 +- libs/SDL2/include/SDL_stdinc.h | 251 +- libs/SDL2/include/SDL_surface.h | 30 +- libs/SDL2/include/SDL_system.h | 129 +- libs/SDL2/include/SDL_syswm.h | 90 +- libs/SDL2/include/SDL_test.h | 27 +- libs/SDL2/include/SDL_test_assert.h | 22 +- libs/SDL2/include/SDL_test_common.h | 8 +- libs/SDL2/include/SDL_test_compare.h | 12 +- libs/SDL2/include/SDL_test_crc32.h | 34 +- libs/SDL2/include/SDL_test_font.h | 17 +- libs/SDL2/include/SDL_test_fuzzer.h | 40 +- libs/SDL2/include/SDL_test_harness.h | 19 +- libs/SDL2/include/SDL_test_images.h | 30 +- libs/SDL2/include/SDL_test_log.h | 12 +- libs/SDL2/include/SDL_test_md5.h | 26 +- libs/SDL2/include/SDL_test_memory.h | 63 + libs/SDL2/include/SDL_test_random.h | 8 +- libs/SDL2/include/SDL_thread.h | 55 +- libs/SDL2/include/SDL_timer.h | 10 +- libs/SDL2/include/SDL_touch.h | 8 +- libs/SDL2/include/SDL_types.h | 2 +- libs/SDL2/include/SDL_version.h | 10 +- libs/SDL2/include/SDL_video.h | 342 +- libs/SDL2/include/SDL_vulkan.h | 257 + libs/SDL2/include/begin_code.h | 39 +- libs/SDL2/include/close_code.h | 4 +- libs/SDL2/lib/x64/SDL2.dll | Bin 1187840 -> 1220096 bytes libs/SDL2/lib/x64/SDL2.lib | Bin 113700 -> 130646 bytes libs/SDL2/lib/x64/SDL2main.lib | Bin 42824 -> 45212 bytes libs/SDL2/lib/x64/SDL2test.lib | Bin 842536 -> 940792 bytes libs/SDL2/lib/x86/SDL2.dll | Bin 1005056 -> 996352 bytes libs/SDL2/lib/x86/SDL2.lib | Bin 116400 -> 133714 bytes libs/SDL2/lib/x86/SDL2main.lib | Bin 40536 -> 43794 bytes libs/SDL2/lib/x86/SDL2test.lib | Bin 821670 -> 899966 bytes libs/SDL2/test/Makefile.in | 39 +- libs/SDL2/test/axis.bmp | Bin 3746 -> 10138 bytes libs/SDL2/test/checkkeys.c | 16 +- libs/SDL2/test/controllermap.c | 781 +- libs/SDL2/test/loopwave.c | 90 +- libs/SDL2/test/loopwavequeue.c | 5 +- libs/SDL2/test/nacl/common.js | 7 +- libs/SDL2/test/testatomic.c | 29 +- libs/SDL2/test/testaudiocapture.c | 165 + libs/SDL2/test/testaudiohotplug.c | 30 +- libs/SDL2/test/testaudioinfo.c | 14 +- libs/SDL2/test/testautomation.c | 2 +- libs/SDL2/test/testautomation_audio.c | 2 +- libs/SDL2/test/testautomation_clipboard.c | 2 +- libs/SDL2/test/testautomation_events.c | 6 +- libs/SDL2/test/testautomation_keyboard.c | 18 +- libs/SDL2/test/testautomation_main.c | 4 +- libs/SDL2/test/testautomation_mouse.c | 16 +- libs/SDL2/test/testautomation_platform.c | 36 +- libs/SDL2/test/testautomation_rwops.c | 54 +- libs/SDL2/test/testautomation_sdltest.c | 74 +- libs/SDL2/test/testautomation_stdlib.c | 68 +- libs/SDL2/test/testautomation_timer.c | 2 +- libs/SDL2/test/testbounds.c | 40 + libs/SDL2/test/testcustomcursor.c | 216 + libs/SDL2/test/testdisplayinfo.c | 9 +- libs/SDL2/test/testdraw2.c | 2 +- libs/SDL2/test/testdrawchessboard.c | 22 +- libs/SDL2/test/testdropfile.c | 11 +- libs/SDL2/test/testerror.c | 3 +- libs/SDL2/test/testfile.c | 2 +- libs/SDL2/test/testfilesystem.c | 16 +- libs/SDL2/test/testgamecontroller.c | 56 +- libs/SDL2/test/testgesture.c | 3 +- libs/SDL2/test/testgl2.c | 4 +- libs/SDL2/test/testgles.c | 4 +- libs/SDL2/test/testgles2.c | 11 +- libs/SDL2/test/testhittesting.c | 2 +- libs/SDL2/test/testhotplug.c | 2 +- libs/SDL2/test/testiconv.c | 2 +- libs/SDL2/test/testime.c | 522 +- libs/SDL2/test/testintersections.c | 2 +- libs/SDL2/test/testjoystick.c | 41 +- libs/SDL2/test/testkeys.c | 2 +- libs/SDL2/test/testloadso.c | 2 +- libs/SDL2/test/testlock.c | 14 +- libs/SDL2/test/testmessage.c | 8 +- libs/SDL2/test/testmultiaudio.c | 13 +- libs/SDL2/test/testnative.c | 2 +- libs/SDL2/test/testnative.h | 2 +- libs/SDL2/test/testnativew32.c | 2 +- libs/SDL2/test/testnativex11.c | 2 +- libs/SDL2/test/testoverlay2.c | 174 +- libs/SDL2/test/testplatform.c | 239 +- libs/SDL2/test/testpower.c | 2 +- libs/SDL2/test/testqsort.c | 108 + libs/SDL2/test/testrelative.c | 2 +- libs/SDL2/test/testrendercopyex.c | 6 +- libs/SDL2/test/testrendertarget.c | 2 +- libs/SDL2/test/testresample.c | 16 +- libs/SDL2/test/testrumble.c | 9 +- libs/SDL2/test/testscale.c | 2 +- libs/SDL2/test/testsem.c | 2 +- libs/SDL2/test/testshader.c | 2 +- libs/SDL2/test/testshape.c | 21 +- libs/SDL2/test/testsprite2.c | 12 +- libs/SDL2/test/testspriteminimal.c | 2 +- libs/SDL2/test/teststreaming.c | 2 +- libs/SDL2/test/testthread.c | 2 +- libs/SDL2/test/testtimer.c | 2 +- libs/SDL2/test/testver.c | 2 +- libs/SDL2/test/testviewport.c | 2 +- libs/SDL2/test/testvulkan.c | 1201 ++ libs/SDL2/test/testwm2.c | 16 +- libs/SDL2/test/torturethread.c | 10 +- libs/SDL2/x86_64-w64-mingw32/bin/SDL2.dll | Bin 1230336 -> 1220096 bytes libs/SDL2/x86_64-w64-mingw32/bin/sdl2-config | 4 +- .../x86_64-w64-mingw32/include/SDL2/SDL.h | 31 +- .../include/SDL2/SDL_assert.h | 20 +- .../include/SDL2/SDL_atomic.h | 22 +- .../include/SDL2/SDL_audio.h | 270 +- .../include/SDL2/SDL_bits.h | 25 +- .../include/SDL2/SDL_blendmode.h | 67 +- .../include/SDL2/SDL_clipboard.h | 8 +- .../include/SDL2/SDL_config.h | 29 +- .../include/SDL2/SDL_cpuinfo.h | 23 +- .../x86_64-w64-mingw32/include/SDL2/SDL_egl.h | 4 +- .../include/SDL2/SDL_endian.h | 29 +- .../include/SDL2/SDL_error.h | 8 +- .../include/SDL2/SDL_events.h | 70 +- .../include/SDL2/SDL_filesystem.h | 8 +- .../include/SDL2/SDL_gamecontroller.h | 71 +- .../include/SDL2/SDL_gesture.h | 8 +- .../include/SDL2/SDL_haptic.h | 76 +- .../include/SDL2/SDL_hints.h | 298 +- .../include/SDL2/SDL_joystick.h | 133 +- .../include/SDL2/SDL_keyboard.h | 10 +- .../include/SDL2/SDL_keycode.h | 18 +- .../include/SDL2/SDL_loadso.h | 8 +- .../x86_64-w64-mingw32/include/SDL2/SDL_log.h | 10 +- .../include/SDL2/SDL_main.h | 12 +- .../include/SDL2/SDL_messagebox.h | 8 +- .../include/SDL2/SDL_mouse.h | 16 +- .../include/SDL2/SDL_mutex.h | 8 +- .../include/SDL2/SDL_name.h | 8 +- .../include/SDL2/SDL_opengl.h | 15 +- .../include/SDL2/SDL_opengles.h | 3 +- .../include/SDL2/SDL_opengles2.h | 4 +- .../include/SDL2/SDL_pixels.h | 22 +- .../include/SDL2/SDL_platform.h | 52 +- .../include/SDL2/SDL_power.h | 8 +- .../include/SDL2/SDL_quit.h | 8 +- .../include/SDL2/SDL_rect.h | 8 +- .../include/SDL2/SDL_render.h | 44 +- .../include/SDL2/SDL_revision.h | 4 +- .../include/SDL2/SDL_rwops.h | 43 +- .../include/SDL2/SDL_scancode.h | 22 +- .../include/SDL2/SDL_shape.h | 17 +- .../include/SDL2/SDL_stdinc.h | 89 +- .../include/SDL2/SDL_surface.h | 30 +- .../include/SDL2/SDL_system.h | 18 +- .../include/SDL2/SDL_syswm.h | 51 +- .../include/SDL2/SDL_test.h | 25 +- .../include/SDL2/SDL_test_assert.h | 14 +- .../include/SDL2/SDL_test_common.h | 8 +- .../include/SDL2/SDL_test_compare.h | 8 +- .../include/SDL2/SDL_test_crc32.h | 10 +- .../include/SDL2/SDL_test_font.h | 17 +- .../include/SDL2/SDL_test_fuzzer.h | 36 +- .../include/SDL2/SDL_test_harness.h | 19 +- .../include/SDL2/SDL_test_images.h | 30 +- .../include/SDL2/SDL_test_log.h | 8 +- .../include/SDL2/SDL_test_md5.h | 8 +- .../include/SDL2/SDL_test_memory.h | 63 + .../include/SDL2/SDL_test_random.h | 8 +- .../include/SDL2/SDL_thread.h | 51 +- .../include/SDL2/SDL_timer.h | 8 +- .../include/SDL2/SDL_touch.h | 8 +- .../include/SDL2/SDL_types.h | 2 +- .../include/SDL2/SDL_version.h | 10 +- .../include/SDL2/SDL_video.h | 184 +- .../include/SDL2/SDL_vulkan.h | 257 + .../include/SDL2/begin_code.h | 25 +- .../include/SDL2/close_code.h | 4 +- .../lib/cmake/SDL2/sdl2-config.cmake | 7 +- libs/SDL2/x86_64-w64-mingw32/lib/libSDL2.a | Bin 8318688 -> 7966232 bytes .../SDL2/x86_64-w64-mingw32/lib/libSDL2.dll.a | Bin 348328 -> 383948 bytes libs/SDL2/x86_64-w64-mingw32/lib/libSDL2.la | 41 - .../x86_64-w64-mingw32/lib/libSDL2_test.a | Bin 503538 -> 480036 bytes .../SDL2/x86_64-w64-mingw32/lib/libSDL2main.a | Bin 12138 -> 12052 bytes .../x86_64-w64-mingw32/lib/pkgconfig/sdl2.pc | 4 +- .../x86_64-w64-mingw32/share/aclocal/sdl2.m4 | 54 +- 350 files changed, 32968 insertions(+), 17572 deletions(-) create mode 100644 libs/SDL2/i686-w64-mingw32/include/SDL2/SDL_test_memory.h create mode 100644 libs/SDL2/i686-w64-mingw32/include/SDL2/SDL_vulkan.h delete mode 100755 libs/SDL2/i686-w64-mingw32/lib/libSDL2.la mode change 100644 => 100755 libs/SDL2/include/SDL.h mode change 100644 => 100755 libs/SDL2/include/SDL_assert.h mode change 100644 => 100755 libs/SDL2/include/SDL_atomic.h mode change 100644 => 100755 libs/SDL2/include/SDL_audio.h mode change 100644 => 100755 libs/SDL2/include/SDL_bits.h mode change 100644 => 100755 libs/SDL2/include/SDL_blendmode.h mode change 100644 => 100755 libs/SDL2/include/SDL_clipboard.h mode change 100644 => 100755 libs/SDL2/include/SDL_config.h create mode 100755 libs/SDL2/include/SDL_config.h.cmake create mode 100755 libs/SDL2/include/SDL_config.h.in create mode 100755 libs/SDL2/include/SDL_config_android.h create mode 100755 libs/SDL2/include/SDL_config_iphoneos.h create mode 100755 libs/SDL2/include/SDL_config_macosx.h create mode 100755 libs/SDL2/include/SDL_config_macosx.h.orig create mode 100755 libs/SDL2/include/SDL_config_minimal.h create mode 100755 libs/SDL2/include/SDL_config_pandora.h create mode 100755 libs/SDL2/include/SDL_config_psp.h create mode 100755 libs/SDL2/include/SDL_config_windows.h create mode 100755 libs/SDL2/include/SDL_config_winrt.h create mode 100755 libs/SDL2/include/SDL_config_wiz.h create mode 100755 libs/SDL2/include/SDL_copying.h mode change 100644 => 100755 libs/SDL2/include/SDL_cpuinfo.h create mode 100755 libs/SDL2/include/SDL_egl.h mode change 100644 => 100755 libs/SDL2/include/SDL_endian.h mode change 100644 => 100755 libs/SDL2/include/SDL_error.h mode change 100644 => 100755 libs/SDL2/include/SDL_events.h mode change 100644 => 100755 libs/SDL2/include/SDL_filesystem.h mode change 100644 => 100755 libs/SDL2/include/SDL_gamecontroller.h mode change 100644 => 100755 libs/SDL2/include/SDL_gesture.h mode change 100644 => 100755 libs/SDL2/include/SDL_haptic.h mode change 100644 => 100755 libs/SDL2/include/SDL_hints.h mode change 100644 => 100755 libs/SDL2/include/SDL_joystick.h mode change 100644 => 100755 libs/SDL2/include/SDL_keyboard.h mode change 100644 => 100755 libs/SDL2/include/SDL_keycode.h mode change 100644 => 100755 libs/SDL2/include/SDL_loadso.h mode change 100644 => 100755 libs/SDL2/include/SDL_log.h mode change 100644 => 100755 libs/SDL2/include/SDL_main.h mode change 100644 => 100755 libs/SDL2/include/SDL_messagebox.h mode change 100644 => 100755 libs/SDL2/include/SDL_mouse.h mode change 100644 => 100755 libs/SDL2/include/SDL_mutex.h mode change 100644 => 100755 libs/SDL2/include/SDL_name.h mode change 100644 => 100755 libs/SDL2/include/SDL_opengl.h create mode 100755 libs/SDL2/include/SDL_opengl_glext.h mode change 100644 => 100755 libs/SDL2/include/SDL_opengles.h mode change 100644 => 100755 libs/SDL2/include/SDL_opengles2.h create mode 100755 libs/SDL2/include/SDL_opengles2_gl2.h create mode 100755 libs/SDL2/include/SDL_opengles2_gl2ext.h create mode 100755 libs/SDL2/include/SDL_opengles2_gl2platform.h create mode 100755 libs/SDL2/include/SDL_opengles2_khrplatform.h mode change 100644 => 100755 libs/SDL2/include/SDL_pixels.h mode change 100644 => 100755 libs/SDL2/include/SDL_platform.h mode change 100644 => 100755 libs/SDL2/include/SDL_power.h mode change 100644 => 100755 libs/SDL2/include/SDL_quit.h mode change 100644 => 100755 libs/SDL2/include/SDL_rect.h mode change 100644 => 100755 libs/SDL2/include/SDL_render.h mode change 100644 => 100755 libs/SDL2/include/SDL_revision.h mode change 100644 => 100755 libs/SDL2/include/SDL_rwops.h mode change 100644 => 100755 libs/SDL2/include/SDL_scancode.h mode change 100644 => 100755 libs/SDL2/include/SDL_shape.h mode change 100644 => 100755 libs/SDL2/include/SDL_stdinc.h mode change 100644 => 100755 libs/SDL2/include/SDL_surface.h mode change 100644 => 100755 libs/SDL2/include/SDL_system.h mode change 100644 => 100755 libs/SDL2/include/SDL_syswm.h mode change 100644 => 100755 libs/SDL2/include/SDL_test.h mode change 100644 => 100755 libs/SDL2/include/SDL_test_assert.h mode change 100644 => 100755 libs/SDL2/include/SDL_test_common.h mode change 100644 => 100755 libs/SDL2/include/SDL_test_compare.h mode change 100644 => 100755 libs/SDL2/include/SDL_test_crc32.h mode change 100644 => 100755 libs/SDL2/include/SDL_test_font.h mode change 100644 => 100755 libs/SDL2/include/SDL_test_fuzzer.h mode change 100644 => 100755 libs/SDL2/include/SDL_test_harness.h mode change 100644 => 100755 libs/SDL2/include/SDL_test_images.h mode change 100644 => 100755 libs/SDL2/include/SDL_test_log.h mode change 100644 => 100755 libs/SDL2/include/SDL_test_md5.h create mode 100755 libs/SDL2/include/SDL_test_memory.h mode change 100644 => 100755 libs/SDL2/include/SDL_test_random.h mode change 100644 => 100755 libs/SDL2/include/SDL_thread.h mode change 100644 => 100755 libs/SDL2/include/SDL_timer.h mode change 100644 => 100755 libs/SDL2/include/SDL_touch.h mode change 100644 => 100755 libs/SDL2/include/SDL_types.h mode change 100644 => 100755 libs/SDL2/include/SDL_version.h mode change 100644 => 100755 libs/SDL2/include/SDL_video.h create mode 100755 libs/SDL2/include/SDL_vulkan.h mode change 100644 => 100755 libs/SDL2/include/begin_code.h mode change 100644 => 100755 libs/SDL2/include/close_code.h create mode 100644 libs/SDL2/test/testaudiocapture.c create mode 100644 libs/SDL2/test/testbounds.c create mode 100644 libs/SDL2/test/testcustomcursor.c create mode 100644 libs/SDL2/test/testqsort.c create mode 100644 libs/SDL2/test/testvulkan.c create mode 100644 libs/SDL2/x86_64-w64-mingw32/include/SDL2/SDL_test_memory.h create mode 100644 libs/SDL2/x86_64-w64-mingw32/include/SDL2/SDL_vulkan.h delete mode 100755 libs/SDL2/x86_64-w64-mingw32/lib/libSDL2.la diff --git a/libs/SDL2/BUGS.txt b/libs/SDL2/BUGS.txt index 7ef553875..a8e6b952e 100644 --- a/libs/SDL2/BUGS.txt +++ b/libs/SDL2/BUGS.txt @@ -1,16 +1,16 @@ - -Bugs are now managed in the SDL bug tracker, here: - - http://bugzilla.libsdl.org/ - -You may report bugs there, and search to see if a given issue has already - been reported, discussed, and maybe even fixed. - - -You may also find help on the SDL mailing list. Subscription information: - - http://lists.libsdl.org/listinfo.cgi/sdl-libsdl.org - -Bug reports are welcome here, but we really appreciate if you use Bugzilla, as - bugs discussed on the mailing list may be forgotten or missed. - + +Bugs are now managed in the SDL bug tracker, here: + + https://bugzilla.libsdl.org/ + +You may report bugs there, and search to see if a given issue has already + been reported, discussed, and maybe even fixed. + + +You may also find help at the SDL forums/mailing list: + + https://discourse.libsdl.org/ + +Bug reports are welcome here, but we really appreciate if you use Bugzilla, as + bugs discussed on the mailing list may be forgotten or missed. + diff --git a/libs/SDL2/COPYING.txt b/libs/SDL2/COPYING.txt index 04f14eed5..a1c8bbe5a 100644 --- a/libs/SDL2/COPYING.txt +++ b/libs/SDL2/COPYING.txt @@ -1,20 +1,20 @@ - -Simple DirectMedia Layer -Copyright (C) 1997-2016 Sam Lantinga - -This software is provided 'as-is', without any express or implied -warranty. In no event will the authors be held liable for any damages -arising from the use of this software. - -Permission is granted to anyone to use this software for any purpose, -including commercial applications, and to alter it and redistribute it -freely, subject to the following restrictions: - -1. The origin of this software must not be misrepresented; you must not - claim that you wrote the original software. If you use this software - in a product, an acknowledgment in the product documentation would be - appreciated but is not required. -2. Altered source versions must be plainly marked as such, and must not be - misrepresented as being the original software. -3. This notice may not be removed or altered from any source distribution. - + +Simple DirectMedia Layer +Copyright (C) 1997-2017 Sam Lantinga + +This software is provided 'as-is', without any express or implied +warranty. In no event will the authors be held liable for any damages +arising from the use of this software. + +Permission is granted to anyone to use this software for any purpose, +including commercial applications, and to alter it and redistribute it +freely, subject to the following restrictions: + +1. The origin of this software must not be misrepresented; you must not + claim that you wrote the original software. If you use this software + in a product, an acknowledgment in the product documentation would be + appreciated but is not required. +2. Altered source versions must be plainly marked as such, and must not be + misrepresented as being the original software. +3. This notice may not be removed or altered from any source distribution. + diff --git a/libs/SDL2/CREDITS.txt b/libs/SDL2/CREDITS.txt index 74163e824..7e4086712 100644 --- a/libs/SDL2/CREDITS.txt +++ b/libs/SDL2/CREDITS.txt @@ -1,53 +1,53 @@ - -Simple DirectMedia Layer CREDITS -Thanks to everyone who made this possible, including: - -* Cliff Matthews, for giving me a reason to start this project. :) - -- Executor rocks! *grin* - -* Ryan Gordon for helping everybody out and keeping the dream alive. :) - -* Gabriel Jacobo for his work on the Android port and generally helping out all around. - -* Philipp Wiesemann for his attention to detail reviewing the entire SDL code base and proposes patches. - -* Andreas Schiffler for his dedication to unit tests, Visual Studio projects, and managing the Google Summer of Code. - -* Mike Sartain for incorporating SDL into Team Fortress 2 and cheering me on at Valve. - -* Alfred Reynolds for the game controller API and general (in)sanity - -* Jørgen Tjernø for numerous magical Mac OS X fixes. - -* Pierre-Loup Griffais for his deep knowledge of OpenGL drivers. - -* Julian Winter for the SDL 2.0 website. - -* Sheena Smith for many months of great work on the SDL wiki creating the API documentation and style guides. - -* Paul Hunkin for his port of SDL to Android during the Google Summer of Code 2010. - -* Eli Gottlieb for his work on shaped windows during the Google Summer of Code 2010. - -* Jim Grandpre for his work on multi-touch and gesture recognition during - the Google Summer of Code 2010. - -* Edgar "bobbens" Simo for his force feedback API development during the - Google Summer of Code 2008. - -* Aaron Wishnick for his work on audio resampling and pitch shifting during - the Google Summer of Code 2008. - -* Holmes Futrell for his port of SDL to the iPhone and iPod Touch during the - Google Summer of Code 2008. - -* Jon Atkins for SDL_image, SDL_mixer and SDL_net documentation. - -* Everybody at Loki Software, Inc. for their great contributions! - - And a big hand to everyone else who has contributed over the years. - -THANKS! :) - - -- Sam Lantinga - + +Simple DirectMedia Layer CREDITS +Thanks to everyone who made this possible, including: + +* Cliff Matthews, for giving me a reason to start this project. :) + -- Executor rocks! *grin* + +* Ryan Gordon for helping everybody out and keeping the dream alive. :) + +* Gabriel Jacobo for his work on the Android port and generally helping out all around. + +* Philipp Wiesemann for his attention to detail reviewing the entire SDL code base and proposes patches. + +* Andreas Schiffler for his dedication to unit tests, Visual Studio projects, and managing the Google Summer of Code. + +* Mike Sartain for incorporating SDL into Team Fortress 2 and cheering me on at Valve. + +* Alfred Reynolds for the game controller API and general (in)sanity + +* Jørgen Tjernø for numerous magical Mac OS X fixes. + +* Pierre-Loup Griffais for his deep knowledge of OpenGL drivers. + +* Julian Winter for the SDL 2.0 website. + +* Sheena Smith for many months of great work on the SDL wiki creating the API documentation and style guides. + +* Paul Hunkin for his port of SDL to Android during the Google Summer of Code 2010. + +* Eli Gottlieb for his work on shaped windows during the Google Summer of Code 2010. + +* Jim Grandpre for his work on multi-touch and gesture recognition during + the Google Summer of Code 2010. + +* Edgar "bobbens" Simo for his force feedback API development during the + Google Summer of Code 2008. + +* Aaron Wishnick for his work on audio resampling and pitch shifting during + the Google Summer of Code 2008. + +* Holmes Futrell for his port of SDL to the iPhone and iPod Touch during the + Google Summer of Code 2008. + +* Jon Atkins for SDL_image, SDL_mixer and SDL_net documentation. + +* Everybody at Loki Software, Inc. for their great contributions! + + And a big hand to everyone else who has contributed over the years. + +THANKS! :) + + -- Sam Lantinga + diff --git a/libs/SDL2/INSTALL.txt b/libs/SDL2/INSTALL.txt index 25627a319..11a4ca8b0 100644 --- a/libs/SDL2/INSTALL.txt +++ b/libs/SDL2/INSTALL.txt @@ -1,15 +1,18 @@ - -To install SDL for native development: - make native - -To install SDL for cross-compiling development: - make cross - -Look at the example programs in ./test, and check out online documentation: - http://wiki.libsdl.org/ - -Join the SDL developer mailing list if you want to join the community: - http://www.libsdl.org/mailing-list.php - -That's it! -Sam Lantinga + +The 32-bit files are in i686-w64-mingw32 +The 64-bit files are in x86_64-w64-mingw32 + +To install SDL for native development: + make native + +To install SDL for cross-compiling development: + make cross + +Look at the example programs in ./test, and check out online documentation: + http://wiki.libsdl.org/ + +Join the SDL developer mailing list if you want to join the community: + http://www.libsdl.org/mailing-list.php + +That's it! +Sam Lantinga diff --git a/libs/SDL2/Makefile b/libs/SDL2/Makefile index 4c0413b3c..a2e6bb9ba 100644 --- a/libs/SDL2/Makefile +++ b/libs/SDL2/Makefile @@ -6,7 +6,7 @@ ARCHITECTURES := i686-w64-mingw32 x86_64-w64-mingw32 all install: @echo "Type \"make native\" to install 32-bit to /usr" - @echo "Type \"make cross\" to install 32-bit and 64-bit to $(CROSS_PATH)" + @echo "Type \"make cross\" to install 32-bit and 64-bit to CROSS_PATH ($(CROSS_PATH))" native: make install-package arch=i686-w64-mingw32 prefix=/usr diff --git a/libs/SDL2/README-SDL.txt b/libs/SDL2/README-SDL.txt index 0630395e5..8d92955a9 100644 --- a/libs/SDL2/README-SDL.txt +++ b/libs/SDL2/README-SDL.txt @@ -1,13 +1,13 @@ - -Please distribute this file with the SDL runtime environment: - -The Simple DirectMedia Layer (SDL for short) is a cross-platform library -designed to make it easy to write multi-media software, such as games and -emulators. - -The Simple DirectMedia Layer library source code is available from: -http://www.libsdl.org/ - -This library is distributed under the terms of the zlib license: -http://www.zlib.net/zlib_license.html - + +Please distribute this file with the SDL runtime environment: + +The Simple DirectMedia Layer (SDL for short) is a cross-platform library +designed to make it easy to write multi-media software, such as games +and emulators. + +The Simple DirectMedia Layer library source code is available from: +https://www.libsdl.org/ + +This library is distributed under the terms of the zlib license: +http://www.zlib.net/zlib_license.html + diff --git a/libs/SDL2/README.txt b/libs/SDL2/README.txt index 84c335c2b..431ba0e74 100644 --- a/libs/SDL2/README.txt +++ b/libs/SDL2/README.txt @@ -1,21 +1,21 @@ - - Simple DirectMedia Layer - - (SDL) - - Version 2.0 - ---- -http://www.libsdl.org/ - -Simple DirectMedia Layer is a cross-platform development library designed -to provide low level access to audio, keyboard, mouse, joystick, and graphics -hardware via OpenGL and Direct3D. It is used by video playback software, -emulators, and popular games including Valve's award winning catalog -and many Humble Bundle games. - -More extensive documentation is available in the docs directory, starting -with README.md - -Enjoy! - Sam Lantinga (slouken@libsdl.org) + + Simple DirectMedia Layer + + (SDL) + + Version 2.0 + +--- +https://www.libsdl.org/ + +Simple DirectMedia Layer is a cross-platform development library designed +to provide low level access to audio, keyboard, mouse, joystick, and graphics +hardware via OpenGL and Direct3D. It is used by video playback software, +emulators, and popular games including Valve's award winning catalog +and many Humble Bundle games. + +More extensive documentation is available in the docs directory, starting +with README.md + +Enjoy! + Sam Lantinga (slouken@libsdl.org) diff --git a/libs/SDL2/WhatsNew.txt b/libs/SDL2/WhatsNew.txt index 698ebf7df..9c8d53840 100644 --- a/libs/SDL2/WhatsNew.txt +++ b/libs/SDL2/WhatsNew.txt @@ -1,199 +1,349 @@ - -This is a list of major changes in SDL's version history. - ---------------------------------------------------------------------------- -2.0.4: ---------------------------------------------------------------------------- - -General: -* Added support for web applications using Emscripten, see docs/README-emscripten.md for more information -* Added support for web applications using Native Client (NaCl), see docs/README-nacl.md for more information -* Added an API to queue audio instead of using the audio callback: - SDL_QueueAudio(), SDL_GetQueuedAudioSize(), SDL_ClearQueuedAudio() -* Added events for audio device hot plug support: - SDL_AUDIODEVICEADDED, SDL_AUDIODEVICEREMOVED -* Added SDL_PointInRect() -* Added SDL_HasAVX2() to detect CPUs with AVX2 support -* Added SDL_SetWindowHitTest() to let apps treat parts of their SDL window like traditional window decorations (drag areas, resize areas) -* Added SDL_GetGrabbedWindow() to get the window that currently has input grab, if any -* Added SDL_RenderIsClipEnabled() to tell whether clipping is currently enabled in a renderer -* Added SDL_CaptureMouse() to capture the mouse to get events while the mouse is not in your window -* Added SDL_WarpMouseGlobal() to warp the mouse cursor in global screen space -* Added SDL_GetGlobalMouseState() to get the current mouse state outside of an SDL window -* Added a direction field to mouse wheel events to tell whether they are flipped (natural) or not -* Added GL_CONTEXT_RELEASE_BEHAVIOR GL attribute (maps to [WGL|GLX]_ARB_context_flush_control extension) -* Added EGL_KHR_create_context support to allow OpenGL ES version selection on some platforms -* Added NV12 and NV21 YUV texture support for OpenGL and OpenGL ES 2.0 renderers -* Added a Vivante video driver that is used on various SoC platforms -* Added an event SDL_RENDER_DEVICE_RESET that is sent from the D3D renderers when the D3D device is lost, and from Android's event loop when the GLES context had to be recreated -* Added a hint SDL_HINT_NO_SIGNAL_HANDLERS to disable SDL's built in signal handling -* Added a hint SDL_HINT_THREAD_STACK_SIZE to set the stack size of SDL's threads -* Added SDL_sqrtf(), SDL_tan(), and SDL_tanf() to the stdlib routines -* Improved support for WAV and BMP files with unusual chunks in them -* Renamed SDL_assert_data to SDL_AssertData and SDL_assert_state to SDL_AssertState -* Added a hint SDL_HINT_WINDOW_FRAME_USABLE_WHILE_CURSOR_HIDDEN to prevent window interaction while cursor is hidden -* Added SDL_GetDisplayDPI() to get the DPI information for a display -* Added SDL_JoystickCurrentPowerLevel() to get the battery level of a joystick -* Added SDL_JoystickFromInstanceID(), as a helper function, to get the SDL_Joystick* that an event is referring to. -* Added SDL_GameControllerFromInstanceID(), as a helper function, to get the SDL_GameController* that an event is referring to. - -Windows: -* Added support for Windows Phone 8.1 and Windows 10/UWP (Universal Windows Platform) -* Timer resolution is now 1 ms by default, adjustable with the SDL_HINT_TIMER_RESOLUTION hint -* SDLmain no longer depends on the C runtime, so you can use the same .lib in both Debug and Release builds -* Added SDL_SetWindowsMessageHook() to set a function to be called for every windows message before TranslateMessage() -* Added a hint SDL_HINT_WINDOWS_ENABLE_MESSAGELOOP to control whether SDL_PumpEvents() processes the Windows message loop -* You can distinguish between real mouse and touch events by looking for SDL_TOUCH_MOUSEID in the mouse event "which" field -* SDL_SysWMinfo now contains the window HDC -* Added support for Unicode command line options -* Prevent beeping when Alt-key combos are pressed -* SDL_SetTextInputRect() re-positions the OS-rendered IME -* Added a hint SDL_HINT_WINDOWS_NO_CLOSE_ON_ALT_F4 to prevent generating SDL_WINDOWEVENT_CLOSE events when Alt-F4 is pressed -* Added a hint SDL_HINT_XINPUT_USE_OLD_JOYSTICK_MAPPING to use the old axis and button mapping for XInput devices (deprecated) - -Mac OS X: -* Implemented drag-and-drop support -* Improved joystick hot-plug detection -* The SDL_WINDOWEVENT_EXPOSED window event is triggered in the appropriate situations -* Fixed relative mouse mode when the application loses/regains focus -* Fixed bugs related to transitioning to and from Spaces-aware fullscreen-desktop mode -* Fixed the refresh rate of display modes -* SDL_SysWMInfo is now ARC-compatible -* Added a hint SDL_HINT_MAC_BACKGROUND_APP to prevent forcing the application to become a foreground process - -Linux: -* Enabled building with Mir and Wayland support by default. -* Added IBus IME support -* Added a hint SDL_HINT_IME_INTERNAL_EDITING to control whether IBus should handle text editing internally instead of sending SDL_TEXTEDITING events -* Added a hint SDL_HINT_VIDEO_X11_NET_WM_PING to allow disabling _NET_WM_PING protocol handling in SDL_CreateWindow() -* Added support for multiple audio devices when using Pulseaudio -* Fixed duplicate mouse events when using relative mouse motion - -iOS: -* Added support for iOS 8 -* The SDL_WINDOW_ALLOW_HIGHDPI window flag now enables high-dpi support, and SDL_GL_GetDrawableSize() or SDL_GetRendererOutputSize() gets the window resolution in pixels -* SDL_GetWindowSize() and display mode sizes are in the "DPI-independent points" / "screen coordinates" coordinate space rather than pixels (matches OS X behavior) -* Added native resolution support for the iPhone 6 Plus -* Added support for MFi game controllers -* Added support for the hint SDL_HINT_ACCELEROMETER_AS_JOYSTICK -* Added sRGB OpenGL ES context support on iOS 7+ -* Added support for SDL_DisableScreenSaver(), SDL_EnableScreenSaver() and the hint SDL_HINT_VIDEO_ALLOW_SCREENSAVER -* SDL_SysWMinfo now contains the OpenGL ES framebuffer and color renderbuffer objects used by the window's active GLES view -* Fixed various rotation and orientation issues -* Fixed memory leaks - -Android: -* Added a hint SDL_HINT_ANDROID_SEPARATE_MOUSE_AND_TOUCH to prevent mouse events from being registered as touch events -* Added hints SDL_HINT_ANDROID_APK_EXPANSION_MAIN_FILE_VERSION and SDL_HINT_ANDROID_APK_EXPANSION_PATCH_FILE_VERSION -* Added support for SDL_DisableScreenSaver(), SDL_EnableScreenSaver() and the hint SDL_HINT_VIDEO_ALLOW_SCREENSAVER -* Added support for SDL_ShowMessageBox() and SDL_ShowSimpleMessageBox() - -Raspberry Pi: -* Added support for the Raspberry Pi 2 - - ---------------------------------------------------------------------------- -2.0.3: ---------------------------------------------------------------------------- - -Mac OS X: -* Fixed creating an OpenGL context by default on Mac OS X 10.6 - - ---------------------------------------------------------------------------- -2.0.2: ---------------------------------------------------------------------------- -General: -* Added SDL_GL_ResetAttributes() to reset OpenGL attributes to default values -* Added an API to load a database of game controller mappings from a file: - SDL_GameControllerAddMappingsFromFile(), SDL_GameControllerAddMappingsFromRW() -* Added game controller mappings for the PS4 and OUYA controllers -* Added SDL_GetDefaultAssertionHandler() and SDL_GetAssertionHandler() -* Added SDL_DetachThread() -* Added SDL_HasAVX() to determine if the CPU has AVX features -* Added SDL_vsscanf(), SDL_acos(), and SDL_asin() to the stdlib routines -* EGL can now create/manage OpenGL and OpenGL ES 1.x/2.x contexts, and share - them using SDL_GL_SHARE_WITH_CURRENT_CONTEXT -* Added a field "clicks" to the mouse button event which records whether the event is a single click, double click, etc. -* The screensaver is now disabled by default, and there is a hint SDL_HINT_VIDEO_ALLOW_SCREENSAVER that can change that behavior. -* Added a hint SDL_HINT_MOUSE_RELATIVE_MODE_WARP to specify whether mouse relative mode should be emulated using mouse warping. -* testgl2 does not need to link with libGL anymore -* Added testgles2 test program to demonstrate working with OpenGL ES 2.0 -* Added controllermap test program to visually map a game controller - -Windows: -* Support for OpenGL ES 2.x contexts using either WGL or EGL (natively via - the driver or emulated through ANGLE) -* Added a hint SDL_HINT_VIDEO_WIN_D3DCOMPILER to specify which D3D shader compiler to use for OpenGL ES 2 support through ANGLE -* Added a hint SDL_HINT_VIDEO_WINDOW_SHARE_PIXEL_FORMAT that is useful when creating multiple windows that should share the same OpenGL context. -* Added an event SDL_RENDER_TARGETS_RESET that is sent when D3D9 render targets are reset after the device has been restored. - -Mac OS X: -* Added a hint SDL_HINT_MAC_CTRL_CLICK_EMULATE_RIGHT_CLICK to control whether Ctrl+click should be treated as a right click on Mac OS X. This is off by default. - -Linux: -* Fixed fullscreen and focused behavior when receiving NotifyGrab events -* Added experimental Wayland and Mir support, disabled by default - -Android: -* Joystick support (minimum SDK version required to build SDL is now 12, - the required runtime version remains at 10, but on such devices joystick - support won't be available). -* Hotplugging support for joysticks -* Added a hint SDL_HINT_ACCELEROMETER_AS_JOYSTICK to control whether the accelerometer should be listed as a 3 axis joystick, which it will by default. - - ---------------------------------------------------------------------------- -2.0.1: ---------------------------------------------------------------------------- - -General: -* Added an API to get common filesystem paths in SDL_filesystem.h: - SDL_GetBasePath(), SDL_GetPrefPath() -* Added an API to do optimized YV12 and IYUV texture updates: - SDL_UpdateYUVTexture() -* Added an API to get the amount of RAM on the system: - SDL_GetSystemRAM() -* Added a macro to perform timestamp comparisons with SDL_GetTicks(): - SDL_TICKS_PASSED() -* Dramatically improved OpenGL ES 2.0 rendering performance -* Added OpenGL attribute SDL_GL_FRAMEBUFFER_SRGB_CAPABLE - -Windows: -* Created a static library configuration for the Visual Studio 2010 project -* Added a hint to create the Direct3D device with support for multi-threading: - SDL_HINT_RENDER_DIRECT3D_THREADSAFE -* Added a function to get the D3D9 adapter index for a display: - SDL_Direct3D9GetAdapterIndex() -* Added a function to get the D3D9 device for a D3D9 renderer: - SDL_RenderGetD3D9Device() -* Fixed building SDL with the mingw32 toolchain (mingw-w64 is preferred) -* Fixed crash when using two XInput controllers at the same time -* Fixed detecting a mixture of XInput and DirectInput controllers -* Fixed clearing a D3D render target larger than the window -* Improved support for format specifiers in SDL_snprintf() - -Mac OS X: -* Added support for retina displays: - Create your window with the SDL_WINDOW_ALLOW_HIGHDPI flag, and then use SDL_GL_GetDrawableSize() to find the actual drawable size. You are responsible for scaling mouse and drawing coordinates appropriately. -* Fixed mouse warping in fullscreen mode -* Right mouse click is emulated by holding the Ctrl key while left clicking - -Linux: -* Fixed float audio support with the PulseAudio driver -* Fixed missing line endpoints in the OpenGL renderer on some drivers -* X11 symbols are no longer defined to avoid collisions when linking statically - -iOS: -* Fixed status bar visibility on iOS 7 -* Flipped the accelerometer Y axis to match expected values - -Android: -IMPORTANT: You MUST get the updated SDLActivity.java to match C code -* Moved EGL initialization to native code -* Fixed the accelerometer axis rotation relative to the device rotation -* Fixed race conditions when handling the EGL context on pause/resume -* Touch devices are available for enumeration immediately after init - -Raspberry Pi: -* Added support for the Raspberry Pi, see README-raspberrypi.txt for details + +This is a list of major changes in SDL's version history. + +--------------------------------------------------------------------------- +2.0.7: +--------------------------------------------------------------------------- + +General: +* Added audio stream conversion functions: + SDL_NewAudioStream + SDL_AudioStreamPut + SDL_AudioStreamGet + SDL_AudioStreamAvailable + SDL_AudioStreamFlush + SDL_AudioStreamClear + SDL_FreeAudioStream +* Added functions to query and set the SDL memory allocation functions: + SDL_GetMemoryFunctions() + SDL_SetMemoryFunctions() + SDL_GetNumAllocations() +* Added locking functions for multi-threaded access to the joystick and game controller APIs: + SDL_LockJoysticks() + SDL_UnlockJoysticks() +* The following functions are now thread-safe: + SDL_SetEventFilter() + SDL_GetEventFilter() + SDL_AddEventWatch() + SDL_DelEventWatch() + + +General: +--------------------------------------------------------------------------- +2.0.6: +--------------------------------------------------------------------------- + +General: +* Added cross-platform Vulkan graphics support in SDL_vulkan.h + SDL_Vulkan_LoadLibrary() + SDL_Vulkan_GetVkGetInstanceProcAddr() + SDL_Vulkan_GetInstanceExtensions() + SDL_Vulkan_CreateSurface() + SDL_Vulkan_GetDrawableSize() + SDL_Vulkan_UnloadLibrary() + This is all the platform-specific code you need to bring up Vulkan on all SDL platforms. You can look at an example in test/testvulkan.c +* Added SDL_ComposeCustomBlendMode() to create custom blend modes for 2D rendering +* Added SDL_HasNEON() which returns whether the CPU has NEON instruction support +* Added support for many game controllers, including the Nintendo Switch Pro Controller +* Added support for inverted axes and separate axis directions in game controller mappings +* Added functions to return information about a joystick before it's opened: + SDL_JoystickGetDeviceVendor() + SDL_JoystickGetDeviceProduct() + SDL_JoystickGetDeviceProductVersion() + SDL_JoystickGetDeviceType() + SDL_JoystickGetDeviceInstanceID() +* Added functions to return information about an open joystick: + SDL_JoystickGetVendor() + SDL_JoystickGetProduct() + SDL_JoystickGetProductVersion() + SDL_JoystickGetType() + SDL_JoystickGetAxisInitialState() +* Added functions to return information about an open game controller: + SDL_GameControllerGetVendor() + SDL_GameControllerGetProduct() + SDL_GameControllerGetProductVersion() +* Added SDL_GameControllerNumMappings() and SDL_GameControllerMappingForIndex() to be able to enumerate the built-in game controller mappings +* Added SDL_LoadFile() and SDL_LoadFile_RW() to load a file into memory +* Added SDL_DuplicateSurface() to make a copy of a surface +* Added an experimental JACK audio driver +* Implemented non-power-of-two audio resampling, optionally using libsamplerate to perform the resampling +* Added the hint SDL_HINT_AUDIO_RESAMPLING_MODE to control the quality of resampling +* Added the hint SDL_HINT_RENDER_LOGICAL_SIZE_MODE to control the scaling policy for SDL_RenderSetLogicalSize(): + "0" or "letterbox" - Uses letterbox/sidebars to fit the entire rendering on screen (the default) + "1" or "overscan" - Will zoom the rendering so it fills the entire screen, allowing edges to be drawn offscreen +* Added the hints SDL_HINT_MOUSE_NORMAL_SPEED_SCALE and SDL_HINT_MOUSE_RELATIVE_SPEED_SCALE to scale the mouse speed when being read from raw mouse input +* Added the hint SDL_HINT_TOUCH_MOUSE_EVENTS to control whether SDL will synthesize mouse events from touch events + +Windows: +* The new default audio driver on Windows is WASAPI and supports hot-plugging devices and changing the default audio device +* The old XAudio2 audio driver is deprecated and will be removed in the next release +* Added hints SDL_HINT_WINDOWS_INTRESOURCE_ICON and SDL_HINT_WINDOWS_INTRESOURCE_ICON_SMALL to specify a custom icon resource ID for SDL windows +* The hint SDL_HINT_WINDOWS_DISABLE_THREAD_NAMING is now on by default for compatibility with .NET languages and various Windows debuggers +* Updated the GUID format for game controller mappings, older mappings will be automatically converted on load +* Implemented the SDL_WINDOW_ALWAYS_ON_TOP flag on Windows + +Linux: +* Added an experimental KMS/DRM video driver for embedded development + +iOS: +* Added a hint SDL_HINT_AUDIO_CATEGORY to control the audio category, determining whether the phone mute switch affects the audio + +--------------------------------------------------------------------------- +2.0.5: +--------------------------------------------------------------------------- + +General: +* Implemented audio capture support for some platforms +* Added SDL_DequeueAudio() to retrieve audio when buffer queuing is turned on for audio capture +* Added events for dragging and dropping text +* Added events for dragging and dropping multiple items +* By default the click raising a window will not be delivered to the SDL application. You can set the hint SDL_HINT_MOUSE_FOCUS_CLICKTHROUGH to "1" to allow that click through to the window. +* Saving a surface with an alpha channel as a BMP will use a newer BMP format that supports alpha information. You can set the hint SDL_HINT_BMP_SAVE_LEGACY_FORMAT to "1" to use the old format. +* Added SDL_GetHintBoolean() to get the boolean value of a hint +* Added SDL_RenderSetIntegerScale() to set whether to smoothly scale or use integral multiples of the viewport size when scaling the rendering output +* Added SDL_CreateRGBSurfaceWithFormat() and SDL_CreateRGBSurfaceWithFormatFrom() to create an SDL surface with a specific pixel format +* Added SDL_GetDisplayUsableBounds() which returns the area usable for windows. For example, on Mac OS X, this subtracts the area occupied by the menu bar and dock. +* Added SDL_GetWindowBordersSize() which returns the size of the window's borders around the client area +* Added a window event SDL_WINDOWEVENT_HIT_TEST when a window had a hit test that wasn't SDL_HITTEST_NORMAL (e.g. in the title bar or window frame) +* Added SDL_SetWindowResizable() to change whether a window is resizable +* Added SDL_SetWindowOpacity() and SDL_GetWindowOpacity() to affect the window transparency +* Added SDL_SetWindowModalFor() to set a window as modal for another window +* Added support for AUDIO_U16LSB and AUDIO_U16MSB to SDL_MixAudioFormat() +* Fixed flipped images when reading back from target textures when using the OpenGL renderer +* Fixed texture color modulation with SDL_BLENDMODE_NONE when using the OpenGL renderer +* Fixed bug where the alpha value of colorkeys was ignored when blitting in some cases + +Windows: +* Added a hint SDL_HINT_WINDOWS_DISABLE_THREAD_NAMING to prevent SDL from raising a debugger exception to name threads. This exception can cause problems with .NET applications when running under a debugger. +* The hint SDL_HINT_THREAD_STACK_SIZE is now supported on Windows +* Fixed XBox controller triggers automatically being pulled at startup +* The first icon from the executable is used as the default window icon at runtime +* Fixed SDL log messages being printed twice if SDL was built with C library support +* Reset dead keys when the SDL window loses focus, so dead keys pressed in SDL applications don't affect text input into other applications. + +Mac OS X: +* Fixed selecting the dummy video driver +* The caps lock key now generates a pressed event when pressed and a released event when released, instead of a press/release event pair when pressed. +* Fixed mouse wheel events on Mac OS X 10.12 +* The audio driver has been updated to use AVFoundation for better compatibility with newer versions of Mac OS X + +Linux: +* Added support for the Fcitx IME +* Added a window event SDL_WINDOWEVENT_TAKE_FOCUS when a window manager asks the SDL window whether it wants to take focus. +* Refresh rates are now rounded instead of truncated, e.g. 59.94 Hz is rounded up to 60 Hz instead of 59. +* Added initial support for touchscreens on Raspberry Pi + +OpenBSD: +* SDL_GetBasePath() is now implemented on OpenBSD + +iOS: +* Added support for dynamically loaded objects on iOS 8 and newer + +tvOS: +* Added support for Apple TV +* Added a hint SDL_HINT_APPLE_TV_REMOTE_ALLOW_ROTATION to control whether he Apple TV remote's joystick axes will automatically match the rotation of the remote. + +Android: +* Fixed SDL not resizing window when Android screen resolution changes +* Corrected the joystick Z axis reporting for the accelerometer + +Emscripten (running in a web browser): +* Many bug fixes and improvements + + +--------------------------------------------------------------------------- +2.0.4: +--------------------------------------------------------------------------- + +General: +* Added support for web applications using Emscripten, see docs/README-emscripten.md for more information +* Added support for web applications using Native Client (NaCl), see docs/README-nacl.md for more information +* Added an API to queue audio instead of using the audio callback: + SDL_QueueAudio(), SDL_GetQueuedAudioSize(), SDL_ClearQueuedAudio() +* Added events for audio device hot plug support: + SDL_AUDIODEVICEADDED, SDL_AUDIODEVICEREMOVED +* Added SDL_PointInRect() +* Added SDL_HasAVX2() to detect CPUs with AVX2 support +* Added SDL_SetWindowHitTest() to let apps treat parts of their SDL window like traditional window decorations (drag areas, resize areas) +* Added SDL_GetGrabbedWindow() to get the window that currently has input grab, if any +* Added SDL_RenderIsClipEnabled() to tell whether clipping is currently enabled in a renderer +* Added SDL_CaptureMouse() to capture the mouse to get events while the mouse is not in your window +* Added SDL_WarpMouseGlobal() to warp the mouse cursor in global screen space +* Added SDL_GetGlobalMouseState() to get the current mouse state outside of an SDL window +* Added a direction field to mouse wheel events to tell whether they are flipped (natural) or not +* Added GL_CONTEXT_RELEASE_BEHAVIOR GL attribute (maps to [WGL|GLX]_ARB_context_flush_control extension) +* Added EGL_KHR_create_context support to allow OpenGL ES version selection on some platforms +* Added NV12 and NV21 YUV texture support for OpenGL and OpenGL ES 2.0 renderers +* Added a Vivante video driver that is used on various SoC platforms +* Added an event SDL_RENDER_DEVICE_RESET that is sent from the D3D renderers when the D3D device is lost, and from Android's event loop when the GLES context had to be recreated +* Added a hint SDL_HINT_NO_SIGNAL_HANDLERS to disable SDL's built in signal handling +* Added a hint SDL_HINT_THREAD_STACK_SIZE to set the stack size of SDL's threads +* Added SDL_sqrtf(), SDL_tan(), and SDL_tanf() to the stdlib routines +* Improved support for WAV and BMP files with unusual chunks in them +* Renamed SDL_assert_data to SDL_AssertData and SDL_assert_state to SDL_AssertState +* Added a hint SDL_HINT_WINDOW_FRAME_USABLE_WHILE_CURSOR_HIDDEN to prevent window interaction while cursor is hidden +* Added SDL_GetDisplayDPI() to get the DPI information for a display +* Added SDL_JoystickCurrentPowerLevel() to get the battery level of a joystick +* Added SDL_JoystickFromInstanceID(), as a helper function, to get the SDL_Joystick* that an event is referring to. +* Added SDL_GameControllerFromInstanceID(), as a helper function, to get the SDL_GameController* that an event is referring to. + +Windows: +* Added support for Windows Phone 8.1 and Windows 10/UWP (Universal Windows Platform) +* Timer resolution is now 1 ms by default, adjustable with the SDL_HINT_TIMER_RESOLUTION hint +* SDLmain no longer depends on the C runtime, so you can use the same .lib in both Debug and Release builds +* Added SDL_SetWindowsMessageHook() to set a function to be called for every windows message before TranslateMessage() +* Added a hint SDL_HINT_WINDOWS_ENABLE_MESSAGELOOP to control whether SDL_PumpEvents() processes the Windows message loop +* You can distinguish between real mouse and touch events by looking for SDL_TOUCH_MOUSEID in the mouse event "which" field +* SDL_SysWMinfo now contains the window HDC +* Added support for Unicode command line options +* Prevent beeping when Alt-key combos are pressed +* SDL_SetTextInputRect() re-positions the OS-rendered IME +* Added a hint SDL_HINT_WINDOWS_NO_CLOSE_ON_ALT_F4 to prevent generating SDL_WINDOWEVENT_CLOSE events when Alt-F4 is pressed +* Added a hint SDL_HINT_XINPUT_USE_OLD_JOYSTICK_MAPPING to use the old axis and button mapping for XInput devices (deprecated) + +Mac OS X: +* Implemented drag-and-drop support +* Improved joystick hot-plug detection +* The SDL_WINDOWEVENT_EXPOSED window event is triggered in the appropriate situations +* Fixed relative mouse mode when the application loses/regains focus +* Fixed bugs related to transitioning to and from Spaces-aware fullscreen-desktop mode +* Fixed the refresh rate of display modes +* SDL_SysWMInfo is now ARC-compatible +* Added a hint SDL_HINT_MAC_BACKGROUND_APP to prevent forcing the application to become a foreground process + +Linux: +* Enabled building with Mir and Wayland support by default. +* Added IBus IME support +* Added a hint SDL_HINT_IME_INTERNAL_EDITING to control whether IBus should handle text editing internally instead of sending SDL_TEXTEDITING events +* Added a hint SDL_HINT_VIDEO_X11_NET_WM_PING to allow disabling _NET_WM_PING protocol handling in SDL_CreateWindow() +* Added support for multiple audio devices when using Pulseaudio +* Fixed duplicate mouse events when using relative mouse motion + +iOS: +* Added support for iOS 8 +* The SDL_WINDOW_ALLOW_HIGHDPI window flag now enables high-dpi support, and SDL_GL_GetDrawableSize() or SDL_GetRendererOutputSize() gets the window resolution in pixels +* SDL_GetWindowSize() and display mode sizes are in the "DPI-independent points" / "screen coordinates" coordinate space rather than pixels (matches OS X behavior) +* Added native resolution support for the iPhone 6 Plus +* Added support for MFi game controllers +* Added support for the hint SDL_HINT_ACCELEROMETER_AS_JOYSTICK +* Added sRGB OpenGL ES context support on iOS 7+ +* Added support for SDL_DisableScreenSaver(), SDL_EnableScreenSaver() and the hint SDL_HINT_VIDEO_ALLOW_SCREENSAVER +* SDL_SysWMinfo now contains the OpenGL ES framebuffer and color renderbuffer objects used by the window's active GLES view +* Fixed various rotation and orientation issues +* Fixed memory leaks + +Android: +* Added a hint SDL_HINT_ANDROID_SEPARATE_MOUSE_AND_TOUCH to prevent mouse events from being registered as touch events +* Added hints SDL_HINT_ANDROID_APK_EXPANSION_MAIN_FILE_VERSION and SDL_HINT_ANDROID_APK_EXPANSION_PATCH_FILE_VERSION +* Added support for SDL_DisableScreenSaver(), SDL_EnableScreenSaver() and the hint SDL_HINT_VIDEO_ALLOW_SCREENSAVER +* Added support for SDL_ShowMessageBox() and SDL_ShowSimpleMessageBox() + +Raspberry Pi: +* Added support for the Raspberry Pi 2 + + +--------------------------------------------------------------------------- +2.0.3: +--------------------------------------------------------------------------- + +Mac OS X: +* Fixed creating an OpenGL context by default on Mac OS X 10.6 + + +--------------------------------------------------------------------------- +2.0.2: +--------------------------------------------------------------------------- +General: +* Added SDL_GL_ResetAttributes() to reset OpenGL attributes to default values +* Added an API to load a database of game controller mappings from a file: + SDL_GameControllerAddMappingsFromFile(), SDL_GameControllerAddMappingsFromRW() +* Added game controller mappings for the PS4 and OUYA controllers +* Added SDL_GetDefaultAssertionHandler() and SDL_GetAssertionHandler() +* Added SDL_DetachThread() +* Added SDL_HasAVX() to determine if the CPU has AVX features +* Added SDL_vsscanf(), SDL_acos(), and SDL_asin() to the stdlib routines +* EGL can now create/manage OpenGL and OpenGL ES 1.x/2.x contexts, and share + them using SDL_GL_SHARE_WITH_CURRENT_CONTEXT +* Added a field "clicks" to the mouse button event which records whether the event is a single click, double click, etc. +* The screensaver is now disabled by default, and there is a hint SDL_HINT_VIDEO_ALLOW_SCREENSAVER that can change that behavior. +* Added a hint SDL_HINT_MOUSE_RELATIVE_MODE_WARP to specify whether mouse relative mode should be emulated using mouse warping. +* testgl2 does not need to link with libGL anymore +* Added testgles2 test program to demonstrate working with OpenGL ES 2.0 +* Added controllermap test program to visually map a game controller + +Windows: +* Support for OpenGL ES 2.x contexts using either WGL or EGL (natively via + the driver or emulated through ANGLE) +* Added a hint SDL_HINT_VIDEO_WIN_D3DCOMPILER to specify which D3D shader compiler to use for OpenGL ES 2 support through ANGLE +* Added a hint SDL_HINT_VIDEO_WINDOW_SHARE_PIXEL_FORMAT that is useful when creating multiple windows that should share the same OpenGL context. +* Added an event SDL_RENDER_TARGETS_RESET that is sent when D3D9 render targets are reset after the device has been restored. + +Mac OS X: +* Added a hint SDL_HINT_MAC_CTRL_CLICK_EMULATE_RIGHT_CLICK to control whether Ctrl+click should be treated as a right click on Mac OS X. This is off by default. + +Linux: +* Fixed fullscreen and focused behavior when receiving NotifyGrab events +* Added experimental Wayland and Mir support, disabled by default + +Android: +* Joystick support (minimum SDK version required to build SDL is now 12, + the required runtime version remains at 10, but on such devices joystick + support won't be available). +* Hotplugging support for joysticks +* Added a hint SDL_HINT_ACCELEROMETER_AS_JOYSTICK to control whether the accelerometer should be listed as a 3 axis joystick, which it will by default. + + +--------------------------------------------------------------------------- +2.0.1: +--------------------------------------------------------------------------- + +General: +* Added an API to get common filesystem paths in SDL_filesystem.h: + SDL_GetBasePath(), SDL_GetPrefPath() +* Added an API to do optimized YV12 and IYUV texture updates: + SDL_UpdateYUVTexture() +* Added an API to get the amount of RAM on the system: + SDL_GetSystemRAM() +* Added a macro to perform timestamp comparisons with SDL_GetTicks(): + SDL_TICKS_PASSED() +* Dramatically improved OpenGL ES 2.0 rendering performance +* Added OpenGL attribute SDL_GL_FRAMEBUFFER_SRGB_CAPABLE + +Windows: +* Created a static library configuration for the Visual Studio 2010 project +* Added a hint to create the Direct3D device with support for multi-threading: + SDL_HINT_RENDER_DIRECT3D_THREADSAFE +* Added a function to get the D3D9 adapter index for a display: + SDL_Direct3D9GetAdapterIndex() +* Added a function to get the D3D9 device for a D3D9 renderer: + SDL_RenderGetD3D9Device() +* Fixed building SDL with the mingw32 toolchain (mingw-w64 is preferred) +* Fixed crash when using two XInput controllers at the same time +* Fixed detecting a mixture of XInput and DirectInput controllers +* Fixed clearing a D3D render target larger than the window +* Improved support for format specifiers in SDL_snprintf() + +Mac OS X: +* Added support for retina displays: + Create your window with the SDL_WINDOW_ALLOW_HIGHDPI flag, and then use SDL_GL_GetDrawableSize() to find the actual drawable size. You are responsible for scaling mouse and drawing coordinates appropriately. +* Fixed mouse warping in fullscreen mode +* Right mouse click is emulated by holding the Ctrl key while left clicking + +Linux: +* Fixed float audio support with the PulseAudio driver +* Fixed missing line endpoints in the OpenGL renderer on some drivers +* X11 symbols are no longer defined to avoid collisions when linking statically + +iOS: +* Fixed status bar visibility on iOS 7 +* Flipped the accelerometer Y axis to match expected values + +Android: +IMPORTANT: You MUST get the updated SDLActivity.java to match C code +* Moved EGL initialization to native code +* Fixed the accelerometer axis rotation relative to the device rotation +* Fixed race conditions when handling the EGL context on pause/resume +* Touch devices are available for enumeration immediately after init + +Raspberry Pi: +* Added support for the Raspberry Pi, see README-raspberrypi.txt for details diff --git a/libs/SDL2/docs/README-android.md b/libs/SDL2/docs/README-android.md index a4b38210f..747bf72d9 100644 --- a/libs/SDL2/docs/README-android.md +++ b/libs/SDL2/docs/README-android.md @@ -1,16 +1,23 @@ -Android +Android ================================================================================ -Requirements: +Matt Styles wrote a tutorial on building SDL for Android with Visual Studio: +http://trederia.blogspot.de/2017/03/building-sdl2-for-android-with-visual.html -Android SDK (version 12 or later) -http://developer.android.com/sdk/index.html +The rest of this README covers the old style build process. + +================================================================================ + Requirements +================================================================================ + +Android SDK (version 16 or later) +https://developer.android.com/sdk/index.html Android NDK r7 or later -http://developer.android.com/tools/sdk/ndk/index.html +https://developer.android.com/tools/sdk/ndk/index.html Minimum API level supported by SDL: 10 (Android 2.3.3) -Joystick support is available for API level >=12 devices. +Joystick support is available for API level >= 12 devices. ================================================================================ How the port works @@ -67,13 +74,13 @@ For more complex projects, follow these instructions: 1. Copy the android-project directory wherever you want to keep your projects and rename it to the name of your project. -2. Move or symlink this SDL directory into the /jni directory -3. Edit /jni/src/Android.mk to include your source files +2. Move or symlink this SDL directory into the "/jni" directory +3. Edit "/jni/src/Android.mk" to include your source files 4. Run 'ndk-build' (a script provided by the NDK). This compiles the C source If you want to use the Eclipse IDE, skip to the Eclipse section below. -5. Create /local.properties and use that to point to the Android SDK directory, by writing a line with the following form: +5. Create "/local.properties" and use that to point to the Android SDK directory, by writing a line with the following form: sdk.dir=PATH_TO_ANDROID_SDK @@ -121,15 +128,15 @@ This build uses the Android NDK module system. Instructions: 1. Copy the android-project directory wherever you want to keep your projects and rename it to the name of your project. -2. Rename /jni/src/Android_static.mk to /jni/src/Android.mk +2. Rename "/jni/src/Android_static.mk" to "/jni/src/Android.mk" (overwrite the existing one) -3. Edit /jni/src/Android.mk to include your source files +3. Edit "/jni/src/Android.mk" to include your source files 4. create and export an environment variable named NDK_MODULE_PATH that points to the parent directory of this SDL directory. e.g.: export NDK_MODULE_PATH="$PWD"/.. -5. Edit /src/org/libsdl/app/SDLActivity.java and remove the call to +5. Edit "/src/org/libsdl/app/SDLActivity.java" and remove the call to System.loadLibrary("SDL2"). 6. Run 'ndk-build' (a script provided by the NDK). This compiles the C source @@ -229,7 +236,7 @@ under iOS, if the OS can not restore your GL context it will just kill your app) ================================================================================ For a quick tour on how Linux native threads interoperate with the Java VM, take -a look here: http://developer.android.com/guide/practices/jni.html +a look here: https://developer.android.com/guide/practices/jni.html If you want to use threads in your SDL app, it's strongly recommended that you do so by creating them using SDL functions. This way, the required attach/detach @@ -265,7 +272,7 @@ The best place to start is with docs/OVERVIEW.TXT ================================================================================ First make sure that you've installed Eclipse and the Android extensions as described here: - http://developer.android.com/tools/sdk/eclipse-adt.html + https://developer.android.com/tools/sdk/eclipse-adt.html Once you've copied the SDL android project and customized it, you can create an Eclipse project from it: * File -> New -> Other @@ -281,7 +288,7 @@ Once you've copied the SDL android project and customized it, you can create an ================================================================================ There are some good tips and tricks for getting the most out of the -emulator here: http://developer.android.com/tools/devices/emulator.html +emulator here: https://developer.android.com/tools/devices/emulator.html Especially useful is the info on setting up OpenGL ES 2.0 emulation. @@ -419,6 +426,19 @@ When you're done instrumenting with valgrind, you can disable the wrapper: adb shell setprop wrap.org.libsdl.app "" +================================================================================ + Graphics debugging +================================================================================ + +If you are developing on a compatible Tegra-based tablet, NVidia provides +Tegra Graphics Debugger at their website. Because SDL2 dynamically loads EGL +and GLES libraries, you must follow their instructions for installing the +interposer library on a rooted device. The non-rooted instructions are not +compatible with applications that use SDL2 for video. + +The Tegra Graphics Debugger is available from NVidia here: +https://developer.nvidia.com/tegra-graphics-debugger + ================================================================================ Why is API level 10 the minimum required? ================================================================================ @@ -433,7 +453,7 @@ Support for native OpenGL ES and ES2 applications was introduced in the NDK for API level 4 and 8. EGL was made a stable API in the NDK for API level 9, which has since then been obsoleted, with the recommendation to developers to bump the required API level to 10. -As of this writing, according to http://developer.android.com/about/dashboards/index.html +As of this writing, according to https://developer.android.com/about/dashboards/index.html about 90% of the Android devices accessing Google Play support API level 10 or higher (March 2013). diff --git a/libs/SDL2/docs/README-cmake.md b/libs/SDL2/docs/README-cmake.md index 5b440c546..2ce11d7a0 100644 --- a/libs/SDL2/docs/README-cmake.md +++ b/libs/SDL2/docs/README-cmake.md @@ -1,6 +1,6 @@ -CMake +CMake ================================================================================ -(www.cmake.org) +(www.cmake.org) SDL's build system was traditionally based on autotools. Over time, this approach has suffered from several issues across the different supported diff --git a/libs/SDL2/docs/README-directfb.md b/libs/SDL2/docs/README-directfb.md index 7df8bb864..eeac42806 100644 --- a/libs/SDL2/docs/README-directfb.md +++ b/libs/SDL2/docs/README-directfb.md @@ -1,5 +1,5 @@ DirectFB -======== +======== Supports: diff --git a/libs/SDL2/docs/README-dynapi.md b/libs/SDL2/docs/README-dynapi.md index bfaecb344..96da4b8f2 100644 --- a/libs/SDL2/docs/README-dynapi.md +++ b/libs/SDL2/docs/README-dynapi.md @@ -1,130 +1,130 @@ -Dynamic API -================================================================================ -Originally posted by Ryan at: - https://plus.google.com/103391075724026391227/posts/TB8UfnDYu4U - -Background: - -- The Steam Runtime has (at least in theory) a really kick-ass build of SDL2, - but developers are shipping their own SDL2 with individual Steam games. - These games might stop getting updates, but a newer SDL2 might be needed later. - Certainly we'll always be fixing bugs in SDL, even if a new video target isn't - ever needed, and these fixes won't make it to a game shipping its own SDL. -- Even if we replace the SDL2 in those games with a compatible one, that is to - say, edit a developer's Steam depot (yuck!), there are developers that are - statically linking SDL2 that we can't do this for. We can't even force the - dynamic loader to ignore their SDL2 in this case, of course. -- If you don't ship an SDL2 with the game in some form, people that disabled the - Steam Runtime, or just tried to run the game from the command line instead of - Steam might find themselves unable to run the game, due to a missing dependency. -- If you want to ship on non-Steam platforms like GOG or Humble Bundle, or target - generic Linux boxes that may or may not have SDL2 installed, you have to ship - the library or risk a total failure to launch. So now, you might have to have - a non-Steam build plus a Steam build (that is, one with and one without SDL2 - included), which is inconvenient if you could have had one universal build - that works everywhere. -- We like the zlib license, but the biggest complaint from the open source - community about the license change is the static linking. The LGPL forced this - as a legal, not technical issue, but zlib doesn't care. Even those that aren't - concerned about the GNU freedoms found themselves solving the same problems: - swapping in a newer SDL to an older game often times can save the day. - Static linking stops this dead. - -So here's what we did: - -SDL now has, internally, a table of function pointers. So, this is what SDL_Init -now looks like: - - UInt32 SDL_Init(Uint32 flags) - { - return jump_table.SDL_Init(flags); - } - -Except that is all done with a bunch of macro magic so we don't have to maintain -every one of these. - -What is jump_table.SDL_init()? Eventually, that's a function pointer of the real -SDL_Init() that you've been calling all this time. But at startup, it looks more -like this: - - Uint32 SDL_Init_DEFAULT(Uint32 flags) - { - SDL_InitDynamicAPI(); - return jump_table.SDL_Init(flags); - } - -SDL_InitDynamicAPI() fills in jump_table with all the actual SDL function -pointers, which means that this _DEFAULT function never gets called again. -First call to any SDL function sets the whole thing up. - -So you might be asking, what was the value in that? Isn't this what the operating -system's dynamic loader was supposed to do for us? Yes, but now we've got this -level of indirection, we can do things like this: - - export SDL_DYNAMIC_API=/my/actual/libSDL-2.0.so.0 - ./MyGameThatIsStaticallyLinkedToSDL2 - -And now, this game that is staticallly linked to SDL, can still be overridden -with a newer, or better, SDL. The statically linked one will only be used as -far as calling into the jump table in this case. But in cases where no override -is desired, the statically linked version will provide its own jump table, -and everyone is happy. - -So now: -- Developers can statically link SDL, and users can still replace it. - (We'd still rather you ship a shared library, though!) -- Developers can ship an SDL with their game, Valve can override it for, say, - new features on SteamOS, or distros can override it for their own needs, - but it'll also just work in the default case. -- Developers can ship the same package to everyone (Humble Bundle, GOG, etc), - and it'll do the right thing. -- End users (and Valve) can update a game's SDL in almost any case, - to keep abandoned games running on newer platforms. -- Everyone develops with SDL exactly as they have been doing all along. - Same headers, same ABI. Just get the latest version to enable this magic. - - -A little more about SDL_InitDynamicAPI(): - -Internally, InitAPI does some locking to make sure everything waits until a -single thread initializes everything (although even SDL_CreateThread() goes -through here before spinning a thread, too), and then decides if it should use -an external SDL library. If not, it sets up the jump table using the current -SDL's function pointers (which might be statically linked into a program, or in -a shared library of its own). If so, it loads that library and looks for and -calls a single function: - - SInt32 SDL_DYNAPI_entry(Uint32 version, void *table, Uint32 tablesize); - -That function takes a version number (more on that in a moment), the address of -the jump table, and the size, in bytes, of the table. -Now, we've got policy here: this table's layout never changes; new stuff gets -added to the end. Therefore SDL_DYNAPI_entry() knows that it can provide all -the needed functions if tablesize <= sizeof its own jump table. If tablesize is -bigger (say, SDL 2.0.4 is trying to load SDL 2.0.3), then we know to abort, but -if it's smaller, we know we can provide the entire API that the caller needs. - -The version variable is a failsafe switch. -Right now it's always 1. This number changes when there are major API changes -(so we know if the tablesize might be smaller, or entries in it have changed). -Right now SDL_DYNAPI_entry gives up if the version doesn't match, but it's not -inconceivable to have a small dispatch library that only supplies this one -function and loads different, otherwise-incompatible SDL libraries and has the -right one initialize the jump table based on the version. For something that -must generically catch lots of different versions of SDL over time, like the -Steam Client, this isn't a bad option. - -Finally, I'm sure some people are reading this and thinking, -"I don't want that overhead in my project!" -To which I would point out that the extra function call through the jump table -probably wouldn't even show up in a profile, but lucky you: this can all be -disabled. You can build SDL without this if you absolutely must, but we would -encourage you not to do that. However, on heavily locked down platforms like -iOS, or maybe when debugging, it makes sense to disable it. The way this is -designed in SDL, you just have to change one #define, and the entire system -vaporizes out, and SDL functions exactly like it always did. Most of it is -macro magic, so the system is contained to one C file and a few headers. -However, this is on by default and you have to edit a header file to turn it -off. Our hopes is that if we make it easy to disable, but not too easy, -everyone will ultimately be able to get what they want, but we've gently -nudged everyone towards what we think is the best solution. +Dynamic API +================================================================================ +Originally posted by Ryan at: + https://plus.google.com/103391075724026391227/posts/TB8UfnDYu4U + +Background: + +- The Steam Runtime has (at least in theory) a really kick-ass build of SDL2, + but developers are shipping their own SDL2 with individual Steam games. + These games might stop getting updates, but a newer SDL2 might be needed later. + Certainly we'll always be fixing bugs in SDL, even if a new video target isn't + ever needed, and these fixes won't make it to a game shipping its own SDL. +- Even if we replace the SDL2 in those games with a compatible one, that is to + say, edit a developer's Steam depot (yuck!), there are developers that are + statically linking SDL2 that we can't do this for. We can't even force the + dynamic loader to ignore their SDL2 in this case, of course. +- If you don't ship an SDL2 with the game in some form, people that disabled the + Steam Runtime, or just tried to run the game from the command line instead of + Steam might find themselves unable to run the game, due to a missing dependency. +- If you want to ship on non-Steam platforms like GOG or Humble Bundle, or target + generic Linux boxes that may or may not have SDL2 installed, you have to ship + the library or risk a total failure to launch. So now, you might have to have + a non-Steam build plus a Steam build (that is, one with and one without SDL2 + included), which is inconvenient if you could have had one universal build + that works everywhere. +- We like the zlib license, but the biggest complaint from the open source + community about the license change is the static linking. The LGPL forced this + as a legal, not technical issue, but zlib doesn't care. Even those that aren't + concerned about the GNU freedoms found themselves solving the same problems: + swapping in a newer SDL to an older game often times can save the day. + Static linking stops this dead. + +So here's what we did: + +SDL now has, internally, a table of function pointers. So, this is what SDL_Init +now looks like: + + UInt32 SDL_Init(Uint32 flags) + { + return jump_table.SDL_Init(flags); + } + +Except that is all done with a bunch of macro magic so we don't have to maintain +every one of these. + +What is jump_table.SDL_init()? Eventually, that's a function pointer of the real +SDL_Init() that you've been calling all this time. But at startup, it looks more +like this: + + Uint32 SDL_Init_DEFAULT(Uint32 flags) + { + SDL_InitDynamicAPI(); + return jump_table.SDL_Init(flags); + } + +SDL_InitDynamicAPI() fills in jump_table with all the actual SDL function +pointers, which means that this _DEFAULT function never gets called again. +First call to any SDL function sets the whole thing up. + +So you might be asking, what was the value in that? Isn't this what the operating +system's dynamic loader was supposed to do for us? Yes, but now we've got this +level of indirection, we can do things like this: + + export SDL_DYNAMIC_API=/my/actual/libSDL-2.0.so.0 + ./MyGameThatIsStaticallyLinkedToSDL2 + +And now, this game that is staticallly linked to SDL, can still be overridden +with a newer, or better, SDL. The statically linked one will only be used as +far as calling into the jump table in this case. But in cases where no override +is desired, the statically linked version will provide its own jump table, +and everyone is happy. + +So now: +- Developers can statically link SDL, and users can still replace it. + (We'd still rather you ship a shared library, though!) +- Developers can ship an SDL with their game, Valve can override it for, say, + new features on SteamOS, or distros can override it for their own needs, + but it'll also just work in the default case. +- Developers can ship the same package to everyone (Humble Bundle, GOG, etc), + and it'll do the right thing. +- End users (and Valve) can update a game's SDL in almost any case, + to keep abandoned games running on newer platforms. +- Everyone develops with SDL exactly as they have been doing all along. + Same headers, same ABI. Just get the latest version to enable this magic. + + +A little more about SDL_InitDynamicAPI(): + +Internally, InitAPI does some locking to make sure everything waits until a +single thread initializes everything (although even SDL_CreateThread() goes +through here before spinning a thread, too), and then decides if it should use +an external SDL library. If not, it sets up the jump table using the current +SDL's function pointers (which might be statically linked into a program, or in +a shared library of its own). If so, it loads that library and looks for and +calls a single function: + + SInt32 SDL_DYNAPI_entry(Uint32 version, void *table, Uint32 tablesize); + +That function takes a version number (more on that in a moment), the address of +the jump table, and the size, in bytes, of the table. +Now, we've got policy here: this table's layout never changes; new stuff gets +added to the end. Therefore SDL_DYNAPI_entry() knows that it can provide all +the needed functions if tablesize <= sizeof its own jump table. If tablesize is +bigger (say, SDL 2.0.4 is trying to load SDL 2.0.3), then we know to abort, but +if it's smaller, we know we can provide the entire API that the caller needs. + +The version variable is a failsafe switch. +Right now it's always 1. This number changes when there are major API changes +(so we know if the tablesize might be smaller, or entries in it have changed). +Right now SDL_DYNAPI_entry gives up if the version doesn't match, but it's not +inconceivable to have a small dispatch library that only supplies this one +function and loads different, otherwise-incompatible SDL libraries and has the +right one initialize the jump table based on the version. For something that +must generically catch lots of different versions of SDL over time, like the +Steam Client, this isn't a bad option. + +Finally, I'm sure some people are reading this and thinking, +"I don't want that overhead in my project!" +To which I would point out that the extra function call through the jump table +probably wouldn't even show up in a profile, but lucky you: this can all be +disabled. You can build SDL without this if you absolutely must, but we would +encourage you not to do that. However, on heavily locked down platforms like +iOS, or maybe when debugging, it makes sense to disable it. The way this is +designed in SDL, you just have to change one #define, and the entire system +vaporizes out, and SDL functions exactly like it always did. Most of it is +macro magic, so the system is contained to one C file and a few headers. +However, this is on by default and you have to edit a header file to turn it +off. Our hopes is that if we make it easy to disable, but not too easy, +everyone will ultimately be able to get what they want, but we've gently +nudged everyone towards what we think is the best solution. diff --git a/libs/SDL2/docs/README-emscripten.md b/libs/SDL2/docs/README-emscripten.md index 62012db72..b535cc60a 100644 --- a/libs/SDL2/docs/README-emscripten.md +++ b/libs/SDL2/docs/README-emscripten.md @@ -1,37 +1,35 @@ -Emscripten -================================================================================ - -Build: - - $ mkdir build - $ cd build - $ emconfigure ../configure --host=asmjs-unknown-emscripten --disable-assembly --disable-threads --enable-cpuinfo=false CFLAGS="-O2" - $ emmake make - -Or with cmake: - - $ mkdir build - $ cd build - $ emcmake cmake .. - $ emmake make - -To build one of the tests: - - $ cd test/ - $ emcc -O2 --js-opts 0 -g4 testdraw2.c -I../include ../build/.libs/libSDL2.a ../build/libSDL2_test.a -o a.html - -Uses GLES2 renderer or software - -tests: https://dl.dropboxusercontent.com/u/17360362/SDL2-em/index.html - -Some other SDL2 libraries can be easily built (assuming SDL2 is installed somewhere): - -SDL_mixer (http://www.libsdl.org/projects/SDL_mixer/): - - $ EMCONFIGURE_JS=1 emconfigure ../configure - build as usual... - -SDL_gfx (http://cms.ferzkopp.net/index.php/software/13-sdl-gfx): - - $ EMCONFIGURE_JS=1 emconfigure ../configure --disable-mmx - build as usual... +Emscripten +================================================================================ + +Build: + + $ mkdir build + $ cd build + $ emconfigure ../configure --host=asmjs-unknown-emscripten --disable-assembly --disable-threads --disable-cpuinfo CFLAGS="-O2" + $ emmake make + +Or with cmake: + + $ mkdir build + $ cd build + $ emcmake cmake .. + $ emmake make + +To build one of the tests: + + $ cd test/ + $ emcc -O2 --js-opts 0 -g4 testdraw2.c -I../include ../build/.libs/libSDL2.a ../build/libSDL2_test.a -o a.html + +Uses GLES2 renderer or software + +Some other SDL2 libraries can be easily built (assuming SDL2 is installed somewhere): + +SDL_mixer (http://www.libsdl.org/projects/SDL_mixer/): + + $ EMCONFIGURE_JS=1 emconfigure ../configure + build as usual... + +SDL_gfx (http://cms.ferzkopp.net/index.php/software/13-sdl-gfx): + + $ EMCONFIGURE_JS=1 emconfigure ../configure --disable-mmx + build as usual... diff --git a/libs/SDL2/docs/README-hg.md b/libs/SDL2/docs/README-hg.md index 6e18bab0a..5f3d25922 100644 --- a/libs/SDL2/docs/README-hg.md +++ b/libs/SDL2/docs/README-hg.md @@ -1,19 +1,16 @@ -Mercurial -========= - +Mercurial +========= + The latest development version of SDL is available via Mercurial. Mercurial allows you to get up-to-the-minute fixes and enhancements; as a developer works on a source tree, you can use "hg" to mirror that source tree instead of waiting for an official release. Please look -at the Mercurial website ( http://mercurial.selenic.com/ ) for more +at the Mercurial website ( https://www.mercurial-scm.org/ ) for more information on using hg, where you can also download software for Mac OS X, Windows, and Unix systems. hg clone http://hg.libsdl.org/SDL -If you are building SDL with an IDE, you will need to copy the file -include/SDL_config.h.default to include/SDL_config.h before building. - If you are building SDL via configure, you will need to run autogen.sh before running configure. diff --git a/libs/SDL2/docs/README-ios.md b/libs/SDL2/docs/README-ios.md index a0afffb1f..bf34fe482 100644 --- a/libs/SDL2/docs/README-ios.md +++ b/libs/SDL2/docs/README-ios.md @@ -8,6 +8,7 @@ Building the Simple DirectMedia Layer for iOS 5.1+ Requirements: Mac OS X 10.8 or later and the iOS 7+ SDK. Instructions: + 1. Open SDL.xcodeproj (located in Xcode-iOS/SDL) in Xcode. 2. Select your desired target, and hit build. @@ -74,17 +75,17 @@ By default SDL will not use the full pixel density of the screen on Retina/high-dpi capable devices. Use the SDL_WINDOW_ALLOW_HIGHDPI flag when creating your window to enable high-dpi support. -When high-dpi support is enabled, SDL_GetWindowSize and display mode sizes +When high-dpi support is enabled, SDL_GetWindowSize() and display mode sizes will still be in "screen coordinates" rather than pixels, but the window will have a much greater pixel density when the device supports it, and the -SDL_GL_GetDrawableSize or SDL_GetRendererOutputSize functions (depending on +SDL_GL_GetDrawableSize() or SDL_GetRendererOutputSize() functions (depending on whether raw OpenGL or the SDL_Render API is used) can be queried to determine the size in pixels of the drawable screen framebuffer. Some OpenGL ES functions such as glViewport expect sizes in pixels rather than sizes in screen coordinates. When doing 2D rendering with OpenGL ES, an orthographic projection matrix using the size in screen coordinates -(SDL_GetWindowSize) can be used in order to display content at the same scale +(SDL_GetWindowSize()) can be used in order to display content at the same scale no matter whether a Retina device is used or not. ============================================================================== @@ -156,7 +157,7 @@ Notes -- Accelerometer as Joystick SDL for iPhone supports polling the built in accelerometer as a joystick device. For an example on how to do this, see the accelerometer.c in the demos directory. -The main thing to note when using the accelerometer with SDL is that while the iPhone natively reports accelerometer as floating point values in units of g-force, SDL_JoystickGetAxis reports joystick values as signed integers. Hence, in order to convert between the two, some clamping and scaling is necessary on the part of the iPhone SDL joystick driver. To convert SDL_JoystickGetAxis reported values BACK to units of g-force, simply multiply the values by SDL_IPHONE_MAX_GFORCE / 0x7FFF. +The main thing to note when using the accelerometer with SDL is that while the iPhone natively reports accelerometer as floating point values in units of g-force, SDL_JoystickGetAxis() reports joystick values as signed integers. Hence, in order to convert between the two, some clamping and scaling is necessary on the part of the iPhone SDL joystick driver. To convert SDL_JoystickGetAxis() reported values BACK to units of g-force, simply multiply the values by SDL_IPHONE_MAX_GFORCE / 0x7FFF. ============================================================================== Notes -- OpenGL ES @@ -164,7 +165,7 @@ Notes -- OpenGL ES Your SDL application for iOS uses OpenGL ES for video by default. -OpenGL ES for iOS supports several display pixel formats, such as RGBA8 and RGB565, which provide a 32 bit and 16 bit color buffer respectively. By default, the implementation uses RGB565, but you may use RGBA8 by setting each color component to 8 bits in SDL_GL_SetAttribute. +OpenGL ES for iOS supports several display pixel formats, such as RGBA8 and RGB565, which provide a 32 bit and 16 bit color buffer respectively. By default, the implementation uses RGB565, but you may use RGBA8 by setting each color component to 8 bits in SDL_GL_SetAttribute(). If your application doesn't use OpenGL's depth buffer, you may find significant performance improvement by setting SDL_GL_DEPTH_SIZE to 0. @@ -172,11 +173,11 @@ Finally, if your application completely redraws the screen each frame, you may f OpenGL ES on iOS doesn't use the traditional system-framebuffer setup provided in other operating systems. Special care must be taken because of this: -- The drawable Renderbuffer must be bound to the GL_RENDERBUFFER binding point when SDL_GL_SwapWindow is called. -- The drawable Framebuffer Object must be bound while rendering to the screen and when SDL_GL_SwapWindow is called. +- The drawable Renderbuffer must be bound to the GL_RENDERBUFFER binding point when SDL_GL_SwapWindow() is called. +- The drawable Framebuffer Object must be bound while rendering to the screen and when SDL_GL_SwapWindow() is called. - If multisample antialiasing (MSAA) is used and glReadPixels is used on the screen, the drawable framebuffer must be resolved to the MSAA resolve framebuffer (via glBlitFramebuffer or glResolveMultisampleFramebufferAPPLE), and the MSAA resolve framebuffer must be bound to the GL_READ_FRAMEBUFFER binding point, before glReadPixels is called. -The above objects can be obtained via SDL_GetWindowWMInfo (in SDL_syswm.h). +The above objects can be obtained via SDL_GetWindowWMInfo() (in SDL_syswm.h). ============================================================================== Notes -- Keyboard @@ -219,7 +220,7 @@ Notes -- iPhone SDL limitations ============================================================================== Windows: - Full-size, single window applications only. You cannot create multi-window SDL applications for iPhone OS. The application window will fill the display, though you have the option of turning on or off the menu-bar (pass SDL_CreateWindow the flag SDL_WINDOW_BORDERLESS). + Full-size, single window applications only. You cannot create multi-window SDL applications for iPhone OS. The application window will fill the display, though you have the option of turning on or off the menu-bar (pass SDL_CreateWindow() the flag SDL_WINDOW_BORDERLESS). Textures: The optimal texture formats on iOS are SDL_PIXELFORMAT_ABGR8888, SDL_PIXELFORMAT_ABGR8888, SDL_PIXELFORMAT_BGR888, and SDL_PIXELFORMAT_RGB24 pixel formats. @@ -264,3 +265,20 @@ e.g. #endif return 0; } + +============================================================================== +Deploying to older versions of iOS +============================================================================== + +SDL supports deploying to older versions of iOS than are supported by the latest version of Xcode, all the way back to iOS 6.1 + +In order to do that you need to download an older version of Xcode: +https://developer.apple.com/download/more/?name=Xcode + +Open the package contents of the older Xcode and your newer version of Xcode and copy over the folders in Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/DeviceSupport + +Then open the file Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/SDKSettings.plist and add the versions of iOS you want to deploy to the key Root/DefaultProperties/DEPLOYMENT_TARGET_SUGGESTED_VALUES + +Open your project and set your deployment target to the desired version of iOS + +Finally, remove GameController from the list of frameworks linked by your application and edit the build settings for "Other Linker Flags" and add -weak_framework GameController diff --git a/libs/SDL2/docs/README-linux.md b/libs/SDL2/docs/README-linux.md index fddabf524..fdc06a05f 100644 --- a/libs/SDL2/docs/README-linux.md +++ b/libs/SDL2/docs/README-linux.md @@ -1,82 +1,90 @@ -Linux -================================================================================ - -By default SDL will only link against glibc, the rest of the features will be -enabled dynamically at runtime depending on the available features on the target -system. So, for example if you built SDL with Xinerama support and the target -system does not have the Xinerama libraries installed, it will be disabled -at runtime, and you won't get a missing library error, at least with the -default configuration parameters. - - -================================================================================ -Build Dependencies -================================================================================ - -Ubuntu 13.04, all available features enabled: - -sudo apt-get install build-essential mercurial make cmake autoconf automake \ -libtool libasound2-dev libpulse-dev libaudio-dev libx11-dev libxext-dev \ -libxrandr-dev libxcursor-dev libxi-dev libxinerama-dev libxxf86vm-dev \ -libxss-dev libgl1-mesa-dev libesd0-dev libdbus-1-dev libudev-dev \ -libgles1-mesa-dev libgles2-mesa-dev libegl1-mesa-dev libibus-1.0-dev - -Ubuntu 14.04 can also add "libwayland-dev libmirclient-dev libxkbcommon-dev" -to that command line for Wayland and Mir support. - -NOTES: -- This includes all the audio targets except arts, because Ubuntu pulled the - artsc0-dev package, but in theory SDL still supports it. -- DirectFB isn't included because the configure script (currently) fails to find - it at all. You can do "sudo apt-get install libdirectfb-dev" and fix the - configure script to include DirectFB support. Send patches. :) - - -================================================================================ -Joystick does not work -================================================================================ - -If you compiled or are using a version of SDL with udev support (and you should!) -there's a few issues that may cause SDL to fail to detect your joystick. To -debug this, start by installing the evtest utility. On Ubuntu/Debian: - - sudo apt-get install evtest - -Then run: - - sudo evtest - -You'll hopefully see your joystick listed along with a name like "/dev/input/eventXX" -Now run: - - cat /dev/input/event/XX - -If you get a permission error, you need to set a udev rule to change the mode of -your device (see below) - -Also, try: - - sudo udevadm info --query=all --name=input/eventXX - -If you see a line stating ID_INPUT_JOYSTICK=1, great, if you don't see it, -you need to set up an udev rule to force this variable. - -A combined rule for the Saitek Pro Flight Rudder Pedals to fix both issues looks -like: - - SUBSYSTEM=="input", ATTRS{idProduct}=="0763", ATTRS{idVendor}=="06a3", MODE="0666", ENV{ID_INPUT_JOYSTICK}="1" - SUBSYSTEM=="input", ATTRS{idProduct}=="0764", ATTRS{idVendor}=="06a3", MODE="0666", ENV{ID_INPUT_JOYSTICK}="1" - -You can set up similar rules for your device by changing the values listed in -idProduct and idVendor. To obtain these values, try: - - sudo udevadm info -a --name=input/eventXX | grep idVendor - sudo udevadm info -a --name=input/eventXX | grep idProduct - -If multiple values come up for each of these, the one you want is the first one of each. - -On other systems which ship with an older udev (such as CentOS), you may need -to set up a rule such as: - - SUBSYSTEM=="input", ENV{ID_CLASS}=="joystick", ENV{ID_INPUT_JOYSTICK}="1" - +Linux +================================================================================ + +By default SDL will only link against glibc, the rest of the features will be +enabled dynamically at runtime depending on the available features on the target +system. So, for example if you built SDL with Xinerama support and the target +system does not have the Xinerama libraries installed, it will be disabled +at runtime, and you won't get a missing library error, at least with the +default configuration parameters. + + +================================================================================ +Build Dependencies +================================================================================ + +Ubuntu 13.04, all available features enabled: + +sudo apt-get install build-essential mercurial make cmake autoconf automake \ +libtool libasound2-dev libpulse-dev libaudio-dev libx11-dev libxext-dev \ +libxrandr-dev libxcursor-dev libxi-dev libxinerama-dev libxxf86vm-dev \ +libxss-dev libgl1-mesa-dev libesd0-dev libdbus-1-dev libudev-dev \ +libgles1-mesa-dev libgles2-mesa-dev libegl1-mesa-dev libibus-1.0-dev \ +fcitx-libs-dev libsamplerate0-dev libsndio-dev + +Ubuntu 16.04+ can also add "libwayland-dev libxkbcommon-dev wayland-protocols" +to that command line for Wayland support. + +Ubuntu 16.10 can also add "libmirclient-dev libxkbcommon-dev" to that command +line for Mir support. + +NOTES: +- This includes all the audio targets except arts, because Ubuntu pulled the + artsc0-dev package, but in theory SDL still supports it. +- libsamplerate0-dev lets SDL optionally link to libresamplerate at runtime + for higher-quality audio resampling. SDL will work without it if the library + is missing, so it's safe to build in support even if the end user doesn't + have this library installed. +- DirectFB isn't included because the configure script (currently) fails to find + it at all. You can do "sudo apt-get install libdirectfb-dev" and fix the + configure script to include DirectFB support. Send patches. :) + + +================================================================================ +Joystick does not work +================================================================================ + +If you compiled or are using a version of SDL with udev support (and you should!) +there's a few issues that may cause SDL to fail to detect your joystick. To +debug this, start by installing the evtest utility. On Ubuntu/Debian: + + sudo apt-get install evtest + +Then run: + + sudo evtest + +You'll hopefully see your joystick listed along with a name like "/dev/input/eventXX" +Now run: + + cat /dev/input/event/XX + +If you get a permission error, you need to set a udev rule to change the mode of +your device (see below) + +Also, try: + + sudo udevadm info --query=all --name=input/eventXX + +If you see a line stating ID_INPUT_JOYSTICK=1, great, if you don't see it, +you need to set up an udev rule to force this variable. + +A combined rule for the Saitek Pro Flight Rudder Pedals to fix both issues looks +like: + + SUBSYSTEM=="input", ATTRS{idProduct}=="0763", ATTRS{idVendor}=="06a3", MODE="0666", ENV{ID_INPUT_JOYSTICK}="1" + SUBSYSTEM=="input", ATTRS{idProduct}=="0764", ATTRS{idVendor}=="06a3", MODE="0666", ENV{ID_INPUT_JOYSTICK}="1" + +You can set up similar rules for your device by changing the values listed in +idProduct and idVendor. To obtain these values, try: + + sudo udevadm info -a --name=input/eventXX | grep idVendor + sudo udevadm info -a --name=input/eventXX | grep idProduct + +If multiple values come up for each of these, the one you want is the first one of each. + +On other systems which ship with an older udev (such as CentOS), you may need +to set up a rule such as: + + SUBSYSTEM=="input", ENV{ID_CLASS}=="joystick", ENV{ID_INPUT_JOYSTICK}="1" + diff --git a/libs/SDL2/docs/README-macosx.md b/libs/SDL2/docs/README-macosx.md index 747e1e606..15ab39e65 100644 --- a/libs/SDL2/docs/README-macosx.md +++ b/libs/SDL2/docs/README-macosx.md @@ -8,12 +8,15 @@ From the developer's point of view, OS X is a sort of hybrid Mac and Unix system, and you have the option of using either traditional command line tools or Apple's IDE Xcode. +Command Line Build +================== + To build SDL using the command line, use the standard configure and make process: - ./configure - make - sudo make install + ./configure + make + sudo make install You can also build SDL as a Universal library (a single binary for both 32-bit and 64-bit Intel architectures), on Mac OS X 10.7 and newer, by using @@ -21,9 +24,9 @@ the gcc-fat.sh script in build-scripts: mkdir mybuild cd mybuild - CC=$PWD/../build-scripts/gcc-fat.sh CXX=$PWD/../build-scripts/g++fat.sh ../configure - make - sudo make install + CC=$PWD/../build-scripts/gcc-fat.sh CXX=$PWD/../build-scripts/g++-fat.sh ../configure + make + sudo make install This script builds SDL with 10.5 ABI compatibility on i386 and 10.6 ABI compatibility on x86_64 architectures. For best compatibility you @@ -86,17 +89,17 @@ so called "bundle", which basically is a fancy folder with a name like To get this build automatically, add something like the following rule to your Makefile.am: -bundle_contents = APP_NAME.app/Contents -APP_NAME_bundle: EXE_NAME - mkdir -p $(bundle_contents)/MacOS - mkdir -p $(bundle_contents)/Resources - echo "APPL????" > $(bundle_contents)/PkgInfo - $(INSTALL_PROGRAM) $< $(bundle_contents)/MacOS/ + bundle_contents = APP_NAME.app/Contents + APP_NAME_bundle: EXE_NAME + mkdir -p $(bundle_contents)/MacOS + mkdir -p $(bundle_contents)/Resources + echo "APPL????" > $(bundle_contents)/PkgInfo + $(INSTALL_PROGRAM) $< $(bundle_contents)/MacOS/ You should replace EXE_NAME with the name of the executable. APP_NAME is what will be visible to the user in the Finder. Usually it will be the same as EXE_NAME but capitalized. E.g. if EXE_NAME is "testgame" then APP_NAME -usually is "TestGame". You might also want to use @PACKAGE@ to use the package +usually is "TestGame". You might also want to use `@PACKAGE@` to use the package name as specified in your configure.in file. If your project builds more than one application, you will have to do a bit @@ -105,13 +108,13 @@ more. For each of your target applications, you need a separate rule. If you want the created bundles to be installed, you may want to add this rule to your Makefile.am: -install-exec-hook: APP_NAME_bundle - rm -rf $(DESTDIR)$(prefix)/Applications/APP_NAME.app - mkdir -p $(DESTDIR)$(prefix)/Applications/ - cp -r $< /$(DESTDIR)$(prefix)Applications/ + install-exec-hook: APP_NAME_bundle + rm -rf $(DESTDIR)$(prefix)/Applications/APP_NAME.app + mkdir -p $(DESTDIR)$(prefix)/Applications/ + cp -r $< /$(DESTDIR)$(prefix)Applications/ This rule takes the Bundle created by the rule from step 3 and installs them -into $(DESTDIR)$(prefix)/Applications/. +into "$(DESTDIR)$(prefix)/Applications/". Again, if you want to install multiple applications, you will have to augment the make rule accordingly. @@ -126,11 +129,16 @@ there are some more things you should do before shipping your product... unless you also install SDL on that other computer. A good solution for this dilemma is to static link against SDL. On OS X, you can achieve that by linking against the libraries listed by - sdl-config --static-libs + + sdl-config --static-libs + instead of those listed by - sdl-config --libs + + sdl-config --libs + Depending on how exactly SDL is integrated into your build systems, the way to achieve that varies, so I won't describe it here in detail + 2) Add an 'Info.plist' to your application. That is a special XML file which contains some meta-information about your application (like some copyright information, the version of your app, the name of an optional icon file, @@ -156,8 +164,10 @@ The first thing to do is to unpack the Xcode.tar.gz archive in the top level SDL directory (where the Xcode.tar.gz archive resides). Because Stuffit Expander will unpack the archive into a subdirectory, you should unpack the archive manually from the command line: - cd [path_to_SDL_source] - tar zxf Xcode.tar.gz + + cd [path_to_SDL_source] + tar zxf Xcode.tar.gz + This will create a new folder called Xcode, which you can browse normally from the Finder. @@ -227,4 +237,4 @@ following locations: Functionality may be added in the future to help this. -Known bugs are listed in the file "BUGS" +Known bugs are listed in the file "BUGS.txt". diff --git a/libs/SDL2/docs/README-nacl.md b/libs/SDL2/docs/README-nacl.md index 4c9432b69..53ada33c3 100644 --- a/libs/SDL2/docs/README-nacl.md +++ b/libs/SDL2/docs/README-nacl.md @@ -1,103 +1,103 @@ -Native Client -================================================================================ - -Requirements: - -* Native Client SDK (https://developer.chrome.com/native-client), - (tested with Pepper version 33 or higher). - -The SDL backend for Chrome's Native Client has been tested only with the PNaCl -toolchain, which generates binaries designed to run on ARM and x86_32/64 -platforms. This does not mean it won't work with the other toolchains! - -================================================================================ -Building SDL for NaCl -================================================================================ - -Set up the right environment variables (see naclbuild.sh), then configure SDL with: - - configure --host=pnacl --prefix some/install/destination - -Then "make". - -As an example of how to create a deployable app a Makefile project is provided -in test/nacl/Makefile, which includes some monkey patching of the common.mk file -provided by NaCl, without which linking properly to SDL won't work (the search -path can't be modified externally, so the linker won't find SDL's binaries unless -you dump them into the SDK path, which is inconvenient). -Also provided in test/nacl is the required support file, such as index.html, -manifest.json, etc. -SDL apps for NaCl run on a worker thread using the ppapi_simple infrastructure. -This allows for blocking calls on all the relevant systems (OpenGL ES, filesystem), -hiding the asynchronous nature of the browser behind the scenes...which is not the -same as making it disappear! - - -================================================================================ -Running tests -================================================================================ - -Due to the nature of NaCl programs, building and running SDL tests is not as -straightforward as one would hope. The script naclbuild.sh in build-scripts -automates the process and should serve as a guide for users of SDL trying to build -their own applications. - -Basic usage: - - ./naclbuild.sh path/to/pepper/toolchain (i.e. ~/naclsdk/pepper_35) - -This will build testgles2.c by default. - -If you want to build a different test, for example testrendercopyex.c: - - SOURCES=~/sdl/SDL/test/testrendercopyex.c ./naclbuild.sh ~/naclsdk/pepper_35 - -Once the build finishes, you have to serve the contents with a web server (the -script will give you instructions on how to do that with Python). - -================================================================================ -RWops and nacl_io -================================================================================ - -SDL_RWops work transparently with nacl_io. Two functions control the mount points: - - int mount(const char* source, const char* target, - const char* filesystemtype, - unsigned long mountflags, const void *data); - int umount(const char *target); - - For convenience, SDL will by default mount an httpfs tree at / before calling -the app's main function. Such setting can be overridden by calling: - - umount("/"); - -And then mounting a different filesystem at / - -It's important to consider that the asynchronous nature of file operations on a -browser is hidden from the application, effectively providing the developer with -a set of blocking file operations just like you get in a regular desktop -environment, which eases the job of porting to Native Client, but also introduces -a set of challenges of its own, in particular when big file sizes and slow -connections are involved. - -For more information on how nacl_io and mount points work, see: - - https://developer.chrome.com/native-client/devguide/coding/nacl_io - https://src.chromium.org/chrome/trunk/src/native_client_sdk/src/libraries/nacl_io/nacl_io.h - -To be able to save into the directory "/save/" (like backup of game) : - - mount("", "/save", "html5fs", 0, "type=PERSISTENT"); - -And add to manifest.json : - - "permissions": [ - "unlimitedStorage" - ] - -================================================================================ -TODO - Known Issues -================================================================================ -* Testing of all systems with a real application (something other than SDL's tests) -* Key events don't seem to work properly - +Native Client +================================================================================ + +Requirements: + +* Native Client SDK (https://developer.chrome.com/native-client), + (tested with Pepper version 33 or higher). + +The SDL backend for Chrome's Native Client has been tested only with the PNaCl +toolchain, which generates binaries designed to run on ARM and x86_32/64 +platforms. This does not mean it won't work with the other toolchains! + +================================================================================ +Building SDL for NaCl +================================================================================ + +Set up the right environment variables (see naclbuild.sh), then configure SDL with: + + configure --host=pnacl --prefix some/install/destination + +Then "make". + +As an example of how to create a deployable app a Makefile project is provided +in test/nacl/Makefile, which includes some monkey patching of the common.mk file +provided by NaCl, without which linking properly to SDL won't work (the search +path can't be modified externally, so the linker won't find SDL's binaries unless +you dump them into the SDK path, which is inconvenient). +Also provided in test/nacl is the required support file, such as index.html, +manifest.json, etc. +SDL apps for NaCl run on a worker thread using the ppapi_simple infrastructure. +This allows for blocking calls on all the relevant systems (OpenGL ES, filesystem), +hiding the asynchronous nature of the browser behind the scenes...which is not the +same as making it disappear! + + +================================================================================ +Running tests +================================================================================ + +Due to the nature of NaCl programs, building and running SDL tests is not as +straightforward as one would hope. The script naclbuild.sh in build-scripts +automates the process and should serve as a guide for users of SDL trying to build +their own applications. + +Basic usage: + + ./naclbuild.sh path/to/pepper/toolchain (i.e. ~/naclsdk/pepper_35) + +This will build testgles2.c by default. + +If you want to build a different test, for example testrendercopyex.c: + + SOURCES=~/sdl/SDL/test/testrendercopyex.c ./naclbuild.sh ~/naclsdk/pepper_35 + +Once the build finishes, you have to serve the contents with a web server (the +script will give you instructions on how to do that with Python). + +================================================================================ +RWops and nacl_io +================================================================================ + +SDL_RWops work transparently with nacl_io. Two functions control the mount points: + + int mount(const char* source, const char* target, + const char* filesystemtype, + unsigned long mountflags, const void *data); + int umount(const char *target); + + For convenience, SDL will by default mount an httpfs tree at / before calling +the app's main function. Such setting can be overridden by calling: + + umount("/"); + +And then mounting a different filesystem at / + +It's important to consider that the asynchronous nature of file operations on a +browser is hidden from the application, effectively providing the developer with +a set of blocking file operations just like you get in a regular desktop +environment, which eases the job of porting to Native Client, but also introduces +a set of challenges of its own, in particular when big file sizes and slow +connections are involved. + +For more information on how nacl_io and mount points work, see: + + https://developer.chrome.com/native-client/devguide/coding/nacl_io + https://src.chromium.org/chrome/trunk/src/native_client_sdk/src/libraries/nacl_io/nacl_io.h + +To be able to save into the directory "/save/" (like backup of game) : + + mount("", "/save", "html5fs", 0, "type=PERSISTENT"); + +And add to manifest.json : + + "permissions": [ + "unlimitedStorage" + ] + +================================================================================ +TODO - Known Issues +================================================================================ +* Testing of all systems with a real application (something other than SDL's tests) +* Key events don't seem to work properly + diff --git a/libs/SDL2/docs/README-pandora.md b/libs/SDL2/docs/README-pandora.md index e50e0c279..a0277634b 100644 --- a/libs/SDL2/docs/README-pandora.md +++ b/libs/SDL2/docs/README-pandora.md @@ -1,7 +1,7 @@ -Pandora +Pandora ===================================================================== - -( http://openpandora.org/ ) + +( http://openpandora.org/ ) - A pandora specific video driver was written to allow SDL 2.0 with OpenGL ES support to work on the pandora under the framebuffer. This driver do not have input support for now, so if you use it you will have to add your own control code. diff --git a/libs/SDL2/docs/README-platforms.md b/libs/SDL2/docs/README-platforms.md index 14454ec5d..711557dc0 100644 --- a/libs/SDL2/docs/README-platforms.md +++ b/libs/SDL2/docs/README-platforms.md @@ -1,8 +1,8 @@ -Platforms -========= - -We maintain the list of supported platforms on our wiki now, and how to -build and install SDL for those platforms: - - https://wiki.libsdl.org/Installation - +Platforms +========= + +We maintain the list of supported platforms on our wiki now, and how to +build and install SDL for those platforms: + + https://wiki.libsdl.org/Installation + diff --git a/libs/SDL2/docs/README-porting.md b/libs/SDL2/docs/README-porting.md index f13f83b8c..86243f6e8 100644 --- a/libs/SDL2/docs/README-porting.md +++ b/libs/SDL2/docs/README-porting.md @@ -1,11 +1,11 @@ -Porting -======= +Porting +======= * Porting To A New Platform The first thing you have to do when porting to a new platform, is look at include/SDL_platform.h and create an entry there for your operating system. -The standard format is __PLATFORM__, where PLATFORM is the name of the OS. +The standard format is "__PLATFORM__", where PLATFORM is the name of the OS. Ideally SDL_platform.h will be able to auto-detect the system it's building on based on C preprocessor symbols. @@ -15,7 +15,9 @@ There are two basic ways of building SDL at the moment: If you have a GNUish system, then you might try this. Edit configure.in, take a look at the large section labelled: + "Set up the configuration based on the host platform!" + Add a section for your platform, and then re-run autogen.sh and build! 2. Using an IDE: @@ -23,10 +25,11 @@ There are two basic ways of building SDL at the moment: If you're using an IDE or other non-configure build system, you'll probably want to create a custom SDL_config.h for your platform. Edit SDL_config.h, add a section for your platform, and create a custom SDL_config_{platform}.h, - based on SDL_config.h.minimal and SDL_config.h.in + based on SDL_config_minimal.h and SDL_config.h.in Add the top level include directory to the header search path, and then add the following sources to the project: + src/*.c src/atomic/*.c src/audio/*.c @@ -37,6 +40,7 @@ There are two basic ways of building SDL at the moment: src/joystick/*.c src/power/*.c src/render/*.c + src/render/software/*.c src/stdlib/*.c src/thread/*.c src/timer/*.c diff --git a/libs/SDL2/docs/README-psp.md b/libs/SDL2/docs/README-psp.md index 41fc9040a..e8911363d 100644 --- a/libs/SDL2/docs/README-psp.md +++ b/libs/SDL2/docs/README-psp.md @@ -1,5 +1,5 @@ -PSP -====== +PSP +====== SDL port for the Sony PSP contributed by Captian Lex diff --git a/libs/SDL2/docs/README-raspberrypi.md b/libs/SDL2/docs/README-raspberrypi.md index ade3c81c6..fbcffa1ff 100644 --- a/libs/SDL2/docs/README-raspberrypi.md +++ b/libs/SDL2/docs/README-raspberrypi.md @@ -23,7 +23,7 @@ Raspbian (other Linux distros may work as well). sudo apt-get install libudev-dev libasound2-dev libdbus-1-dev You also need the VideoCore binary stuff that ships in /opt/vc for EGL and -OpenGL ES 2.x, it usually comes pre installed, but in any case: +OpenGL ES 2.x, it usually comes pre-installed, but in any case: sudo apt-get install libraspberrypi0 libraspberrypi-bin libraspberrypi-dev @@ -37,9 +37,9 @@ will be placed in /opt/rpi-tools sudo git clone --depth 1 https://github.com/raspberrypi/tools /opt/rpi-tools -You'll also need a Rasbian binary image. +You'll also need a Raspbian binary image. Get it from: http://downloads.raspberrypi.org/raspbian_latest -After unzipping, you'll get file with a name like: -wheezy-raspbian.img +After unzipping, you'll get file with a name like: "-wheezy-raspbian.img" Let's assume the sysroot will be built in /opt/rpi-sysroot. export SYSROOT=/opt/rpi-sysroot @@ -136,9 +136,9 @@ your app has read access to one of the following: This is usually not a problem if you run from the physical terminal (as opposed to running from a pseudo terminal, such as via SSH). If running from a PTS, a quick workaround is to run your app as root or add yourself to the tty group, -then re login to the system. +then re-login to the system. - sudo usermod -aG tty `whoami` + sudo usermod -aG tty `whoami` The keyboard layout used by SDL is the same as the one the kernel uses. To configure the layout on Raspbian: diff --git a/libs/SDL2/docs/README-touch.md b/libs/SDL2/docs/README-touch.md index e76e2d396..09188b81d 100644 --- a/libs/SDL2/docs/README-touch.md +++ b/libs/SDL2/docs/README-touch.md @@ -1,4 +1,4 @@ -Touch +Touch =========================================================================== System Specific Notes =========================================================================== @@ -42,14 +42,14 @@ Same as SDL_FINGERDOWN. =========================================================================== Functions =========================================================================== -SDL provides the ability to access the underlying Finger structures. +SDL provides the ability to access the underlying SDL_Finger structures. These structures should _never_ be modified. The following functions are included from SDL_touch.h -To get a SDL_TouchID call SDL_GetTouchDevice(index). +To get a SDL_TouchID call SDL_GetTouchDevice(int index). This returns a SDL_TouchID. -IMPORTANT: If the touch has been removed, or there is no touch with the given ID, SDL_GetTouchID will return 0. Be sure to check for this! +IMPORTANT: If the touch has been removed, or there is no touch with the given index, SDL_GetTouchDevice() will return 0. Be sure to check for this! The number of touch devices can be queried with SDL_GetNumTouchDevices(). @@ -64,13 +64,13 @@ The most common reason to access SDL_Finger is to query the fingers outside the -To get a SDL_Finger, call SDL_GetTouchFinger(touchID,index), where touchID is a SDL_TouchID, and index is the requested finger. -This returns a SDL_Finger*, or NULL if the finger does not exist, or has been removed. +To get a SDL_Finger, call SDL_GetTouchFinger(SDL_TouchID touchID, int index), where touchID is a SDL_TouchID, and index is the requested finger. +This returns a SDL_Finger *, or NULL if the finger does not exist, or has been removed. A SDL_Finger is guaranteed to be persistent for the duration of a touch, but it will be de-allocated as soon as the finger is removed. This occurs when the SDL_FINGERUP event is _added_ to the event queue, and thus _before_ the SDL_FINGERUP event is polled. As a result, be very careful to check for NULL return values. A SDL_Finger has the following fields: -* x,y,pressure: +* x, y: The current coordinates of the touch. * pressure: The pressure of the touch. diff --git a/libs/SDL2/docs/README-wince.md b/libs/SDL2/docs/README-wince.md index c543ed65d..d5fb64fcb 100644 --- a/libs/SDL2/docs/README-wince.md +++ b/libs/SDL2/docs/README-wince.md @@ -1,5 +1,5 @@ -WinCE -===== +WinCE +===== Windows CE is no longer supported by SDL. diff --git a/libs/SDL2/docs/README-windows.md b/libs/SDL2/docs/README-windows.md index 076b1556e..71f968eeb 100644 --- a/libs/SDL2/docs/README-windows.md +++ b/libs/SDL2/docs/README-windows.md @@ -38,4 +38,8 @@ Known Bugs: * SDL_GL_SetSwapInterval is currently a no op when using ANGLE. It appears that there's a bug in the library which prevents the window contents from refreshing if this is set to anything other than the default value. - + +Vulkan Surface Support +============== + +Support for creating Vulkan surfaces is configured on by default. To disable it change the value of `SDL_VIDEO_VULKAN` to 0 in `SDL_config_windows.h`. You must install the [Vulkan SDK](https://www.lunarg.com/vulkan-sdk/) in order to use Vulkan graphics in your application. diff --git a/libs/SDL2/docs/README-winrt.md b/libs/SDL2/docs/README-winrt.md index 741def67f..5ec4732f7 100644 --- a/libs/SDL2/docs/README-winrt.md +++ b/libs/SDL2/docs/README-winrt.md @@ -1,468 +1,541 @@ -WinRT -===== - -This port allows SDL applications to run on Microsoft's platforms that require -use of "Windows Runtime", aka. "WinRT", APIs. WinRT apps are currently -full-screen only, and run in what Microsoft sometimes refers to as their -"Modern" (formerly, "Metro"), environment. For Windows 8.x, Microsoft may also -refer to them as "Windows Store" apps, due to them being distributed, -primarily, via a Microsoft-run online store (of the same name). - -Some of the operating systems that include WinRT, are: - -* Windows 10, via its Universal Windows Platform (UWP) APIs -* Windows 8.x -* Windows RT 8.x (aka. Windows 8.x for ARM processors) -* Windows Phone 8.x - - -Requirements ------------- - -* Microsoft Visual C++ (aka Visual Studio), either 2015, 2013, or 2012 - - Free, "Community" or "Express" editions may be used, so long as they - include support for either "Windows Store" or "Windows Phone" apps. - "Express" versions marked as supporting "Windows Desktop" development - typically do not include support for creating WinRT apps, to note. - (The "Community" editions of Visual C++ do, however, support both - desktop/Win32 and WinRT development). - - Visual C++ 2012 can only build apps that target versions 8.0 of Windows, - or Windows Phone. 8.0-targetted apps will run on devices running 8.1 - editions of Windows, however they will not be able to take advantage of - 8.1-specific features. - - Visual C++ 2013 cannot create app projects that target Windows 8.0. - Visual C++ 2013 Update 4, can create app projects for Windows Phone 8.0, - Windows Phone 8.1, and Windows 8.1, but not Windows 8.0. An optional - Visual Studio add-in, "Tools for Maintaining Store apps for Windows 8", - allows Visual C++ 2013 to load and build Windows 8.0 projects that were - created with Visual C++ 2012, so long as Visual C++ 2012 is installed - on the same machine. More details on targeting different versions of - Windows can found at the following web pages: - - [Develop apps by using Visual Studio 2013](http://msdn.microsoft.com/en-us/library/windows/apps/br211384.aspx) - - [To add the Tools for Maintaining Store apps for Windows 8](http://msdn.microsoft.com/en-us/library/windows/apps/dn263114.aspx#AddMaintenanceTools) -* A valid Microsoft account - This requirement is not imposed by SDL, but - rather by Microsoft's Visual C++ toolchain. This is required to launch or - debug apps. - - -Status ------- - -Here is a rough list of what works, and what doens't: - -* What works: - * compilation via Visual C++ 2012 through 2015 - * compile-time platform detection for SDL programs. The C/C++ #define, - `__WINRT__`, will be set to 1 (by SDL) when compiling for WinRT. - * GPU-accelerated 2D rendering, via SDL_Renderer. - * OpenGL ES 2, via the ANGLE library (included separately from SDL) - * software rendering, via either SDL_Surface (optionally in conjunction with - SDL_GetWindowSurface() and SDL_UpdateWindowSurface()) or via the - SDL_Renderer APIs - * threads - * timers (via SDL_GetTicks(), SDL_AddTimer(), SDL_GetPerformanceCounter(), - SDL_GetPerformanceFrequency(), etc.) - * file I/O via SDL_RWops - * mouse input (unsupported on Windows Phone) - * audio, via a modified version of SDL's XAudio2 backend - * .DLL file loading. Libraries *MUST* be packaged inside applications. Loading - anything outside of the app is not supported. - * system path retrieval via SDL's filesystem APIs - * game controllers. Support is provided via the SDL_Joystick and - SDL_GameController APIs, and is backed by Microsoft's XInput API. - * multi-touch input - * app events. SDL_APP_WILLENTER* and SDL_APP_DIDENTER* events get sent out as - appropriate. - * window events - * using Direct3D 11.x APIs outside of SDL. Non-XAML / Direct3D-only apps can - choose to render content directly via Direct3D, using SDL to manage the - internal WinRT window, as well as input and audio. (Use - SDL_GetWindowWMInfo() to get the WinRT 'CoreWindow', and pass it into - IDXGIFactory2::CreateSwapChainForCoreWindow() as appropriate.) - -* What partially works: - * keyboard input. Most of WinRT's documented virtual keys are supported, as - well as many keys with documented hardware scancodes. - * SDLmain. WinRT uses a different signature for each app's main() function. - SDL-based apps that use this port must compile in SDL_winrt_main_NonXAML.cpp - (in `SDL\src\main\winrt\`) directly in order for their C-style main() - functions to be called. - -* What doesn't work: - * compilation with anything other than Visual C++ - * programmatically-created custom cursors. These don't appear to be supported - by WinRT. Different OS-provided cursors can, however, be created via - SDL_CreateSystemCursor() (unsupported on Windows Phone) - * SDL_WarpMouseInWindow() or SDL_WarpMouseGlobal(). This are not currently - supported by WinRT itself. - * joysticks and game controllers that aren't supported by Microsoft's XInput - API. - * turning off VSync when rendering on Windows Phone. Attempts to turn VSync - off on Windows Phone result either in Direct3D not drawing anything, or it - forcing VSync back on. As such, SDL_RENDERER_PRESENTVSYNC will always get - turned-on on Windows Phone. This limitation is not present in non-Phone - WinRT (such as Windows 8.x), where turning off VSync appears to work. - * probably anything else that's not listed as supported - - - -Upgrade Notes -------------- - -#### SDL_GetPrefPath() usage when upgrading WinRT apps from SDL 2.0.3 - -SDL 2.0.4 fixes two bugs found in the WinRT version of SDL_GetPrefPath(). -The fixes may affect older, SDL 2.0.3-based apps' save data. Please note -that these changes only apply to SDL-based WinRT apps, and not to apps for -any other platform. - -1. SDL_GetPrefPath() would return an invalid path, one in which the path's - directory had not been created. Attempts to create files there - (via fopen(), for example), would fail, unless that directory was - explicitly created beforehand. - -2. SDL_GetPrefPath(), for non-WinPhone-based apps, would return a path inside - a WinRT 'Roaming' folder, the contents of which get automatically - synchronized across multiple devices. This process can occur while an - application runs, and can cause existing save-data to be overwritten - at unexpected times, with data from other devices. (Windows Phone apps - written with SDL 2.0.3 did not utilize a Roaming folder, due to API - restrictions in Windows Phone 8.0). - - -SDL_GetPrefPath(), starting with SDL 2.0.4, addresses these by: - -1. making sure that SDL_GetPrefPath() returns a directory in which data - can be written to immediately, without first needing to create directories. - -2. basing SDL_GetPrefPath() off of a different, non-Roaming folder, the - contents of which do not automatically get synchronized across devices - (and which require less work to use safely, in terms of data integrity). - -Apps that wish to get their Roaming folder's path can do so either by using -SDL_WinRTGetFSPathUTF8(), SDL_WinRTGetFSPathUNICODE() (which returns a -UCS-2/wide-char string), or directly through the WinRT class, -Windows.Storage.ApplicationData. - - - -Setup, High-Level Steps ------------------------ - -The steps for setting up a project for an SDL/WinRT app looks like the -following, at a high-level: - -1. create a new Visual C++ project using Microsoft's template for a, - "Direct3D App". -2. remove most of the files from the project. -3. make your app's project directly reference SDL/WinRT's own Visual C++ - project file, via use of Visual C++'s "References" dialog. This will setup - the linker, and will copy SDL's .dll files to your app's final output. -4. adjust your app's build settings, at minimum, telling it where to find SDL's - header files. -5. add a file that contains a WinRT-appropriate main function. -6. add SDL-specific app code. -7. build and run your app. - - -Setup, Detailed Steps ---------------------- - -### 1. Create a new project ### - -Create a new project using one of Visual C++'s templates for a plain, non-XAML, -"Direct3D App" (XAML support for SDL/WinRT is not yet ready for use). If you -don't see one of these templates, in Visual C++'s 'New Project' dialog, try -using the textbox titled, 'Search Installed Templates' to look for one. - - -### 2. Remove unneeded files from the project ### - -In the new project, delete any file that has one of the following extensions: - -- .cpp -- .h -- .hlsl - -When you are done, you should be left with a few files, each of which will be a -necessary part of your app's project. These files will consist of: - -- an .appxmanifest file, which contains metadata on your WinRT app. This is - similar to an Info.plist file on iOS, or an AndroidManifest.xml on Android. -- a few .png files, one of which is a splash screen (displayed when your app - launches), others are app icons. -- a .pfx file, used for code signing purposes. - - -### 3. Add references to SDL's project files ### - -SDL/WinRT can be built in multiple variations, spanning across three different -CPU architectures (x86, x64, and ARM) and two different configurations -(Debug and Release). WinRT and Visual C++ do not currently provide a means -for combining multiple variations of one library into a single file. -Furthermore, it does not provide an easy means for copying pre-built .dll files -into your app's final output (via Post-Build steps, for example). It does, -however, provide a system whereby an app can reference the MSVC projects of -libraries such that, when the app is built: - -1. each library gets built for the appropriate CPU architecture(s) and WinRT - platform(s). -2. each library's output, such as .dll files, get copied to the app's build - output. - -To set this up for SDL/WinRT, you'll need to run through the following steps: - -1. open up the Solution Explorer inside Visual C++ (under the "View" menu, then - "Solution Explorer") -2. right click on your app's solution. -3. navigate to "Add", then to "Existing Project..." -4. find SDL/WinRT's Visual C++ project file and open it. Different project - files exist for different WinRT platforms. All of them are in SDL's - source distribution, in the following directories: - * `VisualC-WinRT/UWP_VS2015/` - for Windows 10 / UWP apps - * `VisualC-WinRT/WinPhone81_VS2013/` - for Windows Phone 8.1 apps - * `VisualC-WinRT/WinRT80_VS2012/` - for Windows 8.0 apps - * `VisualC-WinRT/WinRT81_VS2013/` - for Windows 8.1 apps -5. once the project has been added, right-click on your app's project and - select, "References..." -6. click on the button titled, "Add New Reference..." -7. check the box next to SDL -8. click OK to close the dialog -9. SDL will now show up in the list of references. Click OK to close that - dialog. - -Your project is now linked to SDL's project, insofar that when the app is -built, SDL will be built as well, with its build output getting included with -your app. - - -### 4. Adjust Your App's Build Settings ### - -Some build settings need to be changed in your app's project. This guide will -outline the following: - -- making sure that the compiler knows where to find SDL's header files -- **Optional for C++, but NECESSARY for compiling C code:** telling the - compiler not to use Microsoft's C++ extensions for WinRT development. -- **Optional:** telling the compiler not generate errors due to missing - precompiled header files. - -To change these settings: - -1. right-click on the project -2. choose "Properties" -3. in the drop-down box next to "Configuration", choose, "All Configurations" -4. in the drop-down box next to "Platform", choose, "All Platforms" -5. in the left-hand list, expand the "C/C++" section -6. select "General" -7. edit the "Additional Include Directories" setting, and add a path to SDL's - "include" directory -8. **Optional: to enable compilation of C code:** change the setting for - "Consume Windows Runtime Extension" from "Yes (/ZW)" to "No". If you're - working with a completely C++ based project, this step can usually be - omitted. -9. **Optional: to disable precompiled headers (which can produce - 'stdafx.h'-related build errors, if setup incorrectly:** in the left-hand - list, select "Precompiled Headers", then change the setting for "Precompiled - Header" from "Use (/Yu)" to "Not Using Precompiled Headers". -10. close the dialog, saving settings, by clicking the "OK" button - - -### 5. Add a WinRT-appropriate main function to the app. ### - -C/C++-based WinRT apps do contain a `main` function that the OS will invoke when -the app starts launching. The parameters of WinRT main functions are different -than those found on other platforms, Win32 included. SDL/WinRT provides a -platform-appropriate main function that will perform these actions, setup key -portions of the app, then invoke a classic, C/C++-style main function (that take -in "argc" and "argv" parameters). The code for this file is contained inside -SDL's source distribution, under `src/main/winrt/SDL_winrt_main_NonXAML.cpp`. -You'll need to add this file, or a copy of it, to your app's project, and make -sure it gets compiled using a Microsoft-specific set of C++ extensions called -C++/CX. - -**NOTE: C++/CX compilation is currently required in at least one file of your -app's project. This is to make sure that Visual C++'s linker builds a 'Windows -Metadata' file (.winmd) for your app. Not doing so can lead to build errors.** - -To include `SDL_winrt_main_NonXAML.cpp`: - -1. right-click on your project (again, in Visual C++'s Solution Explorer), - navigate to "Add", then choose "Existing Item...". -2. open `SDL_winrt_main_NonXAML.cpp`, which is found inside SDL's source - distribution, under `src/main/winrt/`. Make sure that the open-file dialog - closes, either by double-clicking on the file, or single-clicking on it and - then clicking Add. -3. right-click on the file (as listed in your project), then click on - "Properties...". -4. in the drop-down box next to "Configuration", choose, "All Configurations" -5. in the drop-down box next to "Platform", choose, "All Platforms" -6. in the left-hand list, click on "C/C++" -7. change the setting for "Consume Windows Runtime Extension" to "Yes (/ZW)". -8. click the OK button. This will close the dialog. - - -### 6. Add app code and assets ### - -At this point, you can add in SDL-specific source code. Be sure to include a -C-style main function (ie: `int main(int argc, char *argv[])`). From there you -should be able to create a single `SDL_Window` (WinRT apps can only have one -window, at present), as well as an `SDL_Renderer`. Direct3D will be used to -draw content. Events are received via SDL's usual event functions -(`SDL_PollEvent`, etc.) If you have a set of existing source files and assets, -you can start adding them to the project now. If not, or if you would like to -make sure that you're setup correctly, some short and simple sample code is -provided below. - - -#### 6.A. ... when creating a new app #### - -If you are creating a new app (rather than porting an existing SDL-based app), -or if you would just like a simple app to test SDL/WinRT with before trying to -get existing code working, some working SDL/WinRT code is provided below. To -set this up: - -1. right click on your app's project -2. select Add, then New Item. An "Add New Item" dialog will show up. -3. from the left-hand list, choose "Visual C++" -4. from the middle/main list, choose "C++ File (.cpp)" -5. near the bottom of the dialog, next to "Name:", type in a name for your -source file, such as, "main.cpp". -6. click on the Add button. This will close the dialog, add the new file to -your project, and open the file in Visual C++'s text editor. -7. Copy and paste the following code into the new file, then save it. - - - #include - - int main(int argc, char **argv) - { - SDL_DisplayMode mode; - SDL_Window * window = NULL; - SDL_Renderer * renderer = NULL; - SDL_Event evt; - - if (SDL_Init(SDL_INIT_VIDEO) != 0) { - return 1; - } - - if (SDL_GetCurrentDisplayMode(0, &mode) != 0) { - return 1; - } - - if (SDL_CreateWindowAndRenderer(mode.w, mode.h, SDL_WINDOW_FULLSCREEN, &window, &renderer) != 0) { - return 1; - } - - while (1) { - while (SDL_PollEvent(&evt)) { - } - - SDL_SetRenderDrawColor(renderer, 0, 255, 0, 255); - SDL_RenderClear(renderer); - SDL_RenderPresent(renderer); - } - } - - -#### 6.B. Adding code and assets #### - -If you have existing code and assets that you'd like to add, you should be able -to add them now. The process for adding a set of files is as such. - -1. right click on the app's project -2. select Add, then click on "New Item..." -3. open any source, header, or asset files as appropriate. Support for C and -C++ is available. - -Do note that WinRT only supports a subset of the APIs that are available to -Win32-based apps. Many portions of the Win32 API and the C runtime are not -available. - -A list of unsupported C APIs can be found at - - -General information on using the C runtime in WinRT can be found at - - -A list of supported Win32 APIs for WinRT apps can be found at -. To note, -the list of supported Win32 APIs for Windows Phone 8.0 is different. -That list can be found at - - - -### 7. Build and run your app ### - -Your app project should now be setup, and you should be ready to build your app. -To run it on the local machine, open the Debug menu and choose "Start -Debugging". This will build your app, then run your app full-screen. To switch -out of your app, press the Windows key. Alternatively, you can choose to run -your app in a window. To do this, before building and running your app, find -the drop-down menu in Visual C++'s toolbar that says, "Local Machine". Expand -this by clicking on the arrow on the right side of the list, then click on -Simulator. Once you do that, any time you build and run the app, the app will -launch in window, rather than full-screen. - - -#### 7.A. Running apps on older, ARM-based, "Windows RT" devices #### - -**These instructions do not include Windows Phone, despite Windows Phone -typically running on ARM processors.** They are specifically for devices -that use the "Windows RT" operating system, which was a modified version of -Windows 8.x that ran primarily on ARM-based tablet computers. - -To build and run the app on ARM-based, "Windows RT" devices, you'll need to: - -- install Microsoft's "Remote Debugger" on the device. Visual C++ installs and - debugs ARM-based apps via IP networks. -- change a few options on the development machine, both to make sure it builds - for ARM (rather than x86 or x64), and to make sure it knows how to find the - Windows RT device (on the network). - -Microsoft's Remote Debugger can be found at -. Please note -that separate versions of this debugger exist for different versions of Visual -C++, one each for MSVC 2015, 2013, and 2012. - -To setup Visual C++ to launch your app on an ARM device: - -1. make sure the Remote Debugger is running on your ARM device, and that it's on - the same IP network as your development machine. -2. from Visual C++'s toolbar, find a drop-down menu that says, "Win32". Click - it, then change the value to "ARM". -3. make sure Visual C++ knows the hostname or IP address of the ARM device. To - do this: - 1. open the app project's properties - 2. select "Debugging" - 3. next to "Machine Name", enter the hostname or IP address of the ARM - device - 4. if, and only if, you've turned off authentication in the Remote Debugger, - then change the setting for "Require Authentication" to No - 5. click "OK" -4. build and run the app (from Visual C++). The first time you do this, a - prompt will show up on the ARM device, asking for a Microsoft Account. You - do, unfortunately, need to log in here, and will need to follow the - subsequent registration steps in order to launch the app. After you do so, - if the app didn't already launch, try relaunching it again from within Visual - C++. - - -Troubleshooting ---------------- - -#### Build fails with message, "error LNK2038: mismatch detected for 'vccorlib_lib_should_be_specified_before_msvcrt_lib_to_linker'" - -Try adding the following to your linker flags. In MSVC, this can be done by -right-clicking on the app project, navigating to Configuration Properties -> -Linker -> Command Line, then adding them to the Additional Options -section. - -* For Release builds / MSVC-Configurations, add: - - /nodefaultlib:vccorlib /nodefaultlib:msvcrt vccorlib.lib msvcrt.lib - -* For Debug builds / MSVC-Configurations, add: - - /nodefaultlib:vccorlibd /nodefaultlib:msvcrtd vccorlibd.lib msvcrtd.lib - +WinRT +===== + +This port allows SDL applications to run on Microsoft's platforms that require +use of "Windows Runtime", aka. "WinRT", APIs. Microsoft may, in some cases, +refer to them as either "Windows Store", or for Windows 10, "UWP" apps. + +Some of the operating systems that include WinRT, are: + +* Windows 10, via its Universal Windows Platform (UWP) APIs +* Windows 8.x +* Windows RT 8.x (aka. Windows 8.x for ARM processors) +* Windows Phone 8.x + + +Requirements +------------ + +* Microsoft Visual C++ (aka Visual Studio), either 2017, 2015, 2013, or 2012 + - Free, "Community" or "Express" editions may be used, so long as they + include support for either "Windows Store" or "Windows Phone" apps. + "Express" versions marked as supporting "Windows Desktop" development + typically do not include support for creating WinRT apps, to note. + (The "Community" editions of Visual C++ do, however, support both + desktop/Win32 and WinRT development). + - Visual Studio 2017 can be used, however it is recommented that you install + the Visual C++ 2015 build tools. These build tools can be installed + using VS 2017's installer. Be sure to also install the workload for + "Universal Windows Platform development", its optional component, the + "C++ Universal Windows Platform tools", and for UWP / Windows 10 + development, the "Windows 10 SDK (10.0.10240.0)". Please note that + targeting UWP / Windows 10 apps from development machine(s) running + earlier versions of Windows, such as Windows 7, is not always supported + by Visual Studio, and you may get error(s) when attempting to do so. + - Visual C++ 2012 can only build apps that target versions 8.0 of Windows, + or Windows Phone. 8.0-targetted apps will run on devices running 8.1 + editions of Windows, however they will not be able to take advantage of + 8.1-specific features. + - Visual C++ 2013 cannot create app projects that target Windows 8.0. + Visual C++ 2013 Update 4, can create app projects for Windows Phone 8.0, + Windows Phone 8.1, and Windows 8.1, but not Windows 8.0. An optional + Visual Studio add-in, "Tools for Maintaining Store apps for Windows 8", + allows Visual C++ 2013 to load and build Windows 8.0 projects that were + created with Visual C++ 2012, so long as Visual C++ 2012 is installed + on the same machine. More details on targeting different versions of + Windows can found at the following web pages: + - [Develop apps by using Visual Studio 2013](http://msdn.microsoft.com/en-us/library/windows/apps/br211384.aspx) + - [To add the Tools for Maintaining Store apps for Windows 8](http://msdn.microsoft.com/en-us/library/windows/apps/dn263114.aspx#AddMaintenanceTools) +* A valid Microsoft account - This requirement is not imposed by SDL, but + rather by Microsoft's Visual C++ toolchain. This is required to launch or + debug apps. + + +Status +------ + +Here is a rough list of what works, and what doens't: + +* What works: + * compilation via Visual C++ 2012 through 2015 + * compile-time platform detection for SDL programs. The C/C++ #define, + `__WINRT__`, will be set to 1 (by SDL) when compiling for WinRT. + * GPU-accelerated 2D rendering, via SDL_Renderer. + * OpenGL ES 2, via the ANGLE library (included separately from SDL) + * software rendering, via either SDL_Surface (optionally in conjunction with + SDL_GetWindowSurface() and SDL_UpdateWindowSurface()) or via the + SDL_Renderer APIs + * threads + * timers (via SDL_GetTicks(), SDL_AddTimer(), SDL_GetPerformanceCounter(), + SDL_GetPerformanceFrequency(), etc.) + * file I/O via SDL_RWops + * mouse input (unsupported on Windows Phone) + * audio, via a modified version of SDL's XAudio2 backend + * .DLL file loading. Libraries *MUST* be packaged inside applications. Loading + anything outside of the app is not supported. + * system path retrieval via SDL's filesystem APIs + * game controllers. Support is provided via the SDL_Joystick and + SDL_GameController APIs, and is backed by Microsoft's XInput API. Please + note, however, that Windows limits game-controller support in UWP apps to, + "Xbox compatible controllers" (many controllers that work in Win32 apps, + do not work in UWP, due to restrictions in UWP itself.) + * multi-touch input + * app events. SDL_APP_WILLENTER* and SDL_APP_DIDENTER* events get sent out as + appropriate. + * window events + * using Direct3D 11.x APIs outside of SDL. Non-XAML / Direct3D-only apps can + choose to render content directly via Direct3D, using SDL to manage the + internal WinRT window, as well as input and audio. (Use + SDL_GetWindowWMInfo() to get the WinRT 'CoreWindow', and pass it into + IDXGIFactory2::CreateSwapChainForCoreWindow() as appropriate.) + +* What partially works: + * keyboard input. Most of WinRT's documented virtual keys are supported, as + well as many keys with documented hardware scancodes. Converting + SDL_Scancodes to or from SDL_Keycodes may not work, due to missing APIs + (MapVirtualKey()) in Microsoft's Windows Store / UWP APIs. + * SDLmain. WinRT uses a different signature for each app's main() function. + SDL-based apps that use this port must compile in SDL_winrt_main_NonXAML.cpp + (in `SDL\src\main\winrt\`) directly in order for their C-style main() + functions to be called. + +* What doesn't work: + * compilation with anything other than Visual C++ + * programmatically-created custom cursors. These don't appear to be supported + by WinRT. Different OS-provided cursors can, however, be created via + SDL_CreateSystemCursor() (unsupported on Windows Phone) + * SDL_WarpMouseInWindow() or SDL_WarpMouseGlobal(). This are not currently + supported by WinRT itself. + * joysticks and game controllers that either are not supported by + Microsoft's XInput API, or are not supported within UWP apps (many + controllers that work in Win32, do not work in UWP, due to restrictions in + UWP itself). + * turning off VSync when rendering on Windows Phone. Attempts to turn VSync + off on Windows Phone result either in Direct3D not drawing anything, or it + forcing VSync back on. As such, SDL_RENDERER_PRESENTVSYNC will always get + turned-on on Windows Phone. This limitation is not present in non-Phone + WinRT (such as Windows 8.x), where turning off VSync appears to work. + * probably anything else that's not listed as supported + + + +Upgrade Notes +------------- + +#### SDL_GetPrefPath() usage when upgrading WinRT apps from SDL 2.0.3 + +SDL 2.0.4 fixes two bugs found in the WinRT version of SDL_GetPrefPath(). +The fixes may affect older, SDL 2.0.3-based apps' save data. Please note +that these changes only apply to SDL-based WinRT apps, and not to apps for +any other platform. + +1. SDL_GetPrefPath() would return an invalid path, one in which the path's + directory had not been created. Attempts to create files there + (via fopen(), for example), would fail, unless that directory was + explicitly created beforehand. + +2. SDL_GetPrefPath(), for non-WinPhone-based apps, would return a path inside + a WinRT 'Roaming' folder, the contents of which get automatically + synchronized across multiple devices. This process can occur while an + application runs, and can cause existing save-data to be overwritten + at unexpected times, with data from other devices. (Windows Phone apps + written with SDL 2.0.3 did not utilize a Roaming folder, due to API + restrictions in Windows Phone 8.0). + + +SDL_GetPrefPath(), starting with SDL 2.0.4, addresses these by: + +1. making sure that SDL_GetPrefPath() returns a directory in which data + can be written to immediately, without first needing to create directories. + +2. basing SDL_GetPrefPath() off of a different, non-Roaming folder, the + contents of which do not automatically get synchronized across devices + (and which require less work to use safely, in terms of data integrity). + +Apps that wish to get their Roaming folder's path can do so either by using +SDL_WinRTGetFSPathUTF8(), SDL_WinRTGetFSPathUNICODE() (which returns a +UCS-2/wide-char string), or directly through the WinRT class, +Windows.Storage.ApplicationData. + + + +Setup, High-Level Steps +----------------------- + +The steps for setting up a project for an SDL/WinRT app looks like the +following, at a high-level: + +1. create a new Visual C++ project using Microsoft's template for a, + "Direct3D App". +2. remove most of the files from the project. +3. make your app's project directly reference SDL/WinRT's own Visual C++ + project file, via use of Visual C++'s "References" dialog. This will setup + the linker, and will copy SDL's .dll files to your app's final output. +4. adjust your app's build settings, at minimum, telling it where to find SDL's + header files. +5. add files that contains a WinRT-appropriate main function, along with some + data to make sure mouse-cursor-hiding (via SDL_ShowCursor(SDL_DISABLE) calls) + work properly. +6. add SDL-specific app code. +7. build and run your app. + + +Setup, Detailed Steps +--------------------- + +### 1. Create a new project ### + +Create a new project using one of Visual C++'s templates for a plain, non-XAML, +"Direct3D App" (XAML support for SDL/WinRT is not yet ready for use). If you +don't see one of these templates, in Visual C++'s 'New Project' dialog, try +using the textbox titled, 'Search Installed Templates' to look for one. + + +### 2. Remove unneeded files from the project ### + +In the new project, delete any file that has one of the following extensions: + +- .cpp +- .h +- .hlsl + +When you are done, you should be left with a few files, each of which will be a +necessary part of your app's project. These files will consist of: + +- an .appxmanifest file, which contains metadata on your WinRT app. This is + similar to an Info.plist file on iOS, or an AndroidManifest.xml on Android. +- a few .png files, one of which is a splash screen (displayed when your app + launches), others are app icons. +- a .pfx file, used for code signing purposes. + + +### 3. Add references to SDL's project files ### + +SDL/WinRT can be built in multiple variations, spanning across three different +CPU architectures (x86, x64, and ARM) and two different configurations +(Debug and Release). WinRT and Visual C++ do not currently provide a means +for combining multiple variations of one library into a single file. +Furthermore, it does not provide an easy means for copying pre-built .dll files +into your app's final output (via Post-Build steps, for example). It does, +however, provide a system whereby an app can reference the MSVC projects of +libraries such that, when the app is built: + +1. each library gets built for the appropriate CPU architecture(s) and WinRT + platform(s). +2. each library's output, such as .dll files, get copied to the app's build + output. + +To set this up for SDL/WinRT, you'll need to run through the following steps: + +1. open up the Solution Explorer inside Visual C++ (under the "View" menu, then + "Solution Explorer") +2. right click on your app's solution. +3. navigate to "Add", then to "Existing Project..." +4. find SDL/WinRT's Visual C++ project file and open it. Different project + files exist for different WinRT platforms. All of them are in SDL's + source distribution, in the following directories: + * `VisualC-WinRT/UWP_VS2015/` - for Windows 10 / UWP apps + * `VisualC-WinRT/WinPhone81_VS2013/` - for Windows Phone 8.1 apps + * `VisualC-WinRT/WinRT80_VS2012/` - for Windows 8.0 apps + * `VisualC-WinRT/WinRT81_VS2013/` - for Windows 8.1 apps +5. once the project has been added, right-click on your app's project and + select, "References..." +6. click on the button titled, "Add New Reference..." +7. check the box next to SDL +8. click OK to close the dialog +9. SDL will now show up in the list of references. Click OK to close that + dialog. + +Your project is now linked to SDL's project, insofar that when the app is +built, SDL will be built as well, with its build output getting included with +your app. + + +### 4. Adjust Your App's Build Settings ### + +Some build settings need to be changed in your app's project. This guide will +outline the following: + +- making sure that the compiler knows where to find SDL's header files +- **Optional for C++, but NECESSARY for compiling C code:** telling the + compiler not to use Microsoft's C++ extensions for WinRT development. +- **Optional:** telling the compiler not generate errors due to missing + precompiled header files. + +To change these settings: + +1. right-click on the project +2. choose "Properties" +3. in the drop-down box next to "Configuration", choose, "All Configurations" +4. in the drop-down box next to "Platform", choose, "All Platforms" +5. in the left-hand list, expand the "C/C++" section +6. select "General" +7. edit the "Additional Include Directories" setting, and add a path to SDL's + "include" directory +8. **Optional: to enable compilation of C code:** change the setting for + "Consume Windows Runtime Extension" from "Yes (/ZW)" to "No". If you're + working with a completely C++ based project, this step can usually be + omitted. +9. **Optional: to disable precompiled headers (which can produce + 'stdafx.h'-related build errors, if setup incorrectly:** in the left-hand + list, select "Precompiled Headers", then change the setting for "Precompiled + Header" from "Use (/Yu)" to "Not Using Precompiled Headers". +10. close the dialog, saving settings, by clicking the "OK" button + + +### 5. Add a WinRT-appropriate main function, and a blank-cursor image, to the app. ### + +A few files should be included directly in your app's MSVC project, specifically: +1. a WinRT-appropriate main function (which is different than main() functions on + other platforms) +2. a Win32-style cursor resource, used by SDL_ShowCursor() to hide the mouse cursor + (if and when the app needs to do so). *If this cursor resource is not + included, mouse-position reporting may fail if and when the cursor is + hidden, due to possible bugs/design-oddities in Windows itself.* + +To include these files: + +1. right-click on your project (again, in Visual C++'s Solution Explorer), + navigate to "Add", then choose "Existing Item...". +2. navigate to the directory containing SDL's source code, then into its + subdirectory, 'src/main/winrt/'. Select, then add, the following files: + - `SDL_winrt_main_NonXAML.cpp` + - `SDL2-WinRTResources.rc` + - `SDL2-WinRTResource_BlankCursor.cur` +3. right-click on the file `SDL_winrt_main_NonXAML.cpp` (as listed in your + project), then click on "Properties...". +4. in the drop-down box next to "Configuration", choose, "All Configurations" +5. in the drop-down box next to "Platform", choose, "All Platforms" +6. in the left-hand list, click on "C/C++" +7. change the setting for "Consume Windows Runtime Extension" to "Yes (/ZW)". +8. click the OK button. This will close the dialog. + + +**NOTE: C++/CX compilation is currently required in at least one file of your +app's project. This is to make sure that Visual C++'s linker builds a 'Windows +Metadata' file (.winmd) for your app. Not doing so can lead to build errors.** + + +### 6. Add app code and assets ### + +At this point, you can add in SDL-specific source code. Be sure to include a +C-style main function (ie: `int main(int argc, char *argv[])`). From there you +should be able to create a single `SDL_Window` (WinRT apps can only have one +window, at present), as well as an `SDL_Renderer`. Direct3D will be used to +draw content. Events are received via SDL's usual event functions +(`SDL_PollEvent`, etc.) If you have a set of existing source files and assets, +you can start adding them to the project now. If not, or if you would like to +make sure that you're setup correctly, some short and simple sample code is +provided below. + + +#### 6.A. ... when creating a new app #### + +If you are creating a new app (rather than porting an existing SDL-based app), +or if you would just like a simple app to test SDL/WinRT with before trying to +get existing code working, some working SDL/WinRT code is provided below. To +set this up: + +1. right click on your app's project +2. select Add, then New Item. An "Add New Item" dialog will show up. +3. from the left-hand list, choose "Visual C++" +4. from the middle/main list, choose "C++ File (.cpp)" +5. near the bottom of the dialog, next to "Name:", type in a name for your +source file, such as, "main.cpp". +6. click on the Add button. This will close the dialog, add the new file to +your project, and open the file in Visual C++'s text editor. +7. Copy and paste the following code into the new file, then save it. + + + #include + + int main(int argc, char **argv) + { + SDL_DisplayMode mode; + SDL_Window * window = NULL; + SDL_Renderer * renderer = NULL; + SDL_Event evt; + + if (SDL_Init(SDL_INIT_VIDEO) != 0) { + return 1; + } + + if (SDL_GetCurrentDisplayMode(0, &mode) != 0) { + return 1; + } + + if (SDL_CreateWindowAndRenderer(mode.w, mode.h, SDL_WINDOW_FULLSCREEN, &window, &renderer) != 0) { + return 1; + } + + while (1) { + while (SDL_PollEvent(&evt)) { + } + + SDL_SetRenderDrawColor(renderer, 0, 255, 0, 255); + SDL_RenderClear(renderer); + SDL_RenderPresent(renderer); + } + } + + +#### 6.B. Adding code and assets #### + +If you have existing code and assets that you'd like to add, you should be able +to add them now. The process for adding a set of files is as such. + +1. right click on the app's project +2. select Add, then click on "New Item..." +3. open any source, header, or asset files as appropriate. Support for C and +C++ is available. + +Do note that WinRT only supports a subset of the APIs that are available to +Win32-based apps. Many portions of the Win32 API and the C runtime are not +available. + +A list of unsupported C APIs can be found at + + +General information on using the C runtime in WinRT can be found at + + +A list of supported Win32 APIs for WinRT apps can be found at +. To note, +the list of supported Win32 APIs for Windows Phone 8.0 is different. +That list can be found at + + + +### 7. Build and run your app ### + +Your app project should now be setup, and you should be ready to build your app. +To run it on the local machine, open the Debug menu and choose "Start +Debugging". This will build your app, then run your app full-screen. To switch +out of your app, press the Windows key. Alternatively, you can choose to run +your app in a window. To do this, before building and running your app, find +the drop-down menu in Visual C++'s toolbar that says, "Local Machine". Expand +this by clicking on the arrow on the right side of the list, then click on +Simulator. Once you do that, any time you build and run the app, the app will +launch in window, rather than full-screen. + + +#### 7.A. Running apps on older, ARM-based, "Windows RT" devices #### + +**These instructions do not include Windows Phone, despite Windows Phone +typically running on ARM processors.** They are specifically for devices +that use the "Windows RT" operating system, which was a modified version of +Windows 8.x that ran primarily on ARM-based tablet computers. + +To build and run the app on ARM-based, "Windows RT" devices, you'll need to: + +- install Microsoft's "Remote Debugger" on the device. Visual C++ installs and + debugs ARM-based apps via IP networks. +- change a few options on the development machine, both to make sure it builds + for ARM (rather than x86 or x64), and to make sure it knows how to find the + Windows RT device (on the network). + +Microsoft's Remote Debugger can be found at +. Please note +that separate versions of this debugger exist for different versions of Visual +C++, one each for MSVC 2015, 2013, and 2012. + +To setup Visual C++ to launch your app on an ARM device: + +1. make sure the Remote Debugger is running on your ARM device, and that it's on + the same IP network as your development machine. +2. from Visual C++'s toolbar, find a drop-down menu that says, "Win32". Click + it, then change the value to "ARM". +3. make sure Visual C++ knows the hostname or IP address of the ARM device. To + do this: + 1. open the app project's properties + 2. select "Debugging" + 3. next to "Machine Name", enter the hostname or IP address of the ARM + device + 4. if, and only if, you've turned off authentication in the Remote Debugger, + then change the setting for "Require Authentication" to No + 5. click "OK" +4. build and run the app (from Visual C++). The first time you do this, a + prompt will show up on the ARM device, asking for a Microsoft Account. You + do, unfortunately, need to log in here, and will need to follow the + subsequent registration steps in order to launch the app. After you do so, + if the app didn't already launch, try relaunching it again from within Visual + C++. + + +Troubleshooting +--------------- + +#### Build fails with message, "error LNK2038: mismatch detected for 'vccorlib_lib_should_be_specified_before_msvcrt_lib_to_linker'" + +Try adding the following to your linker flags. In MSVC, this can be done by +right-clicking on the app project, navigating to Configuration Properties -> +Linker -> Command Line, then adding them to the Additional Options +section. + +* For Release builds / MSVC-Configurations, add: + + /nodefaultlib:vccorlib /nodefaultlib:msvcrt vccorlib.lib msvcrt.lib + +* For Debug builds / MSVC-Configurations, add: + + /nodefaultlib:vccorlibd /nodefaultlib:msvcrtd vccorlibd.lib msvcrtd.lib + + +#### Mouse-motion events fail to get sent, or SDL_GetMouseState() fails to return updated values + +This may be caused by a bug in Windows itself, whereby hiding the mouse +cursor can cause mouse-position reporting to fail. + +SDL provides a workaround for this, but it requires that an app links to a +set of Win32-style cursor image-resource files. A copy of suitable resource +files can be found in `src/main/winrt/`. Adding them to an app's Visual C++ +project file should be sufficient to get the app to use them. + + +#### SDL's Visual Studio project file fails to open, with message, "The system can't find the file specified." + +This can be caused for any one of a few reasons, which Visual Studio can +report, but won't always do so in an up-front manner. + +To help determine why this error comes up: + +1. open a copy of Visual Studio without opening a project file. This can be + accomplished via Windows' Start Menu, among other means. +2. show Visual Studio's Output window. This can be done by going to VS' + menu bar, then to View, and then to Output. +3. try opening the SDL project file directly by going to VS' menu bar, then + to File, then to Open, then to Project/Solution. When a File-Open dialog + appears, open the SDL project (such as the one in SDL's source code, in its + directory, VisualC-WinRT/UWP_VS2015/). +4. after attempting to open SDL's Visual Studio project file, additional error + information will be output to the Output window. + +If Visual Studio reports (via its Output window) that the project: + +"could not be loaded because it's missing install components. To fix this launch Visual Studio setup with the following selections: +Microsoft.VisualStudio.ComponentGroup.UWP.VC" + +... then you will need to re-launch Visual Studio's installer, and make sure that +the workflow for "Universal Windows Platform development" is checked, and that its +optional component, "C++ Universal Windows Platform tools" is also checked. While +you are there, if you are planning on targeting UWP / Windows 10, also make sure +that you check the optional component, "Windows 10 SDK (10.0.10240.0)". After +making sure these items are checked as-appropriate, install them. + +Once you install these components, try re-launching Visual Studio, and re-opening +the SDL project file. If you still get the error dialog, try using the Output +window, again, seeing what Visual Studio says about it. + + +#### Game controllers / joysticks aren't working! + +Windows only permits certain game controllers and joysticks to work within +WinRT / UWP apps. Even if a game controller or joystick works in a Win32 +app, that device is not guaranteed to work inside a WinRT / UWP app. + +According to Microsoft, "Xbox compatible controllers" should work inside +UWP apps, potentially with more working in the future. This includes, but +may not be limited to, Microsoft-made Xbox controllers and USB adapters. +(Source: https://social.msdn.microsoft.com/Forums/en-US/9064838b-e8c3-4c18-8a83-19bf0dfe150d/xinput-fails-to-detect-game-controllers?forum=wpdevelop) + + diff --git a/libs/SDL2/docs/README.md b/libs/SDL2/docs/README.md index 4e3106920..7e2c15108 100644 --- a/libs/SDL2/docs/README.md +++ b/libs/SDL2/docs/README.md @@ -1,63 +1,63 @@ -Simple DirectMedia Layer {#mainpage} -======================== - - (SDL) - - Version 2.0 - ---- -http://www.libsdl.org/ - -Simple DirectMedia Layer is a cross-platform development library designed -to provide low level access to audio, keyboard, mouse, joystick, and graphics -hardware via OpenGL and Direct3D. It is used by video playback software, -emulators, and popular games including Valve's award winning catalog -and many Humble Bundle games. - -SDL officially supports Windows, Mac OS X, Linux, iOS, and Android. -Support for other platforms may be found in the source code. - -SDL is written in C, works natively with C++, and there are bindings -available for several other languages, including C# and Python. - -This library is distributed under the zlib license, which can be found -in the file "COPYING.txt". - -The best way to learn how to use SDL is to check out the header files in -the "include" subdirectory and the programs in the "test" subdirectory. -The header files and test programs are well commented and always up to date. - -More documentation and FAQs are available online at [the wiki](http://wiki.libsdl.org/) - -- [Android](README-android.md) -- [CMake](README-cmake.md) -- [DirectFB](README-directfb.md) -- [DynAPI](README-dynapi.md) -- [Emscripten](README-emscripten.md) -- [Gesture](README-gesture.md) -- [Mercurial](README-hg.md) -- [iOS](README-ios.md) -- [Linux](README-linux.md) -- [OS X](README-macosx.md) -- [Native Client](README-nacl.md) -- [Pandora](README-pandora.md) -- [Supported Platforms](README-platforms.md) -- [Porting information](README-porting.md) -- [PSP](README-psp.md) -- [Raspberry Pi](README-raspberrypi.md) -- [Touch](README-touch.md) -- [WinCE](README-wince.md) -- [Windows](README-windows.md) -- [WinRT](README-winrt.md) - -If you need help with the library, or just want to discuss SDL related -issues, you can join the [developers mailing list](http://www.libsdl.org/mailing-list.php) - -If you want to report bugs or contribute patches, please submit them to -[bugzilla](http://bugzilla.libsdl.org/) - -Enjoy! - - -Sam Lantinga - +Simple DirectMedia Layer {#mainpage} +======================== + + (SDL) + + Version 2.0 + +--- +http://www.libsdl.org/ + +Simple DirectMedia Layer is a cross-platform development library designed +to provide low level access to audio, keyboard, mouse, joystick, and graphics +hardware via OpenGL and Direct3D. It is used by video playback software, +emulators, and popular games including Valve's award winning catalog +and many Humble Bundle games. + +SDL officially supports Windows, Mac OS X, Linux, iOS, and Android. +Support for other platforms may be found in the source code. + +SDL is written in C, works natively with C++, and there are bindings +available for several other languages, including C# and Python. + +This library is distributed under the zlib license, which can be found +in the file "COPYING.txt". + +The best way to learn how to use SDL is to check out the header files in +the "include" subdirectory and the programs in the "test" subdirectory. +The header files and test programs are well commented and always up to date. + +More documentation and FAQs are available online at [the wiki](http://wiki.libsdl.org/) + +- [Android](README-android.md) +- [CMake](README-cmake.md) +- [DirectFB](README-directfb.md) +- [DynAPI](README-dynapi.md) +- [Emscripten](README-emscripten.md) +- [Gesture](README-gesture.md) +- [Mercurial](README-hg.md) +- [iOS](README-ios.md) +- [Linux](README-linux.md) +- [OS X](README-macosx.md) +- [Native Client](README-nacl.md) +- [Pandora](README-pandora.md) +- [Supported Platforms](README-platforms.md) +- [Porting information](README-porting.md) +- [PSP](README-psp.md) +- [Raspberry Pi](README-raspberrypi.md) +- [Touch](README-touch.md) +- [WinCE](README-wince.md) +- [Windows](README-windows.md) +- [WinRT](README-winrt.md) + +If you need help with the library, or just want to discuss SDL related +issues, you can join the [developers mailing list](http://www.libsdl.org/mailing-list.php) + +If you want to report bugs or contribute patches, please submit them to +[bugzilla](https://bugzilla.libsdl.org/) + +Enjoy! + + +Sam Lantinga + diff --git a/libs/SDL2/i686-w64-mingw32/bin/SDL2.dll b/libs/SDL2/i686-w64-mingw32/bin/SDL2.dll index 15ad52e16e7f1cb06fc27e5443b6825e216c9bdb..c21f747c2f45540809ff1fd901e2bb607ead0fff 100755 GIT binary patch literal 996352 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 bI6uL|Z8WBn7lIOse5aks?5CTPZ>p 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%0AOoTHqhonxG1o%cFL&ikC>%uN{|a87VO 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 literal 1047552 zcmeFa3w%`7xi>tMOp+l?*dq)OHAt$X5=Bc8S|X^C1c-_n%f%?DSZS&iYm_|%6(w|L zAiLYq^k`dqYFktF)YDqEl_rQ9G6`k~cnQ#ILICkTLr_6&2p5_6|6gnGnaSh=_WR!N zeShC6t=W68>+?M8xv#bNTzP$sCDmfF*zjL8YO$=tmH!IG-@*S>p?cWZ^}{S{hrIEv zb=KK$d~5Elw=K=Bxckl@-hJ~OxwqW>;~(Ft=6?SNxp#YhoO|1kbBnK@lY7UVi+^x_ zR#v9l7`k+Z#WLHPY3V$-dcHZ^9?P&ZhFVibTQ+A|EIo?FGRb0@;6kkv|LsAUMO`B9 zQzYD0ln{RLuLh0q@Zl{^ftSUSEBmnn`{SRuR4JCfUWA86#Zov%mbyrYC#}oUi_1xr+Nqn}81iBCatcWTQov(naSlzFEB)k6(Qo ze~9}8T;C)O;{OUQiyF_rTQ;0>2B_g2X0f<&J=UjP;rZWRx|BU1y#Rj-LEC=*RdKu@ z$ngY?Kr73|Xn1<>_Jx)Sh3DTU+X)(imX_1dZc(3hjprAAZ!V`A&p&%mkF~Qr&`&#c ziGVMc?Lb@6j`Jt{!@R(E>D{-WOs*LSNZS3Rzji-Zawi&!HN;w4mZ9D1KJBI_4F5ms zc8+&ncF5+g0@C6AEm;=L=GL0S%WloG_&c9mzSO(qNfm$8tdQVk@5b!>#s$r|tOI*l z7Btt)(>|JyF`W85hku)Ad99_;yTsq9JajhdyG3vRrj z$zkyxwu%DJr;BSTj{0QItC!ijTm|il?^FzL&ir=5%-TY?&78FfgUVUo$nP}fwJN@0 z=qjFom2WqOj#m+Af2Sv7|C%v`yY`7p;;x>e&vOzba=13vZP(}7HJ3ZuhQYmQq=W=D z277*EWKuL54b-8%rIs|uB7{FE#}YJZE$XGUTmcrfp-5}?cG(JcS1S4l|2FkYJVdt@ z>|S<2o8%4`zLsSPrLi?f3Z-!j

b*?rN9+KihJZWwc$a`G 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μ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

{;vY{q2@=4=As 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 diff --git a/libs/SDL2/i686-w64-mingw32/bin/sdl2-config b/libs/SDL2/i686-w64-mingw32/bin/sdl2-config index 305f6f00b..7fdb82515 100755 --- a/libs/SDL2/i686-w64-mingw32/bin/sdl2-config +++ b/libs/SDL2/i686-w64-mingw32/bin/sdl2-config @@ -1,6 +1,6 @@ #!/bin/sh -prefix=/usr/local/cross-tools/i686-w64-mingw32 +prefix=/usr/local/i686-w64-mingw32 exec_prefix=${prefix} exec_prefix_set=no libdir=${exec_prefix}/lib @@ -39,7 +39,7 @@ while test $# -gt 0; do echo $exec_prefix ;; --version) - echo 2.0.4 + echo 2.0.7 ;; --cflags) echo -I${prefix}/include/SDL2 -Dmain=SDL_main diff --git a/libs/SDL2/i686-w64-mingw32/include/SDL2/SDL.h b/libs/SDL2/i686-w64-mingw32/include/SDL2/SDL.h index 7647b5111..366d50fa3 100644 --- a/libs/SDL2/i686-w64-mingw32/include/SDL2/SDL.h +++ b/libs/SDL2/i686-w64-mingw32/include/SDL2/SDL.h @@ -1,6 +1,6 @@ /* Simple DirectMedia Layer - Copyright (C) 1997-2016 Sam Lantinga + Copyright (C) 1997-2017 Sam Lantinga This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages @@ -26,8 +26,8 @@ */ -#ifndef _SDL_H -#define _SDL_H +#ifndef SDL_h_ +#define SDL_h_ #include "SDL_main.h" #include "SDL_stdinc.h" @@ -40,10 +40,10 @@ #include "SDL_error.h" #include "SDL_events.h" #include "SDL_filesystem.h" -#include "SDL_joystick.h" #include "SDL_gamecontroller.h" #include "SDL_haptic.h" #include "SDL_hints.h" +#include "SDL_joystick.h" #include "SDL_loadso.h" #include "SDL_log.h" #include "SDL_messagebox.h" @@ -51,6 +51,7 @@ #include "SDL_power.h" #include "SDL_render.h" #include "SDL_rwops.h" +#include "SDL_shape.h" #include "SDL_system.h" #include "SDL_thread.h" #include "SDL_timer.h" @@ -72,14 +73,14 @@ extern "C" { * specify the subsystems which you will be using in your application. */ /* @{ */ -#define SDL_INIT_TIMER 0x00000001 -#define SDL_INIT_AUDIO 0x00000010 -#define SDL_INIT_VIDEO 0x00000020 /**< SDL_INIT_VIDEO implies SDL_INIT_EVENTS */ -#define SDL_INIT_JOYSTICK 0x00000200 /**< SDL_INIT_JOYSTICK implies SDL_INIT_EVENTS */ -#define SDL_INIT_HAPTIC 0x00001000 -#define SDL_INIT_GAMECONTROLLER 0x00002000 /**< SDL_INIT_GAMECONTROLLER implies SDL_INIT_JOYSTICK */ -#define SDL_INIT_EVENTS 0x00004000 -#define SDL_INIT_NOPARACHUTE 0x00100000 /**< compatibility; this flag is ignored. */ +#define SDL_INIT_TIMER 0x00000001u +#define SDL_INIT_AUDIO 0x00000010u +#define SDL_INIT_VIDEO 0x00000020u /**< SDL_INIT_VIDEO implies SDL_INIT_EVENTS */ +#define SDL_INIT_JOYSTICK 0x00000200u /**< SDL_INIT_JOYSTICK implies SDL_INIT_EVENTS */ +#define SDL_INIT_HAPTIC 0x00001000u +#define SDL_INIT_GAMECONTROLLER 0x00002000u /**< SDL_INIT_GAMECONTROLLER implies SDL_INIT_JOYSTICK */ +#define SDL_INIT_EVENTS 0x00004000u +#define SDL_INIT_NOPARACHUTE 0x00100000u /**< compatibility; this flag is ignored. */ #define SDL_INIT_EVERYTHING ( \ SDL_INIT_TIMER | SDL_INIT_AUDIO | SDL_INIT_VIDEO | SDL_INIT_EVENTS | \ SDL_INIT_JOYSTICK | SDL_INIT_HAPTIC | SDL_INIT_GAMECONTROLLER \ @@ -95,8 +96,8 @@ extern DECLSPEC int SDLCALL SDL_Init(Uint32 flags); * This function initializes specific SDL subsystems * * Subsystem initialization is ref-counted, you must call - * SDL_QuitSubSystem for each SDL_InitSubSystem to correctly - * shutdown a subsystem manually (or call SDL_Quit to force shutdown). + * SDL_QuitSubSystem() for each SDL_InitSubSystem() to correctly + * shutdown a subsystem manually (or call SDL_Quit() to force shutdown). * If a subsystem is already loaded then this call will * increase the ref-count and return. */ @@ -127,6 +128,6 @@ extern DECLSPEC void SDLCALL SDL_Quit(void); #endif #include "close_code.h" -#endif /* _SDL_H */ +#endif /* SDL_h_ */ /* vi: set ts=4 sw=4 expandtab: */ diff --git a/libs/SDL2/i686-w64-mingw32/include/SDL2/SDL_assert.h b/libs/SDL2/i686-w64-mingw32/include/SDL2/SDL_assert.h index 402981f96..90abbe39b 100644 --- a/libs/SDL2/i686-w64-mingw32/include/SDL2/SDL_assert.h +++ b/libs/SDL2/i686-w64-mingw32/include/SDL2/SDL_assert.h @@ -1,6 +1,6 @@ /* Simple DirectMedia Layer - Copyright (C) 1997-2016 Sam Lantinga + Copyright (C) 1997-2017 Sam Lantinga This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages @@ -19,8 +19,8 @@ 3. This notice may not be removed or altered from any source distribution. */ -#ifndef _SDL_assert_h -#define _SDL_assert_h +#ifndef SDL_assert_h_ +#define SDL_assert_h_ #include "SDL_config.h" @@ -51,9 +51,11 @@ assert can have unique static variables associated with it. /* Don't include intrin.h here because it contains C++ code */ extern void __cdecl __debugbreak(void); #define SDL_TriggerBreakpoint() __debugbreak() -#elif (!defined(__NACL__) && defined(__GNUC__) && (defined(__i386__) || defined(__x86_64__))) +#elif ( (!defined(__NACL__)) && ((defined(__GNUC__) || defined(__clang__)) && (defined(__i386__) || defined(__x86_64__))) ) #define SDL_TriggerBreakpoint() __asm__ __volatile__ ( "int $3\n\t" ) -#elif defined(HAVE_SIGNAL_H) +#elif defined(__386__) && defined(__WATCOMC__) + #define SDL_TriggerBreakpoint() { _asm { int 0x03 } } +#elif defined(HAVE_SIGNAL_H) && !defined(__WATCOMC__) #include #define SDL_TriggerBreakpoint() raise(SIGTRAP) #else @@ -63,7 +65,7 @@ assert can have unique static variables associated with it. #if defined(__STDC_VERSION__) && (__STDC_VERSION__ >= 199901L) /* C99 supports __func__ as a standard. */ # define SDL_FUNCTION __func__ -#elif ((__GNUC__ >= 2) || defined(_MSC_VER)) +#elif ((__GNUC__ >= 2) || defined(_MSC_VER) || defined (__WATCOMC__)) # define SDL_FUNCTION __FUNCTION__ #else # define SDL_FUNCTION "???" @@ -201,7 +203,7 @@ typedef SDL_AssertState (SDLCALL *SDL_AssertionHandler)( * * This callback is NOT reset to SDL's internal handler upon SDL_Quit()! * - * \return SDL_AssertState value of how to handle the assertion failure. + * Return SDL_AssertState value of how to handle the assertion failure. * * \param handler Callback function, called when an assertion fails. * \param userdata A pointer passed to the callback as-is. @@ -250,7 +252,7 @@ extern DECLSPEC SDL_AssertionHandler SDLCALL SDL_GetAssertionHandler(void **puse * * const SDL_AssertData *item = SDL_GetAssertionReport(); * while (item) { - * printf("'%s', %s (%s:%d), triggered %u times, always ignore: %s.\n", + * printf("'%s', %s (%s:%d), triggered %u times, always ignore: %s.\\n", * item->condition, item->function, item->filename, * item->linenum, item->trigger_count, * item->always_ignore ? "yes" : "no"); @@ -284,6 +286,6 @@ extern DECLSPEC void SDLCALL SDL_ResetAssertionReport(void); #endif #include "close_code.h" -#endif /* _SDL_assert_h */ +#endif /* SDL_assert_h_ */ /* vi: set ts=4 sw=4 expandtab: */ diff --git a/libs/SDL2/i686-w64-mingw32/include/SDL2/SDL_atomic.h b/libs/SDL2/i686-w64-mingw32/include/SDL2/SDL_atomic.h index 56aa81df9..36e37f3b7 100644 --- a/libs/SDL2/i686-w64-mingw32/include/SDL2/SDL_atomic.h +++ b/libs/SDL2/i686-w64-mingw32/include/SDL2/SDL_atomic.h @@ -1,6 +1,6 @@ /* Simple DirectMedia Layer - Copyright (C) 1997-2016 Sam Lantinga + Copyright (C) 1997-2017 Sam Lantinga This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages @@ -56,8 +56,8 @@ * All of the atomic operations that modify memory are full memory barriers. */ -#ifndef _SDL_atomic_h_ -#define _SDL_atomic_h_ +#ifndef SDL_atomic_h_ +#define SDL_atomic_h_ #include "SDL_stdinc.h" #include "SDL_platform.h" @@ -118,13 +118,16 @@ extern DECLSPEC void SDLCALL SDL_AtomicUnlock(SDL_SpinLock *lock); * The compiler barrier prevents the compiler from reordering * reads and writes to globally visible variables across the call. */ -#if defined(_MSC_VER) && (_MSC_VER > 1200) +#if defined(_MSC_VER) && (_MSC_VER > 1200) && !defined(__clang__) void _ReadWriteBarrier(void); #pragma intrinsic(_ReadWriteBarrier) #define SDL_CompilerBarrier() _ReadWriteBarrier() #elif (defined(__GNUC__) && !defined(__EMSCRIPTEN__)) || (defined(__SUNPRO_C) && (__SUNPRO_C >= 0x5120)) /* This is correct for all CPUs when using GCC or Solaris Studio 12.1+. */ #define SDL_CompilerBarrier() __asm__ __volatile__ ("" : : : "memory") +#elif defined(__WATCOMC__) +extern _inline void SDL_CompilerBarrier (void); +#pragma aux SDL_CompilerBarrier = "" parm [] modify exact []; #else #define SDL_CompilerBarrier() \ { SDL_SpinLock _tmp = 0; SDL_AtomicLock(&_tmp); SDL_AtomicUnlock(&_tmp); } @@ -149,6 +152,9 @@ void _ReadWriteBarrier(void); * For more information on these semantics, take a look at the blog post: * http://preshing.com/20120913/acquire-and-release-semantics */ +extern DECLSPEC void SDLCALL SDL_MemoryBarrierReleaseFunction(void); +extern DECLSPEC void SDLCALL SDL_MemoryBarrierAcquireFunction(void); + #if defined(__GNUC__) && (defined(__powerpc__) || defined(__ppc__)) #define SDL_MemoryBarrierRelease() __asm__ __volatile__ ("lwsync" : : : "memory") #define SDL_MemoryBarrierAcquire() __asm__ __volatile__ ("lwsync" : : : "memory") @@ -156,11 +162,11 @@ void _ReadWriteBarrier(void); #if defined(__ARM_ARCH_7__) || defined(__ARM_ARCH_7A__) || defined(__ARM_ARCH_7EM__) || defined(__ARM_ARCH_7R__) || defined(__ARM_ARCH_7M__) || defined(__ARM_ARCH_7S__) #define SDL_MemoryBarrierRelease() __asm__ __volatile__ ("dmb ish" : : : "memory") #define SDL_MemoryBarrierAcquire() __asm__ __volatile__ ("dmb ish" : : : "memory") -#elif defined(__ARM_ARCH_6__) || defined(__ARM_ARCH_6J__) || defined(__ARM_ARCH_6K__) || defined(__ARM_ARCH_6T2__) || defined(__ARM_ARCH_6Z__) || defined(__ARM_ARCH_6ZK__) +#elif defined(__ARM_ARCH_6__) || defined(__ARM_ARCH_6J__) || defined(__ARM_ARCH_6K__) || defined(__ARM_ARCH_6T2__) || defined(__ARM_ARCH_6Z__) || defined(__ARM_ARCH_6ZK__) || defined(__ARM_ARCH_5TE__) #ifdef __thumb__ /* The mcr instruction isn't available in thumb mode, use real functions */ -extern DECLSPEC void SDLCALL SDL_MemoryBarrierRelease(); -extern DECLSPEC void SDLCALL SDL_MemoryBarrierAcquire(); +#define SDL_MemoryBarrierRelease() SDL_MemoryBarrierReleaseFunction() +#define SDL_MemoryBarrierAcquire() SDL_MemoryBarrierAcquireFunction() #else #define SDL_MemoryBarrierRelease() __asm__ __volatile__ ("mcr p15, 0, %0, c7, c10, 5" : : "r"(0) : "memory") #define SDL_MemoryBarrierAcquire() __asm__ __volatile__ ("mcr p15, 0, %0, c7, c10, 5" : : "r"(0) : "memory") @@ -263,6 +269,6 @@ extern DECLSPEC void* SDLCALL SDL_AtomicGetPtr(void **a); #include "close_code.h" -#endif /* _SDL_atomic_h_ */ +#endif /* SDL_atomic_h_ */ /* vi: set ts=4 sw=4 expandtab: */ diff --git a/libs/SDL2/i686-w64-mingw32/include/SDL2/SDL_audio.h b/libs/SDL2/i686-w64-mingw32/include/SDL2/SDL_audio.h index 4f6552146..f119c2b26 100644 --- a/libs/SDL2/i686-w64-mingw32/include/SDL2/SDL_audio.h +++ b/libs/SDL2/i686-w64-mingw32/include/SDL2/SDL_audio.h @@ -1,6 +1,6 @@ /* Simple DirectMedia Layer - Copyright (C) 1997-2016 Sam Lantinga + Copyright (C) 1997-2017 Sam Lantinga This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages @@ -25,8 +25,8 @@ * Access to the raw audio mixing buffer for the SDL library. */ -#ifndef _SDL_audio_h -#define _SDL_audio_h +#ifndef SDL_audio_h_ +#define SDL_audio_h_ #include "SDL_stdinc.h" #include "SDL_error.h" @@ -164,6 +164,15 @@ typedef void (SDLCALL * SDL_AudioCallback) (void *userdata, Uint8 * stream, /** * The calculated values in this structure are calculated by SDL_OpenAudio(). + * + * For multi-channel audio, the default SDL channel mapping is: + * 2: FL FR (stereo) + * 3: FL FR LFE (2.1 surround) + * 4: FL FR BL BR (quad) + * 5: FL FR FC BL BR (quad + center) + * 6: FL FR FC LFE SL SR (5.1 surround - last two can also be BL BR) + * 7: FL FR FC LFE BC SL SR (6.1 surround) + * 8: FL FR FC LFE BL BR SL SR (7.1 surround) */ typedef struct SDL_AudioSpec { @@ -171,7 +180,7 @@ typedef struct SDL_AudioSpec SDL_AudioFormat format; /**< Audio data format */ Uint8 channels; /**< Number of channels: 1 mono, 2 stereo */ Uint8 silence; /**< Audio buffer silence value (calculated) */ - Uint16 samples; /**< Audio buffer size in samples (power of 2) */ + Uint16 samples; /**< Audio buffer size in sample FRAMES (total samples divided by channel count) */ Uint16 padding; /**< Necessary for some compile environments */ Uint32 size; /**< Audio buffer size in bytes (calculated) */ SDL_AudioCallback callback; /**< Callback that feeds the audio device (NULL to use SDL_QueueAudio()). */ @@ -184,7 +193,23 @@ typedef void (SDLCALL * SDL_AudioFilter) (struct SDL_AudioCVT * cvt, SDL_AudioFormat format); /** - * A structure to hold a set of audio conversion filters and buffers. + * \brief Upper limit of filters in SDL_AudioCVT + * + * The maximum number of SDL_AudioFilter functions in SDL_AudioCVT is + * currently limited to 9. The SDL_AudioCVT.filters array has 10 pointers, + * one of which is the terminating NULL pointer. + */ +#define SDL_AUDIOCVT_MAX_FILTERS 9 + +/** + * \struct SDL_AudioCVT + * \brief A structure to hold a set of audio conversion filters and buffers. + * + * Note that various parts of the conversion pipeline can take advantage + * of SIMD operations (like SSE2, for example). SDL_AudioCVT doesn't require + * you to pass it aligned data, but can possibly run much faster if you + * set both its (buf) field to a pointer that is aligned to 16 bytes, and its + * (len) field to something that's a multiple of 16, if possible. */ #ifdef __GNUC__ /* This structure is 84 bytes on 32-bit architectures, make sure GCC doesn't @@ -208,7 +233,7 @@ typedef struct SDL_AudioCVT int len_cvt; /**< Length of converted audio buffer */ int len_mult; /**< buffer must be len*len_mult big */ double len_ratio; /**< Given len, final size is len*len_ratio */ - SDL_AudioFilter filters[10]; /**< Filter list */ + SDL_AudioFilter filters[SDL_AUDIOCVT_MAX_FILTERS + 1]; /**< NULL-terminated list of filter functions */ int filter_index; /**< Current audio conversion function */ } SDL_AUDIOCVT_PACKED SDL_AudioCVT; @@ -278,7 +303,8 @@ extern DECLSPEC const char *SDLCALL SDL_GetCurrentAudioDriver(void); * protect data structures that it accesses by calling SDL_LockAudio() * and SDL_UnlockAudio() in your code. Alternately, you may pass a NULL * pointer here, and call SDL_QueueAudio() with some frequency, to queue - * more audio samples to be played. + * more audio samples to be played (or for capture devices, call + * SDL_DequeueAudio() with some frequency, to obtain audio samples). * - \c desired->userdata is passed as the first parameter to your callback * function. If you passed a NULL callback, this value is ignored. * @@ -433,10 +459,10 @@ extern DECLSPEC void SDLCALL SDL_FreeWAV(Uint8 * audio_buf); * This function takes a source format and rate and a destination format * and rate, and initializes the \c cvt structure with information needed * by SDL_ConvertAudio() to convert a buffer of audio data from one format - * to the other. + * to the other. An unsupported format causes an error and -1 will be returned. * - * \return -1 if the format conversion is not supported, 0 if there's - * no conversion needed, or 1 if the audio filter is set up. + * \return 0 if no conversion is needed, 1 if the audio filter is set up, + * or -1 on error. */ extern DECLSPEC int SDLCALL SDL_BuildAudioCVT(SDL_AudioCVT * cvt, SDL_AudioFormat src_format, @@ -455,9 +481,137 @@ extern DECLSPEC int SDLCALL SDL_BuildAudioCVT(SDL_AudioCVT * cvt, * The data conversion may expand the size of the audio data, so the buffer * \c cvt->buf should be allocated after the \c cvt structure is initialized by * SDL_BuildAudioCVT(), and should be \c cvt->len*cvt->len_mult bytes long. + * + * \return 0 on success or -1 if \c cvt->buf is NULL. */ extern DECLSPEC int SDLCALL SDL_ConvertAudio(SDL_AudioCVT * cvt); +/* SDL_AudioStream is a new audio conversion interface. + The benefits vs SDL_AudioCVT: + - it can handle resampling data in chunks without generating + artifacts, when it doesn't have the complete buffer available. + - it can handle incoming data in any variable size. + - You push data as you have it, and pull it when you need it + */ +/* this is opaque to the outside world. */ +struct _SDL_AudioStream; +typedef struct _SDL_AudioStream SDL_AudioStream; + +/** + * Create a new audio stream + * + * \param src_format The format of the source audio + * \param src_channels The number of channels of the source audio + * \param src_rate The sampling rate of the source audio + * \param dst_format The format of the desired audio output + * \param dst_channels The number of channels of the desired audio output + * \param dst_rate The sampling rate of the desired audio output + * \return 0 on success, or -1 on error. + * + * \sa SDL_AudioStreamPut + * \sa SDL_AudioStreamGet + * \sa SDL_AudioStreamAvailable + * \sa SDL_AudioStreamFlush + * \sa SDL_AudioStreamClear + * \sa SDL_FreeAudioStream + */ +extern DECLSPEC SDL_AudioStream * SDLCALL SDL_NewAudioStream(const SDL_AudioFormat src_format, + const Uint8 src_channels, + const int src_rate, + const SDL_AudioFormat dst_format, + const Uint8 dst_channels, + const int dst_rate); + +/** + * Add data to be converted/resampled to the stream + * + * \param stream The stream the audio data is being added to + * \param buf A pointer to the audio data to add + * \param int The number of bytes to write to the stream + * \return 0 on success, or -1 on error. + * + * \sa SDL_NewAudioStream + * \sa SDL_AudioStreamGet + * \sa SDL_AudioStreamAvailable + * \sa SDL_AudioStreamFlush + * \sa SDL_AudioStreamClear + * \sa SDL_FreeAudioStream + */ +extern DECLSPEC int SDLCALL SDL_AudioStreamPut(SDL_AudioStream *stream, const void *buf, int len); + +/** + * Get converted/resampled data from the stream + * + * \param stream The stream the audio is being requested from + * \param buf A buffer to fill with audio data + * \param len The maximum number of bytes to fill + * \return The number of bytes read from the stream, or -1 on error + * + * \sa SDL_NewAudioStream + * \sa SDL_AudioStreamPut + * \sa SDL_AudioStreamAvailable + * \sa SDL_AudioStreamFlush + * \sa SDL_AudioStreamClear + * \sa SDL_FreeAudioStream + */ +extern DECLSPEC int SDLCALL SDL_AudioStreamGet(SDL_AudioStream *stream, void *buf, int len); + +/** + * Get the number of converted/resampled bytes available. The stream may be + * buffering data behind the scenes until it has enough to resample + * correctly, so this number might be lower than what you expect, or even + * be zero. Add more data or flush the stream if you need the data now. + * + * \sa SDL_NewAudioStream + * \sa SDL_AudioStreamPut + * \sa SDL_AudioStreamGet + * \sa SDL_AudioStreamFlush + * \sa SDL_AudioStreamClear + * \sa SDL_FreeAudioStream + */ +extern DECLSPEC int SDLCALL SDL_AudioStreamAvailable(SDL_AudioStream *stream); + +/** + * Tell the stream that you're done sending data, and anything being buffered + * should be converted/resampled and made available immediately. + * + * It is legal to add more data to a stream after flushing, but there will + * be audio gaps in the output. Generally this is intended to signal the + * end of input, so the complete output becomes available. + * + * \sa SDL_NewAudioStream + * \sa SDL_AudioStreamPut + * \sa SDL_AudioStreamGet + * \sa SDL_AudioStreamAvailable + * \sa SDL_AudioStreamClear + * \sa SDL_FreeAudioStream + */ +extern DECLSPEC int SDLCALL SDL_AudioStreamFlush(SDL_AudioStream *stream); + +/** + * Clear any pending data in the stream without converting it + * + * \sa SDL_NewAudioStream + * \sa SDL_AudioStreamPut + * \sa SDL_AudioStreamGet + * \sa SDL_AudioStreamAvailable + * \sa SDL_AudioStreamFlush + * \sa SDL_FreeAudioStream + */ +extern DECLSPEC void SDLCALL SDL_AudioStreamClear(SDL_AudioStream *stream); + +/** + * Free an audio stream + * + * \sa SDL_NewAudioStream + * \sa SDL_AudioStreamPut + * \sa SDL_AudioStreamGet + * \sa SDL_AudioStreamAvailable + * \sa SDL_AudioStreamFlush + * \sa SDL_AudioStreamClear + */ +extern DECLSPEC void SDLCALL SDL_FreeAudioStream(SDL_AudioStream *stream); + #define SDL_MIX_MAXVOLUME 128 /** * This takes two audio buffers of the playing audio format and mixes @@ -482,6 +636,10 @@ extern DECLSPEC void SDLCALL SDL_MixAudioFormat(Uint8 * dst, /** * Queue more audio on non-callback devices. * + * (If you are looking to retrieve queued audio from a non-callback capture + * device, you want SDL_DequeueAudio() instead. This will return -1 to + * signify an error if you use it with capture devices.) + * * SDL offers two ways to feed audio to the device: you can either supply a * callback that SDL triggers with some frequency to obtain more audio * (pull method), or you can supply no callback, and then SDL will expect @@ -509,28 +667,83 @@ extern DECLSPEC void SDLCALL SDL_MixAudioFormat(Uint8 * dst, * \param dev The device ID to which we will queue audio. * \param data The data to queue to the device for later playback. * \param len The number of bytes (not samples!) to which (data) points. - * \return zero on success, -1 on error. + * \return 0 on success, or -1 on error. * * \sa SDL_GetQueuedAudioSize * \sa SDL_ClearQueuedAudio */ extern DECLSPEC int SDLCALL SDL_QueueAudio(SDL_AudioDeviceID dev, const void *data, Uint32 len); +/** + * Dequeue more audio on non-callback devices. + * + * (If you are looking to queue audio for output on a non-callback playback + * device, you want SDL_QueueAudio() instead. This will always return 0 + * if you use it with playback devices.) + * + * SDL offers two ways to retrieve audio from a capture device: you can + * either supply a callback that SDL triggers with some frequency as the + * device records more audio data, (push method), or you can supply no + * callback, and then SDL will expect you to retrieve data at regular + * intervals (pull method) with this function. + * + * There are no limits on the amount of data you can queue, short of + * exhaustion of address space. Data from the device will keep queuing as + * necessary without further intervention from you. This means you will + * eventually run out of memory if you aren't routinely dequeueing data. + * + * Capture devices will not queue data when paused; if you are expecting + * to not need captured audio for some length of time, use + * SDL_PauseAudioDevice() to stop the capture device from queueing more + * data. This can be useful during, say, level loading times. When + * unpaused, capture devices will start queueing data from that point, + * having flushed any capturable data available while paused. + * + * This function is thread-safe, but dequeueing from the same device from + * two threads at once does not promise which thread will dequeued data + * first. + * + * You may not dequeue audio from a device that is using an + * application-supplied callback; doing so returns an error. You have to use + * the audio callback, or dequeue audio with this function, but not both. + * + * You should not call SDL_LockAudio() on the device before queueing; SDL + * handles locking internally for this function. + * + * \param dev The device ID from which we will dequeue audio. + * \param data A pointer into where audio data should be copied. + * \param len The number of bytes (not samples!) to which (data) points. + * \return number of bytes dequeued, which could be less than requested. + * + * \sa SDL_GetQueuedAudioSize + * \sa SDL_ClearQueuedAudio + */ +extern DECLSPEC Uint32 SDLCALL SDL_DequeueAudio(SDL_AudioDeviceID dev, void *data, Uint32 len); + /** * Get the number of bytes of still-queued audio. * - * This is the number of bytes that have been queued for playback with - * SDL_QueueAudio(), but have not yet been sent to the hardware. + * For playback device: * - * Once we've sent it to the hardware, this function can not decide the exact - * byte boundary of what has been played. It's possible that we just gave the - * hardware several kilobytes right before you called this function, but it - * hasn't played any of it yet, or maybe half of it, etc. + * This is the number of bytes that have been queued for playback with + * SDL_QueueAudio(), but have not yet been sent to the hardware. This + * number may shrink at any time, so this only informs of pending data. + * + * Once we've sent it to the hardware, this function can not decide the + * exact byte boundary of what has been played. It's possible that we just + * gave the hardware several kilobytes right before you called this + * function, but it hasn't played any of it yet, or maybe half of it, etc. + * + * For capture devices: + * + * This is the number of bytes that have been captured by the device and + * are waiting for you to dequeue. This number may grow at any time, so + * this only informs of the lower-bound of available data. * * You may not queue audio on a device that is using an application-supplied * callback; calling this function on such a device always returns 0. - * You have to use the audio callback or queue audio with SDL_QueueAudio(), - * but not both. + * You have to queue audio with SDL_QueueAudio()/SDL_DequeueAudio(), or use + * the audio callback, but not both. * * You should not call SDL_LockAudio() on the device before querying; SDL * handles locking internally for this function. @@ -544,10 +757,17 @@ extern DECLSPEC int SDLCALL SDL_QueueAudio(SDL_AudioDeviceID dev, const void *da extern DECLSPEC Uint32 SDLCALL SDL_GetQueuedAudioSize(SDL_AudioDeviceID dev); /** - * Drop any queued audio data waiting to be sent to the hardware. + * Drop any queued audio data. For playback devices, this is any queued data + * still waiting to be submitted to the hardware. For capture devices, this + * is any data that was queued by the device that hasn't yet been dequeued by + * the application. * - * Immediately after this call, SDL_GetQueuedAudioSize() will return 0 and - * the hardware will start playing silence if more audio isn't queued. + * Immediately after this call, SDL_GetQueuedAudioSize() will return 0. For + * playback devices, the hardware will start playing silence if more audio + * isn't queued. Unpaused capture devices will start filling the queue again + * as soon as they have more data available (which, depending on the state + * of the hardware and the thread, could be before this function call + * returns!). * * This will not prevent playback of queued audio that's already been sent * to the hardware, as we can not undo that, so expect there to be some @@ -557,8 +777,8 @@ extern DECLSPEC Uint32 SDLCALL SDL_GetQueuedAudioSize(SDL_AudioDeviceID dev); * * You may not queue audio on a device that is using an application-supplied * callback; calling this function on such a device is always a no-op. - * You have to use the audio callback or queue audio with SDL_QueueAudio(), - * but not both. + * You have to queue audio with SDL_QueueAudio()/SDL_DequeueAudio(), or use + * the audio callback, but not both. * * You should not call SDL_LockAudio() on the device before clearing the * queue; SDL handles locking internally for this function. @@ -600,6 +820,6 @@ extern DECLSPEC void SDLCALL SDL_CloseAudioDevice(SDL_AudioDeviceID dev); #endif #include "close_code.h" -#endif /* _SDL_audio_h */ +#endif /* SDL_audio_h_ */ /* vi: set ts=4 sw=4 expandtab: */ diff --git a/libs/SDL2/i686-w64-mingw32/include/SDL2/SDL_bits.h b/libs/SDL2/i686-w64-mingw32/include/SDL2/SDL_bits.h index 528da2eac..bc2857290 100644 --- a/libs/SDL2/i686-w64-mingw32/include/SDL2/SDL_bits.h +++ b/libs/SDL2/i686-w64-mingw32/include/SDL2/SDL_bits.h @@ -1,6 +1,6 @@ /* Simple DirectMedia Layer - Copyright (C) 1997-2016 Sam Lantinga + Copyright (C) 1997-2017 Sam Lantinga This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages @@ -25,8 +25,8 @@ * Functions for fiddling with bits and bitmasks. */ -#ifndef _SDL_bits_h -#define _SDL_bits_h +#ifndef SDL_bits_h_ +#define SDL_bits_h_ #include "SDL_stdinc.h" @@ -47,10 +47,20 @@ extern "C" { * * \return Index of the most significant bit, or -1 if the value is 0. */ +#if defined(__WATCOMC__) && defined(__386__) +extern _inline int _SDL_clz_watcom (Uint32); +#pragma aux _SDL_clz_watcom = \ + "bsr eax, eax" \ + "xor eax, 31" \ + parm [eax] nomemory \ + value [eax] \ + modify exact [eax] nomemory; +#endif + SDL_FORCE_INLINE int SDL_MostSignificantBitIndex32(Uint32 x) { -#if defined(__GNUC__) && __GNUC__ >= 4 +#if defined(__GNUC__) && (__GNUC__ >= 4 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 4)) /* Count Leading Zeroes builtin in GCC. * http://gcc.gnu.org/onlinedocs/gcc-4.3.4/gcc/Other-Builtins.html */ @@ -58,6 +68,11 @@ SDL_MostSignificantBitIndex32(Uint32 x) return -1; } return 31 - __builtin_clz(x); +#elif defined(__WATCOMC__) && defined(__386__) + if (x == 0) { + return -1; + } + return 31 - _SDL_clz_watcom(x); #else /* Based off of Bit Twiddling Hacks by Sean Eron Anderson * , released in the public domain. @@ -92,6 +107,6 @@ SDL_MostSignificantBitIndex32(Uint32 x) #endif #include "close_code.h" -#endif /* _SDL_bits_h */ +#endif /* SDL_bits_h_ */ /* vi: set ts=4 sw=4 expandtab: */ diff --git a/libs/SDL2/i686-w64-mingw32/include/SDL2/SDL_blendmode.h b/libs/SDL2/i686-w64-mingw32/include/SDL2/SDL_blendmode.h index 56d8ad66e..9abd0bd4c 100644 --- a/libs/SDL2/i686-w64-mingw32/include/SDL2/SDL_blendmode.h +++ b/libs/SDL2/i686-w64-mingw32/include/SDL2/SDL_blendmode.h @@ -1,6 +1,6 @@ /* Simple DirectMedia Layer - Copyright (C) 1997-2016 Sam Lantinga + Copyright (C) 1997-2017 Sam Lantinga This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages @@ -25,8 +25,8 @@ * Header file declaring the SDL_BlendMode enumeration */ -#ifndef _SDL_blendmode_h -#define _SDL_blendmode_h +#ifndef SDL_blendmode_h_ +#define SDL_blendmode_h_ #include "begin_code.h" /* Set up for C function definitions, even when using C++ */ @@ -47,17 +47,74 @@ typedef enum SDL_BLENDMODE_ADD = 0x00000002, /**< additive blending dstRGB = (srcRGB * srcA) + dstRGB dstA = dstA */ - SDL_BLENDMODE_MOD = 0x00000004 /**< color modulate + SDL_BLENDMODE_MOD = 0x00000004, /**< color modulate dstRGB = srcRGB * dstRGB dstA = dstA */ + SDL_BLENDMODE_INVALID = 0x7FFFFFFF + + /* Additional custom blend modes can be returned by SDL_ComposeCustomBlendMode() */ + } SDL_BlendMode; +/** + * \brief The blend operation used when combining source and destination pixel components + */ +typedef enum +{ + SDL_BLENDOPERATION_ADD = 0x1, /**< dst + src: supported by all renderers */ + SDL_BLENDOPERATION_SUBTRACT = 0x2, /**< dst - src : supported by D3D9, D3D11, OpenGL, OpenGLES */ + SDL_BLENDOPERATION_REV_SUBTRACT = 0x3, /**< src - dst : supported by D3D9, D3D11, OpenGL, OpenGLES */ + SDL_BLENDOPERATION_MINIMUM = 0x4, /**< min(dst, src) : supported by D3D11 */ + SDL_BLENDOPERATION_MAXIMUM = 0x5 /**< max(dst, src) : supported by D3D11 */ + +} SDL_BlendOperation; + +/** + * \brief The normalized factor used to multiply pixel components + */ +typedef enum +{ + SDL_BLENDFACTOR_ZERO = 0x1, /**< 0, 0, 0, 0 */ + SDL_BLENDFACTOR_ONE = 0x2, /**< 1, 1, 1, 1 */ + SDL_BLENDFACTOR_SRC_COLOR = 0x3, /**< srcR, srcG, srcB, srcA */ + SDL_BLENDFACTOR_ONE_MINUS_SRC_COLOR = 0x4, /**< 1-srcR, 1-srcG, 1-srcB, 1-srcA */ + SDL_BLENDFACTOR_SRC_ALPHA = 0x5, /**< srcA, srcA, srcA, srcA */ + SDL_BLENDFACTOR_ONE_MINUS_SRC_ALPHA = 0x6, /**< 1-srcA, 1-srcA, 1-srcA, 1-srcA */ + SDL_BLENDFACTOR_DST_COLOR = 0x7, /**< dstR, dstG, dstB, dstA */ + SDL_BLENDFACTOR_ONE_MINUS_DST_COLOR = 0x8, /**< 1-dstR, 1-dstG, 1-dstB, 1-dstA */ + SDL_BLENDFACTOR_DST_ALPHA = 0x9, /**< dstA, dstA, dstA, dstA */ + SDL_BLENDFACTOR_ONE_MINUS_DST_ALPHA = 0xA /**< 1-dstA, 1-dstA, 1-dstA, 1-dstA */ + +} SDL_BlendFactor; + +/** + * \brief Create a custom blend mode, which may or may not be supported by a given renderer + * + * \param srcColorFactor + * \param dstColorFactor + * \param colorOperation + * \param srcAlphaFactor + * \param dstAlphaFactor + * \param alphaOperation + * + * The result of the blend mode operation will be: + * dstRGB = dstRGB * dstColorFactor colorOperation srcRGB * srcColorFactor + * and + * dstA = dstA * dstAlphaFactor alphaOperation srcA * srcAlphaFactor + */ +extern DECLSPEC SDL_BlendMode SDLCALL SDL_ComposeCustomBlendMode(SDL_BlendFactor srcColorFactor, + SDL_BlendFactor dstColorFactor, + SDL_BlendOperation colorOperation, + SDL_BlendFactor srcAlphaFactor, + SDL_BlendFactor dstAlphaFactor, + SDL_BlendOperation alphaOperation); + /* Ends C function definitions when using C++ */ #ifdef __cplusplus } #endif #include "close_code.h" -#endif /* _SDL_blendmode_h */ +#endif /* SDL_blendmode_h_ */ /* vi: set ts=4 sw=4 expandtab: */ diff --git a/libs/SDL2/i686-w64-mingw32/include/SDL2/SDL_clipboard.h b/libs/SDL2/i686-w64-mingw32/include/SDL2/SDL_clipboard.h index a5556f21c..341f4ba42 100644 --- a/libs/SDL2/i686-w64-mingw32/include/SDL2/SDL_clipboard.h +++ b/libs/SDL2/i686-w64-mingw32/include/SDL2/SDL_clipboard.h @@ -1,6 +1,6 @@ /* Simple DirectMedia Layer - Copyright (C) 1997-2016 Sam Lantinga + Copyright (C) 1997-2017 Sam Lantinga This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages @@ -25,8 +25,8 @@ * Include file for SDL clipboard handling */ -#ifndef _SDL_clipboard_h -#define _SDL_clipboard_h +#ifndef SDL_clipboard_h_ +#define SDL_clipboard_h_ #include "SDL_stdinc.h" @@ -66,6 +66,6 @@ extern DECLSPEC SDL_bool SDLCALL SDL_HasClipboardText(void); #endif #include "close_code.h" -#endif /* _SDL_clipboard_h */ +#endif /* SDL_clipboard_h_ */ /* vi: set ts=4 sw=4 expandtab: */ diff --git a/libs/SDL2/i686-w64-mingw32/include/SDL2/SDL_config.h b/libs/SDL2/i686-w64-mingw32/include/SDL2/SDL_config.h index 890986cc4..1bbb83848 100644 --- a/libs/SDL2/i686-w64-mingw32/include/SDL2/SDL_config.h +++ b/libs/SDL2/i686-w64-mingw32/include/SDL2/SDL_config.h @@ -1,6 +1,6 @@ /* Simple DirectMedia Layer - Copyright (C) 1997-2016 Sam Lantinga + Copyright (C) 1997-2017 Sam Lantinga This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages @@ -19,8 +19,9 @@ 3. This notice may not be removed or altered from any source distribution. */ -#ifndef _SDL_config_windows_h -#define _SDL_config_windows_h +#ifndef SDL_config_windows_h_ +#define SDL_config_windows_h_ +#define SDL_config_h_ #include "SDL_platform.h" @@ -85,12 +86,14 @@ typedef unsigned int uintptr_t; /* This is disabled by default to avoid C runtime dependencies and manifest requirements */ #ifdef HAVE_LIBC /* Useful headers */ -#define HAVE_STDIO_H 1 #define STDC_HEADERS 1 -#define HAVE_STRING_H 1 #define HAVE_CTYPE_H 1 +#define HAVE_FLOAT_H 1 +#define HAVE_LIMITS_H 1 #define HAVE_MATH_H 1 #define HAVE_SIGNAL_H 1 +#define HAVE_STDIO_H 1 +#define HAVE_STRING_H 1 /* C library functions */ #define HAVE_MALLOC 1 @@ -139,12 +142,19 @@ typedef unsigned int uintptr_t; #define HAVE_SQRTF 1 #define HAVE_TAN 1 #define HAVE_TANF 1 +#define HAVE__COPYSIGN 1 +#if defined(_MSC_VER) +/* These functions were added with the VC++ 2013 C runtime library */ #if _MSC_VER >= 1800 #define HAVE_STRTOLL 1 #define HAVE_VSSCANF 1 -#define HAVE_COPYSIGN 1 #define HAVE_SCALBN 1 #endif +/* This function is available with at least the VC++ 2008 C runtime library */ +#if _MSC_VER >= 1400 +#define HAVE__FSEEKI64 1 +#endif +#endif #if !defined(_MSC_VER) || defined(_USE_MATH_DEFINES) #define HAVE_M_PI 1 #endif @@ -154,8 +164,9 @@ typedef unsigned int uintptr_t; #endif /* Enable various audio drivers */ +#define SDL_AUDIO_DRIVER_WASAPI 1 #define SDL_AUDIO_DRIVER_DSOUND 1 -#define SDL_AUDIO_DRIVER_XAUDIO2 1 +#define SDL_AUDIO_DRIVER_XAUDIO2 0 #define SDL_AUDIO_DRIVER_WINMM 1 #define SDL_AUDIO_DRIVER_DISK 1 #define SDL_AUDIO_DRIVER_DUMMY 1 @@ -206,6 +217,8 @@ typedef unsigned int uintptr_t; #define SDL_VIDEO_OPENGL_EGL 1 #endif +/* Enable Vulkan support */ +#define SDL_VIDEO_VULKAN 1 /* Enable system power support */ #define SDL_POWER_WINDOWS 1 @@ -218,4 +231,4 @@ typedef unsigned int uintptr_t; #define SDL_ASSEMBLY_ROUTINES 1 #endif -#endif /* _SDL_config_windows_h */ +#endif /* SDL_config_windows_h_ */ diff --git a/libs/SDL2/i686-w64-mingw32/include/SDL2/SDL_cpuinfo.h b/libs/SDL2/i686-w64-mingw32/include/SDL2/SDL_cpuinfo.h index d0ba47bf7..94b64b03b 100644 --- a/libs/SDL2/i686-w64-mingw32/include/SDL2/SDL_cpuinfo.h +++ b/libs/SDL2/i686-w64-mingw32/include/SDL2/SDL_cpuinfo.h @@ -1,6 +1,6 @@ /* Simple DirectMedia Layer - Copyright (C) 1997-2016 Sam Lantinga + Copyright (C) 1997-2017 Sam Lantinga This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages @@ -25,14 +25,20 @@ * CPU feature detection for SDL. */ -#ifndef _SDL_cpuinfo_h -#define _SDL_cpuinfo_h +#ifndef SDL_cpuinfo_h_ +#define SDL_cpuinfo_h_ #include "SDL_stdinc.h" /* Need to do this here because intrin.h has C++ code in it */ /* Visual Studio 2005 has a bug where intrin.h conflicts with winnt.h */ #if defined(_MSC_VER) && (_MSC_VER >= 1500) && (defined(_M_IX86) || defined(_M_X64)) +#ifdef __clang__ +/* Many of the intrinsics SDL uses are not implemented by clang with Visual Studio */ +#undef __MMX__ +#undef __SSE__ +#undef __SSE2__ +#else #include #ifndef _WIN64 #define __MMX__ @@ -40,6 +46,7 @@ #endif #define __SSE__ #define __SSE2__ +#endif /* __clang__ */ #elif defined(__MINGW64_VERSION_MAJOR) #include #else @@ -61,6 +68,9 @@ #ifdef __SSE2__ #include #endif +#ifdef __SSE3__ +#include +#endif #endif #include "begin_code.h" @@ -144,6 +154,11 @@ extern DECLSPEC SDL_bool SDLCALL SDL_HasAVX(void); */ extern DECLSPEC SDL_bool SDLCALL SDL_HasAVX2(void); +/** + * This function returns true if the CPU has NEON (ARM SIMD) features. + */ +extern DECLSPEC SDL_bool SDLCALL SDL_HasNEON(void); + /** * This function returns the amount of RAM configured in the system, in MB. */ @@ -156,6 +171,6 @@ extern DECLSPEC int SDLCALL SDL_GetSystemRAM(void); #endif #include "close_code.h" -#endif /* _SDL_cpuinfo_h */ +#endif /* SDL_cpuinfo_h_ */ /* vi: set ts=4 sw=4 expandtab: */ diff --git a/libs/SDL2/i686-w64-mingw32/include/SDL2/SDL_egl.h b/libs/SDL2/i686-w64-mingw32/include/SDL2/SDL_egl.h index bea2a6c0e..e47fbe862 100644 --- a/libs/SDL2/i686-w64-mingw32/include/SDL2/SDL_egl.h +++ b/libs/SDL2/i686-w64-mingw32/include/SDL2/SDL_egl.h @@ -1,6 +1,6 @@ /* Simple DirectMedia Layer - Copyright (C) 1997-2016 Sam Lantinga + Copyright (C) 1997-2017 Sam Lantinga This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages @@ -132,7 +132,7 @@ *------------------------------------------------------------------------- * This precedes the return type of the function in the function prototype. */ -#if defined(_WIN32) && !defined(__SCITECH_SNAP__) +#if defined(_WIN32) && !defined(__SCITECH_SNAP__) && !defined(SDL_VIDEO_STATIC_ANGLE) # define KHRONOS_APICALL __declspec(dllimport) #elif defined (__SYMBIAN32__) # define KHRONOS_APICALL IMPORT_C diff --git a/libs/SDL2/i686-w64-mingw32/include/SDL2/SDL_endian.h b/libs/SDL2/i686-w64-mingw32/include/SDL2/SDL_endian.h index 9100b103d..3eda7f287 100644 --- a/libs/SDL2/i686-w64-mingw32/include/SDL2/SDL_endian.h +++ b/libs/SDL2/i686-w64-mingw32/include/SDL2/SDL_endian.h @@ -1,6 +1,6 @@ /* Simple DirectMedia Layer - Copyright (C) 1997-2016 Sam Lantinga + Copyright (C) 1997-2017 Sam Lantinga This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages @@ -25,8 +25,8 @@ * Functions for reading and writing endian-specific values */ -#ifndef _SDL_endian_h -#define _SDL_endian_h +#ifndef SDL_endian_h_ +#define SDL_endian_h_ #include "SDL_stdinc.h" @@ -96,6 +96,12 @@ SDL_Swap16(Uint16 x) __asm__("rorw #8,%0": "=d"(x): "0"(x):"cc"); return x; } +#elif defined(__WATCOMC__) && defined(__386__) +extern _inline Uint16 SDL_Swap16(Uint16); +#pragma aux SDL_Swap16 = \ + "xchg al, ah" \ + parm [ax] \ + modify [ax]; #else SDL_FORCE_INLINE Uint16 SDL_Swap16(Uint16 x) @@ -136,6 +142,21 @@ SDL_Swap32(Uint32 x) __asm__("rorw #8,%0\n\tswap %0\n\trorw #8,%0": "=d"(x): "0"(x):"cc"); return x; } +#elif defined(__WATCOMC__) && defined(__386__) +extern _inline Uint32 SDL_Swap32(Uint32); +#ifndef __SW_3 /* 486+ */ +#pragma aux SDL_Swap32 = \ + "bswap eax" \ + parm [eax] \ + modify [eax]; +#else /* 386-only */ +#pragma aux SDL_Swap32 = \ + "xchg al, ah" \ + "ror eax, 16" \ + "xchg al, ah" \ + parm [eax] \ + modify [eax]; +#endif #else SDL_FORCE_INLINE Uint32 SDL_Swap32(Uint32 x) @@ -234,6 +255,6 @@ SDL_SwapFloat(float x) #endif #include "close_code.h" -#endif /* _SDL_endian_h */ +#endif /* SDL_endian_h_ */ /* vi: set ts=4 sw=4 expandtab: */ diff --git a/libs/SDL2/i686-w64-mingw32/include/SDL2/SDL_error.h b/libs/SDL2/i686-w64-mingw32/include/SDL2/SDL_error.h index 2f3b4b500..49be9827e 100644 --- a/libs/SDL2/i686-w64-mingw32/include/SDL2/SDL_error.h +++ b/libs/SDL2/i686-w64-mingw32/include/SDL2/SDL_error.h @@ -1,6 +1,6 @@ /* Simple DirectMedia Layer - Copyright (C) 1997-2016 Sam Lantinga + Copyright (C) 1997-2017 Sam Lantinga This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages @@ -25,8 +25,8 @@ * Simple error message routines for SDL. */ -#ifndef _SDL_error_h -#define _SDL_error_h +#ifndef SDL_error_h_ +#define SDL_error_h_ #include "SDL_stdinc.h" @@ -71,6 +71,6 @@ extern DECLSPEC int SDLCALL SDL_Error(SDL_errorcode code); #endif #include "close_code.h" -#endif /* _SDL_error_h */ +#endif /* SDL_error_h_ */ /* vi: set ts=4 sw=4 expandtab: */ diff --git a/libs/SDL2/i686-w64-mingw32/include/SDL2/SDL_events.h b/libs/SDL2/i686-w64-mingw32/include/SDL2/SDL_events.h index 1437f4c70..0fc09bc37 100644 --- a/libs/SDL2/i686-w64-mingw32/include/SDL2/SDL_events.h +++ b/libs/SDL2/i686-w64-mingw32/include/SDL2/SDL_events.h @@ -1,6 +1,6 @@ /* Simple DirectMedia Layer - Copyright (C) 1997-2016 Sam Lantinga + Copyright (C) 1997-2017 Sam Lantinga This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages @@ -25,8 +25,8 @@ * Include file for SDL event handling. */ -#ifndef _SDL_events_h -#define _SDL_events_h +#ifndef SDL_events_h_ +#define SDL_events_h_ #include "SDL_stdinc.h" #include "SDL_error.h" @@ -136,6 +136,9 @@ typedef enum /* Drag and drop events */ SDL_DROPFILE = 0x1000, /**< The system requests a file open */ + SDL_DROPTEXT, /**< text/plain drag-and-drop event */ + SDL_DROPBEGIN, /**< A new set of drops is beginning (NULL filename) */ + SDL_DROPCOMPLETE, /**< Current set of drops is now complete (NULL filename) */ /* Audio hotplug events */ SDL_AUDIODEVICEADDED = 0x1100, /**< A new audio device is available */ @@ -162,7 +165,7 @@ typedef enum typedef struct SDL_CommonEvent { Uint32 type; - Uint32 timestamp; + Uint32 timestamp; /**< In milliseconds, populated using SDL_GetTicks() */ } SDL_CommonEvent; /** @@ -171,7 +174,7 @@ typedef struct SDL_CommonEvent typedef struct SDL_WindowEvent { Uint32 type; /**< ::SDL_WINDOWEVENT */ - Uint32 timestamp; + Uint32 timestamp; /**< In milliseconds, populated using SDL_GetTicks() */ Uint32 windowID; /**< The associated window */ Uint8 event; /**< ::SDL_WindowEventID */ Uint8 padding1; @@ -187,7 +190,7 @@ typedef struct SDL_WindowEvent typedef struct SDL_KeyboardEvent { Uint32 type; /**< ::SDL_KEYDOWN or ::SDL_KEYUP */ - Uint32 timestamp; + Uint32 timestamp; /**< In milliseconds, populated using SDL_GetTicks() */ Uint32 windowID; /**< The window with keyboard focus, if any */ Uint8 state; /**< ::SDL_PRESSED or ::SDL_RELEASED */ Uint8 repeat; /**< Non-zero if this is a key repeat */ @@ -203,7 +206,7 @@ typedef struct SDL_KeyboardEvent typedef struct SDL_TextEditingEvent { Uint32 type; /**< ::SDL_TEXTEDITING */ - Uint32 timestamp; + Uint32 timestamp; /**< In milliseconds, populated using SDL_GetTicks() */ Uint32 windowID; /**< The window with keyboard focus, if any */ char text[SDL_TEXTEDITINGEVENT_TEXT_SIZE]; /**< The editing text */ Sint32 start; /**< The start cursor of selected editing text */ @@ -218,7 +221,7 @@ typedef struct SDL_TextEditingEvent typedef struct SDL_TextInputEvent { Uint32 type; /**< ::SDL_TEXTINPUT */ - Uint32 timestamp; + Uint32 timestamp; /**< In milliseconds, populated using SDL_GetTicks() */ Uint32 windowID; /**< The window with keyboard focus, if any */ char text[SDL_TEXTINPUTEVENT_TEXT_SIZE]; /**< The input text */ } SDL_TextInputEvent; @@ -229,7 +232,7 @@ typedef struct SDL_TextInputEvent typedef struct SDL_MouseMotionEvent { Uint32 type; /**< ::SDL_MOUSEMOTION */ - Uint32 timestamp; + Uint32 timestamp; /**< In milliseconds, populated using SDL_GetTicks() */ Uint32 windowID; /**< The window with mouse focus, if any */ Uint32 which; /**< The mouse instance id, or SDL_TOUCH_MOUSEID */ Uint32 state; /**< The current button state */ @@ -245,7 +248,7 @@ typedef struct SDL_MouseMotionEvent typedef struct SDL_MouseButtonEvent { Uint32 type; /**< ::SDL_MOUSEBUTTONDOWN or ::SDL_MOUSEBUTTONUP */ - Uint32 timestamp; + Uint32 timestamp; /**< In milliseconds, populated using SDL_GetTicks() */ Uint32 windowID; /**< The window with mouse focus, if any */ Uint32 which; /**< The mouse instance id, or SDL_TOUCH_MOUSEID */ Uint8 button; /**< The mouse button index */ @@ -262,7 +265,7 @@ typedef struct SDL_MouseButtonEvent typedef struct SDL_MouseWheelEvent { Uint32 type; /**< ::SDL_MOUSEWHEEL */ - Uint32 timestamp; + Uint32 timestamp; /**< In milliseconds, populated using SDL_GetTicks() */ Uint32 windowID; /**< The window with mouse focus, if any */ Uint32 which; /**< The mouse instance id, or SDL_TOUCH_MOUSEID */ Sint32 x; /**< The amount scrolled horizontally, positive to the right and negative to the left */ @@ -276,7 +279,7 @@ typedef struct SDL_MouseWheelEvent typedef struct SDL_JoyAxisEvent { Uint32 type; /**< ::SDL_JOYAXISMOTION */ - Uint32 timestamp; + Uint32 timestamp; /**< In milliseconds, populated using SDL_GetTicks() */ SDL_JoystickID which; /**< The joystick instance id */ Uint8 axis; /**< The joystick axis index */ Uint8 padding1; @@ -292,7 +295,7 @@ typedef struct SDL_JoyAxisEvent typedef struct SDL_JoyBallEvent { Uint32 type; /**< ::SDL_JOYBALLMOTION */ - Uint32 timestamp; + Uint32 timestamp; /**< In milliseconds, populated using SDL_GetTicks() */ SDL_JoystickID which; /**< The joystick instance id */ Uint8 ball; /**< The joystick trackball index */ Uint8 padding1; @@ -308,7 +311,7 @@ typedef struct SDL_JoyBallEvent typedef struct SDL_JoyHatEvent { Uint32 type; /**< ::SDL_JOYHATMOTION */ - Uint32 timestamp; + Uint32 timestamp; /**< In milliseconds, populated using SDL_GetTicks() */ SDL_JoystickID which; /**< The joystick instance id */ Uint8 hat; /**< The joystick hat index */ Uint8 value; /**< The hat position value. @@ -328,7 +331,7 @@ typedef struct SDL_JoyHatEvent typedef struct SDL_JoyButtonEvent { Uint32 type; /**< ::SDL_JOYBUTTONDOWN or ::SDL_JOYBUTTONUP */ - Uint32 timestamp; + Uint32 timestamp; /**< In milliseconds, populated using SDL_GetTicks() */ SDL_JoystickID which; /**< The joystick instance id */ Uint8 button; /**< The joystick button index */ Uint8 state; /**< ::SDL_PRESSED or ::SDL_RELEASED */ @@ -342,7 +345,7 @@ typedef struct SDL_JoyButtonEvent typedef struct SDL_JoyDeviceEvent { Uint32 type; /**< ::SDL_JOYDEVICEADDED or ::SDL_JOYDEVICEREMOVED */ - Uint32 timestamp; + Uint32 timestamp; /**< In milliseconds, populated using SDL_GetTicks() */ Sint32 which; /**< The joystick device index for the ADDED event, instance id for the REMOVED event */ } SDL_JoyDeviceEvent; @@ -353,7 +356,7 @@ typedef struct SDL_JoyDeviceEvent typedef struct SDL_ControllerAxisEvent { Uint32 type; /**< ::SDL_CONTROLLERAXISMOTION */ - Uint32 timestamp; + Uint32 timestamp; /**< In milliseconds, populated using SDL_GetTicks() */ SDL_JoystickID which; /**< The joystick instance id */ Uint8 axis; /**< The controller axis (SDL_GameControllerAxis) */ Uint8 padding1; @@ -370,7 +373,7 @@ typedef struct SDL_ControllerAxisEvent typedef struct SDL_ControllerButtonEvent { Uint32 type; /**< ::SDL_CONTROLLERBUTTONDOWN or ::SDL_CONTROLLERBUTTONUP */ - Uint32 timestamp; + Uint32 timestamp; /**< In milliseconds, populated using SDL_GetTicks() */ SDL_JoystickID which; /**< The joystick instance id */ Uint8 button; /**< The controller button (SDL_GameControllerButton) */ Uint8 state; /**< ::SDL_PRESSED or ::SDL_RELEASED */ @@ -385,7 +388,7 @@ typedef struct SDL_ControllerButtonEvent typedef struct SDL_ControllerDeviceEvent { Uint32 type; /**< ::SDL_CONTROLLERDEVICEADDED, ::SDL_CONTROLLERDEVICEREMOVED, or ::SDL_CONTROLLERDEVICEREMAPPED */ - Uint32 timestamp; + Uint32 timestamp; /**< In milliseconds, populated using SDL_GetTicks() */ Sint32 which; /**< The joystick device index for the ADDED event, instance id for the REMOVED or REMAPPED event */ } SDL_ControllerDeviceEvent; @@ -395,7 +398,7 @@ typedef struct SDL_ControllerDeviceEvent typedef struct SDL_AudioDeviceEvent { Uint32 type; /**< ::SDL_AUDIODEVICEADDED, or ::SDL_AUDIODEVICEREMOVED */ - Uint32 timestamp; + Uint32 timestamp; /**< In milliseconds, populated using SDL_GetTicks() */ Uint32 which; /**< The audio device index for the ADDED event (valid until next SDL_GetNumAudioDevices() call), SDL_AudioDeviceID for the REMOVED event */ Uint8 iscapture; /**< zero if an output device, non-zero if a capture device. */ Uint8 padding1; @@ -410,7 +413,7 @@ typedef struct SDL_AudioDeviceEvent typedef struct SDL_TouchFingerEvent { Uint32 type; /**< ::SDL_FINGERMOTION or ::SDL_FINGERDOWN or ::SDL_FINGERUP */ - Uint32 timestamp; + Uint32 timestamp; /**< In milliseconds, populated using SDL_GetTicks() */ SDL_TouchID touchId; /**< The touch device id */ SDL_FingerID fingerId; float x; /**< Normalized in the range 0...1 */ @@ -427,8 +430,8 @@ typedef struct SDL_TouchFingerEvent typedef struct SDL_MultiGestureEvent { Uint32 type; /**< ::SDL_MULTIGESTURE */ - Uint32 timestamp; - SDL_TouchID touchId; /**< The touch device index */ + Uint32 timestamp; /**< In milliseconds, populated using SDL_GetTicks() */ + SDL_TouchID touchId; /**< The touch device id */ float dTheta; float dDist; float x; @@ -444,7 +447,7 @@ typedef struct SDL_MultiGestureEvent typedef struct SDL_DollarGestureEvent { Uint32 type; /**< ::SDL_DOLLARGESTURE or ::SDL_DOLLARRECORD */ - Uint32 timestamp; + Uint32 timestamp; /**< In milliseconds, populated using SDL_GetTicks() */ SDL_TouchID touchId; /**< The touch device id */ SDL_GestureID gestureId; Uint32 numFingers; @@ -461,9 +464,10 @@ typedef struct SDL_DollarGestureEvent */ typedef struct SDL_DropEvent { - Uint32 type; /**< ::SDL_DROPFILE */ - Uint32 timestamp; - char *file; /**< The file name, which should be freed with SDL_free() */ + Uint32 type; /**< ::SDL_DROPBEGIN or ::SDL_DROPFILE or ::SDL_DROPTEXT or ::SDL_DROPCOMPLETE */ + Uint32 timestamp; /**< In milliseconds, populated using SDL_GetTicks() */ + char *file; /**< The file name, which should be freed with SDL_free(), is NULL on begin/complete */ + Uint32 windowID; /**< The window that was dropped on, if any */ } SDL_DropEvent; @@ -473,7 +477,7 @@ typedef struct SDL_DropEvent typedef struct SDL_QuitEvent { Uint32 type; /**< ::SDL_QUIT */ - Uint32 timestamp; + Uint32 timestamp; /**< In milliseconds, populated using SDL_GetTicks() */ } SDL_QuitEvent; /** @@ -482,7 +486,7 @@ typedef struct SDL_QuitEvent typedef struct SDL_OSEvent { Uint32 type; /**< ::SDL_QUIT */ - Uint32 timestamp; + Uint32 timestamp; /**< In milliseconds, populated using SDL_GetTicks() */ } SDL_OSEvent; /** @@ -491,7 +495,7 @@ typedef struct SDL_OSEvent typedef struct SDL_UserEvent { Uint32 type; /**< ::SDL_USEREVENT through ::SDL_LASTEVENT-1 */ - Uint32 timestamp; + Uint32 timestamp; /**< In milliseconds, populated using SDL_GetTicks() */ Uint32 windowID; /**< The associated window if any */ Sint32 code; /**< User defined event code */ void *data1; /**< User defined data pointer */ @@ -511,7 +515,7 @@ typedef struct SDL_SysWMmsg SDL_SysWMmsg; typedef struct SDL_SysWMEvent { Uint32 type; /**< ::SDL_SYSWMEVENT */ - Uint32 timestamp; + Uint32 timestamp; /**< In milliseconds, populated using SDL_GetTicks() */ SDL_SysWMmsg *msg; /**< driver dependent data, defined in SDL_syswm.h */ } SDL_SysWMEvent; @@ -720,7 +724,7 @@ extern DECLSPEC void SDLCALL SDL_FilterEvents(SDL_EventFilter filter, /** * This function allows you to set the state of processing certain events. * - If \c state is set to ::SDL_IGNORE, that event will be automatically - * dropped from the event queue and will not event be filtered. + * dropped from the event queue and will not be filtered. * - If \c state is set to ::SDL_ENABLE, that event will be processed * normally. * - If \c state is set to ::SDL_QUERY, SDL_EventState() will return the @@ -745,6 +749,6 @@ extern DECLSPEC Uint32 SDLCALL SDL_RegisterEvents(int numevents); #endif #include "close_code.h" -#endif /* _SDL_events_h */ +#endif /* SDL_events_h_ */ /* vi: set ts=4 sw=4 expandtab: */ diff --git a/libs/SDL2/i686-w64-mingw32/include/SDL2/SDL_filesystem.h b/libs/SDL2/i686-w64-mingw32/include/SDL2/SDL_filesystem.h index 02999ed27..a1c846ad0 100644 --- a/libs/SDL2/i686-w64-mingw32/include/SDL2/SDL_filesystem.h +++ b/libs/SDL2/i686-w64-mingw32/include/SDL2/SDL_filesystem.h @@ -1,6 +1,6 @@ /* Simple DirectMedia Layer - Copyright (C) 1997-2016 Sam Lantinga + Copyright (C) 1997-2017 Sam Lantinga This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages @@ -25,8 +25,8 @@ * \brief Include file for filesystem SDL API functions */ -#ifndef _SDL_filesystem_h -#define _SDL_filesystem_h +#ifndef SDL_filesystem_h_ +#define SDL_filesystem_h_ #include "SDL_stdinc.h" @@ -131,6 +131,6 @@ extern DECLSPEC char *SDLCALL SDL_GetPrefPath(const char *org, const char *app); #endif #include "close_code.h" -#endif /* _SDL_filesystem_h */ +#endif /* SDL_filesystem_h_ */ /* vi: set ts=4 sw=4 expandtab: */ diff --git a/libs/SDL2/i686-w64-mingw32/include/SDL2/SDL_gamecontroller.h b/libs/SDL2/i686-w64-mingw32/include/SDL2/SDL_gamecontroller.h index 42087eea1..c9215132e 100644 --- a/libs/SDL2/i686-w64-mingw32/include/SDL2/SDL_gamecontroller.h +++ b/libs/SDL2/i686-w64-mingw32/include/SDL2/SDL_gamecontroller.h @@ -1,6 +1,6 @@ /* Simple DirectMedia Layer - Copyright (C) 1997-2016 Sam Lantinga + Copyright (C) 1997-2017 Sam Lantinga This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages @@ -25,8 +25,8 @@ * Include file for SDL game controller event handling */ -#ifndef _SDL_gamecontroller_h -#define _SDL_gamecontroller_h +#ifndef SDL_gamecontroller_h_ +#define SDL_gamecontroller_h_ #include "SDL_stdinc.h" #include "SDL_error.h" @@ -51,7 +51,9 @@ extern "C" { * SDL_Init(): SDL_HINT_JOYSTICK_ALLOW_BACKGROUND_EVENTS */ -/* The gamecontroller structure used to identify an SDL game controller */ +/** + * The gamecontroller structure used to identify an SDL game controller + */ struct _SDL_GameController; typedef struct _SDL_GameController SDL_GameController; @@ -87,13 +89,13 @@ typedef struct SDL_GameControllerButtonBind * To count the number of game controllers in the system for the following: * int nJoysticks = SDL_NumJoysticks(); * int nGameControllers = 0; - * for ( int i = 0; i < nJoysticks; i++ ) { - * if ( SDL_IsGameController(i) ) { + * for (int i = 0; i < nJoysticks; i++) { + * if (SDL_IsGameController(i)) { * nGameControllers++; * } * } * - * Using the SDL_HINT_GAMECONTROLLERCONFIG hint or the SDL_GameControllerAddMapping you can add support for controllers SDL is unaware of or cause an existing controller to have a different binding. The format is: + * Using the SDL_HINT_GAMECONTROLLERCONFIG hint or the SDL_GameControllerAddMapping() you can add support for controllers SDL is unaware of or cause an existing controller to have a different binding. The format is: * guid,name,mappings * * Where GUID is the string value from SDL_JoystickGetGUIDString(), name is the human readable string for the device and mappings are controller mappings to joystick ones. @@ -105,7 +107,7 @@ typedef struct SDL_GameControllerButtonBind * Buttons can be used as a controller axis and vice versa. * * This string shows an example of a valid mapping for a controller - * "341a3608000000000000504944564944,Afterglow PS3 Controller,a:b1,b:b2,y:b3,x:b0,start:b9,guide:b12,back:b8,dpup:h0.1,dpleft:h0.8,dpdown:h0.4,dpright:h0.2,leftshoulder:b4,rightshoulder:b5,leftstick:b10,rightstick:b11,leftx:a0,lefty:a1,rightx:a2,righty:a3,lefttrigger:b6,righttrigger:b7", + * "03000000341a00003608000000000000,PS3 Controller,a:b1,b:b2,y:b3,x:b0,start:b9,guide:b12,back:b8,dpup:h0.1,dpleft:h0.8,dpdown:h0.4,dpright:h0.2,leftshoulder:b4,rightshoulder:b5,leftstick:b10,rightstick:b11,leftx:a0,lefty:a1,rightx:a2,righty:a3,lefttrigger:b6,righttrigger:b7", * */ @@ -117,7 +119,7 @@ typedef struct SDL_GameControllerButtonBind * * \return number of mappings added, -1 on error */ -extern DECLSPEC int SDLCALL SDL_GameControllerAddMappingsFromRW( SDL_RWops * rw, int freerw ); +extern DECLSPEC int SDLCALL SDL_GameControllerAddMappingsFromRW(SDL_RWops * rw, int freerw); /** * Load a set of mappings from a file, filtered by the current SDL_GetPlatform() @@ -131,28 +133,41 @@ extern DECLSPEC int SDLCALL SDL_GameControllerAddMappingsFromRW( SDL_RWops * rw, * * \return 1 if mapping is added, 0 if updated, -1 on error */ -extern DECLSPEC int SDLCALL SDL_GameControllerAddMapping( const char* mappingString ); +extern DECLSPEC int SDLCALL SDL_GameControllerAddMapping(const char* mappingString); + +/** + * Get the number of mappings installed + * + * \return the number of mappings + */ +extern DECLSPEC int SDLCALL SDL_GameControllerNumMappings(void); + +/** + * Get the mapping at a particular index. + * + * \return the mapping string. Must be freed with SDL_free(). Returns NULL if the index is out of range. + */ +extern DECLSPEC char * SDLCALL SDL_GameControllerMappingForIndex(int mapping_index); /** * Get a mapping string for a GUID * - * \return the mapping string. Must be freed with SDL_free. Returns NULL if no mapping is available + * \return the mapping string. Must be freed with SDL_free(). Returns NULL if no mapping is available */ -extern DECLSPEC char * SDLCALL SDL_GameControllerMappingForGUID( SDL_JoystickGUID guid ); +extern DECLSPEC char * SDLCALL SDL_GameControllerMappingForGUID(SDL_JoystickGUID guid); /** * Get a mapping string for an open GameController * - * \return the mapping string. Must be freed with SDL_free. Returns NULL if no mapping is available + * \return the mapping string. Must be freed with SDL_free(). Returns NULL if no mapping is available */ -extern DECLSPEC char * SDLCALL SDL_GameControllerMapping( SDL_GameController * gamecontroller ); +extern DECLSPEC char * SDLCALL SDL_GameControllerMapping(SDL_GameController * gamecontroller); /** * Is the joystick on this index supported by the game controller interface? */ extern DECLSPEC SDL_bool SDLCALL SDL_IsGameController(int joystick_index); - /** * Get the implementation dependent name of a game controller. * This can be called before any controllers are opened. @@ -181,6 +196,24 @@ extern DECLSPEC SDL_GameController *SDLCALL SDL_GameControllerFromInstanceID(SDL */ extern DECLSPEC const char *SDLCALL SDL_GameControllerName(SDL_GameController *gamecontroller); +/** + * Get the USB vendor ID of an opened controller, if available. + * If the vendor ID isn't available this function returns 0. + */ +extern DECLSPEC Uint16 SDLCALL SDL_GameControllerGetVendor(SDL_GameController * gamecontroller); + +/** + * Get the USB product ID of an opened controller, if available. + * If the product ID isn't available this function returns 0. + */ +extern DECLSPEC Uint16 SDLCALL SDL_GameControllerGetProduct(SDL_GameController * gamecontroller); + +/** + * Get the product version of an opened controller, if available. + * If the product version isn't available this function returns 0. + */ +extern DECLSPEC Uint16 SDLCALL SDL_GameControllerGetProductVersion(SDL_GameController * gamecontroller); + /** * Returns SDL_TRUE if the controller has been opened and currently connected, * or SDL_FALSE if it has not. @@ -214,6 +247,12 @@ extern DECLSPEC void SDLCALL SDL_GameControllerUpdate(void); /** * The list of axes available from a controller + * + * Thumbstick axis values range from SDL_JOYSTICK_AXIS_MIN to SDL_JOYSTICK_AXIS_MAX, + * and are centered within ~8000 of zero, though advanced UI will allow users to set + * or autodetect the dead zone, which varies between controllers. + * + * Trigger axis values range from 0 to SDL_JOYSTICK_AXIS_MAX. */ typedef enum { @@ -318,6 +357,6 @@ extern DECLSPEC void SDLCALL SDL_GameControllerClose(SDL_GameController *gamecon #endif #include "close_code.h" -#endif /* _SDL_gamecontroller_h */ +#endif /* SDL_gamecontroller_h_ */ /* vi: set ts=4 sw=4 expandtab: */ diff --git a/libs/SDL2/i686-w64-mingw32/include/SDL2/SDL_gesture.h b/libs/SDL2/i686-w64-mingw32/include/SDL2/SDL_gesture.h index 3c29ca7ac..2bba6a729 100644 --- a/libs/SDL2/i686-w64-mingw32/include/SDL2/SDL_gesture.h +++ b/libs/SDL2/i686-w64-mingw32/include/SDL2/SDL_gesture.h @@ -1,6 +1,6 @@ /* Simple DirectMedia Layer - Copyright (C) 1997-2016 Sam Lantinga + Copyright (C) 1997-2017 Sam Lantinga This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages @@ -25,8 +25,8 @@ * Include file for SDL gesture event handling. */ -#ifndef _SDL_gesture_h -#define _SDL_gesture_h +#ifndef SDL_gesture_h_ +#define SDL_gesture_h_ #include "SDL_stdinc.h" #include "SDL_error.h" @@ -82,6 +82,6 @@ extern DECLSPEC int SDLCALL SDL_LoadDollarTemplates(SDL_TouchID touchId, SDL_RWo #endif #include "close_code.h" -#endif /* _SDL_gesture_h */ +#endif /* SDL_gesture_h_ */ /* vi: set ts=4 sw=4 expandtab: */ diff --git a/libs/SDL2/i686-w64-mingw32/include/SDL2/SDL_haptic.h b/libs/SDL2/i686-w64-mingw32/include/SDL2/SDL_haptic.h index b36d78b12..60daefaa7 100644 --- a/libs/SDL2/i686-w64-mingw32/include/SDL2/SDL_haptic.h +++ b/libs/SDL2/i686-w64-mingw32/include/SDL2/SDL_haptic.h @@ -1,6 +1,6 @@ /* Simple DirectMedia Layer - Copyright (C) 1997-2016 Sam Lantinga + Copyright (C) 1997-2017 Sam Lantinga This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages @@ -22,12 +22,12 @@ /** * \file SDL_haptic.h * - * \brief The SDL Haptic subsystem allows you to control haptic (force feedback) + * \brief The SDL haptic subsystem allows you to control haptic (force feedback) * devices. * * The basic usage is as follows: - * - Initialize the Subsystem (::SDL_INIT_HAPTIC). - * - Open a Haptic Device. + * - Initialize the subsystem (::SDL_INIT_HAPTIC). + * - Open a haptic device. * - SDL_HapticOpen() to open from index. * - SDL_HapticOpenFromJoystick() to open from an existing joystick. * - Create an effect (::SDL_HapticEffect). @@ -104,8 +104,8 @@ * \endcode */ -#ifndef _SDL_haptic_h -#define _SDL_haptic_h +#ifndef SDL_haptic_h_ +#define SDL_haptic_h_ #include "SDL_stdinc.h" #include "SDL_error.h" @@ -149,7 +149,7 @@ typedef struct _SDL_Haptic SDL_Haptic; * * \sa SDL_HapticCondition */ -#define SDL_HAPTIC_CONSTANT (1<<0) +#define SDL_HAPTIC_CONSTANT (1u<<0) /** * \brief Sine wave effect supported. @@ -158,7 +158,7 @@ typedef struct _SDL_Haptic SDL_Haptic; * * \sa SDL_HapticPeriodic */ -#define SDL_HAPTIC_SINE (1<<1) +#define SDL_HAPTIC_SINE (1u<<1) /** * \brief Left/Right effect supported. @@ -169,7 +169,7 @@ typedef struct _SDL_Haptic SDL_Haptic; * \warning this value was SDL_HAPTIC_SQUARE right before 2.0.0 shipped. Sorry, * we ran out of bits, and this is important for XInput devices. */ -#define SDL_HAPTIC_LEFTRIGHT (1<<2) +#define SDL_HAPTIC_LEFTRIGHT (1u<<2) /* !!! FIXME: put this back when we have more bits in 2.1 */ /* #define SDL_HAPTIC_SQUARE (1<<2) */ @@ -181,7 +181,7 @@ typedef struct _SDL_Haptic SDL_Haptic; * * \sa SDL_HapticPeriodic */ -#define SDL_HAPTIC_TRIANGLE (1<<3) +#define SDL_HAPTIC_TRIANGLE (1u<<3) /** * \brief Sawtoothup wave effect supported. @@ -190,7 +190,7 @@ typedef struct _SDL_Haptic SDL_Haptic; * * \sa SDL_HapticPeriodic */ -#define SDL_HAPTIC_SAWTOOTHUP (1<<4) +#define SDL_HAPTIC_SAWTOOTHUP (1u<<4) /** * \brief Sawtoothdown wave effect supported. @@ -199,7 +199,7 @@ typedef struct _SDL_Haptic SDL_Haptic; * * \sa SDL_HapticPeriodic */ -#define SDL_HAPTIC_SAWTOOTHDOWN (1<<5) +#define SDL_HAPTIC_SAWTOOTHDOWN (1u<<5) /** * \brief Ramp effect supported. @@ -208,7 +208,7 @@ typedef struct _SDL_Haptic SDL_Haptic; * * \sa SDL_HapticRamp */ -#define SDL_HAPTIC_RAMP (1<<6) +#define SDL_HAPTIC_RAMP (1u<<6) /** * \brief Spring effect supported - uses axes position. @@ -218,7 +218,7 @@ typedef struct _SDL_Haptic SDL_Haptic; * * \sa SDL_HapticCondition */ -#define SDL_HAPTIC_SPRING (1<<7) +#define SDL_HAPTIC_SPRING (1u<<7) /** * \brief Damper effect supported - uses axes velocity. @@ -228,7 +228,7 @@ typedef struct _SDL_Haptic SDL_Haptic; * * \sa SDL_HapticCondition */ -#define SDL_HAPTIC_DAMPER (1<<8) +#define SDL_HAPTIC_DAMPER (1u<<8) /** * \brief Inertia effect supported - uses axes acceleration. @@ -238,7 +238,7 @@ typedef struct _SDL_Haptic SDL_Haptic; * * \sa SDL_HapticCondition */ -#define SDL_HAPTIC_INERTIA (1<<9) +#define SDL_HAPTIC_INERTIA (1u<<9) /** * \brief Friction effect supported - uses axes movement. @@ -248,14 +248,14 @@ typedef struct _SDL_Haptic SDL_Haptic; * * \sa SDL_HapticCondition */ -#define SDL_HAPTIC_FRICTION (1<<10) +#define SDL_HAPTIC_FRICTION (1u<<10) /** * \brief Custom effect is supported. * * User defined custom haptic effect. */ -#define SDL_HAPTIC_CUSTOM (1<<11) +#define SDL_HAPTIC_CUSTOM (1u<<11) /* @} *//* Haptic effects */ @@ -268,7 +268,7 @@ typedef struct _SDL_Haptic SDL_Haptic; * * \sa SDL_HapticSetGain */ -#define SDL_HAPTIC_GAIN (1<<12) +#define SDL_HAPTIC_GAIN (1u<<12) /** * \brief Device can set autocenter. @@ -277,24 +277,26 @@ typedef struct _SDL_Haptic SDL_Haptic; * * \sa SDL_HapticSetAutocenter */ -#define SDL_HAPTIC_AUTOCENTER (1<<13) +#define SDL_HAPTIC_AUTOCENTER (1u<<13) /** * \brief Device can be queried for effect status. * - * Device can be queried for effect status. + * Device supports querying effect status. * * \sa SDL_HapticGetEffectStatus */ -#define SDL_HAPTIC_STATUS (1<<14) +#define SDL_HAPTIC_STATUS (1u<<14) /** * \brief Device can be paused. * + * Devices supports being paused. + * * \sa SDL_HapticPause * \sa SDL_HapticUnpause */ -#define SDL_HAPTIC_PAUSE (1<<15) +#define SDL_HAPTIC_PAUSE (1u<<15) /** @@ -444,7 +446,7 @@ typedef struct SDL_HapticDirection /** * \brief A structure containing a template for a Constant effect. * - * The struct is exclusive to the ::SDL_HAPTIC_CONSTANT effect. + * This struct is exclusively for the ::SDL_HAPTIC_CONSTANT effect. * * A constant effect applies a constant force in the specified direction * to the joystick. @@ -676,6 +678,8 @@ typedef struct SDL_HapticLeftRight /** * \brief A structure containing a template for the ::SDL_HAPTIC_CUSTOM effect. * + * This struct is exclusively for the ::SDL_HAPTIC_CUSTOM effect. + * * A custom force feedback effect is much like a periodic effect, where the * application can define its exact shape. You will have to allocate the * data yourself. Data should consist of channels * samples Uint16 samples. @@ -804,7 +808,7 @@ typedef union SDL_HapticEffect extern DECLSPEC int SDLCALL SDL_NumHaptics(void); /** - * \brief Get the implementation dependent name of a Haptic device. + * \brief Get the implementation dependent name of a haptic device. * * This can be called before any joysticks are opened. * If no name can be found, this function returns NULL. @@ -817,9 +821,9 @@ extern DECLSPEC int SDLCALL SDL_NumHaptics(void); extern DECLSPEC const char *SDLCALL SDL_HapticName(int device_index); /** - * \brief Opens a Haptic device for usage. + * \brief Opens a haptic device for use. * - * The index passed as an argument refers to the N'th Haptic device on this + * The index passed as an argument refers to the N'th haptic device on this * system. * * When opening a haptic device, its gain will be set to maximum and @@ -885,15 +889,15 @@ extern DECLSPEC SDL_Haptic *SDLCALL SDL_HapticOpenFromMouse(void); * \brief Checks to see if a joystick has haptic features. * * \param joystick Joystick to test for haptic capabilities. - * \return 1 if the joystick is haptic, 0 if it isn't - * or -1 if an error ocurred. + * \return SDL_TRUE if the joystick is haptic, SDL_FALSE if it isn't + * or -1 if an error occurred. * * \sa SDL_HapticOpenFromJoystick */ extern DECLSPEC int SDLCALL SDL_JoystickIsHaptic(SDL_Joystick * joystick); /** - * \brief Opens a Haptic device for usage from a Joystick device. + * \brief Opens a haptic device for use from a joystick device. * * You must still close the haptic device separately. It will not be closed * with the joystick. @@ -913,7 +917,7 @@ extern DECLSPEC SDL_Haptic *SDLCALL SDL_HapticOpenFromJoystick(SDL_Joystick * joystick); /** - * \brief Closes a Haptic device previously opened with SDL_HapticOpen(). + * \brief Closes a haptic device previously opened with SDL_HapticOpen(). * * \param haptic Haptic device to close. */ @@ -957,7 +961,7 @@ extern DECLSPEC int SDLCALL SDL_HapticNumEffectsPlaying(SDL_Haptic * haptic); * Example: * \code * if (SDL_HapticQuery(haptic) & SDL_HAPTIC_CONSTANT) { - * printf("We have constant haptic effect!"); + * printf("We have constant haptic effect!\n"); * } * \endcode * @@ -996,7 +1000,7 @@ extern DECLSPEC int SDLCALL SDL_HapticEffectSupported(SDL_Haptic * haptic, * * \param haptic Haptic device to create the effect on. * \param effect Properties of the effect to create. - * \return The id of the effect on success or -1 on error. + * \return The identifier of the effect on success or -1 on error. * * \sa SDL_HapticUpdateEffect * \sa SDL_HapticRunEffect @@ -1008,13 +1012,13 @@ extern DECLSPEC int SDLCALL SDL_HapticNewEffect(SDL_Haptic * haptic, /** * \brief Updates the properties of an effect. * - * Can be used dynamically, although behaviour when dynamically changing + * Can be used dynamically, although behavior when dynamically changing * direction may be strange. Specifically the effect may reupload itself * and start playing from the start. You cannot change the type either when * running SDL_HapticUpdateEffect(). * * \param haptic Haptic device that has the effect. - * \param effect Effect to update. + * \param effect Identifier of the effect to update. * \param data New effect properties to use. * \return 0 on success or -1 on error. * @@ -1218,6 +1222,6 @@ extern DECLSPEC int SDLCALL SDL_HapticRumbleStop(SDL_Haptic * haptic); #endif #include "close_code.h" -#endif /* _SDL_haptic_h */ +#endif /* SDL_haptic_h_ */ /* vi: set ts=4 sw=4 expandtab: */ diff --git a/libs/SDL2/i686-w64-mingw32/include/SDL2/SDL_hints.h b/libs/SDL2/i686-w64-mingw32/include/SDL2/SDL_hints.h index 3bd5435fb..007a4bee0 100644 --- a/libs/SDL2/i686-w64-mingw32/include/SDL2/SDL_hints.h +++ b/libs/SDL2/i686-w64-mingw32/include/SDL2/SDL_hints.h @@ -1,6 +1,6 @@ /* Simple DirectMedia Layer - Copyright (C) 1997-2016 Sam Lantinga + Copyright (C) 1997-2017 Sam Lantinga This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages @@ -36,8 +36,8 @@ * to how they would like the library to work. */ -#ifndef _SDL_hints_h -#define _SDL_hints_h +#ifndef SDL_hints_h_ +#define SDL_hints_h_ #include "SDL_stdinc.h" @@ -118,6 +118,17 @@ extern "C" { */ #define SDL_HINT_RENDER_DIRECT3D11_DEBUG "SDL_RENDER_DIRECT3D11_DEBUG" +/** + * \brief A variable controlling the scaling policy for SDL_RenderSetLogicalSize. + * + * This variable can be set to the following values: + * "0" or "letterbox" - Uses letterbox/sidebars to fit the entire rendering on screen + * "1" or "overscan" - Will zoom the rendering so it fills the entire screen, allowing edges to be drawn offscreen + * + * By default letterbox is used + */ +#define SDL_HINT_RENDER_LOGICAL_SIZE_MODE "SDL_RENDER_LOGICAL_SIZE_MODE" + /** * \brief A variable controlling the scaling quality * @@ -210,6 +221,12 @@ extern "C" { */ #define SDL_HINT_WINDOW_FRAME_USABLE_WHILE_CURSOR_HIDDEN "SDL_WINDOW_FRAME_USABLE_WHILE_CURSOR_HIDDEN" +/** + * \brief A variable to specify custom icon resource id from RC file on Windows platform + */ +#define SDL_HINT_WINDOWS_INTRESOURCE_ICON "SDL_WINDOWS_INTRESOURCE_ICON" +#define SDL_HINT_WINDOWS_INTRESOURCE_ICON_SMALL "SDL_WINDOWS_INTRESOURCE_ICON_SMALL" + /** * \brief A variable controlling whether the windows message loop is processed by SDL * @@ -233,16 +250,48 @@ extern "C" { #define SDL_HINT_GRAB_KEYBOARD "SDL_GRAB_KEYBOARD" /** -* \brief A variable controlling whether relative mouse mode is implemented using mouse warping -* -* This variable can be set to the following values: -* "0" - Relative mouse mode uses raw input -* "1" - Relative mouse mode uses mouse warping -* -* By default SDL will use raw input for relative mouse mode -*/ + * \brief A variable setting the speed scale for mouse motion, in floating point, when the mouse is not in relative mode + */ +#define SDL_HINT_MOUSE_NORMAL_SPEED_SCALE "SDL_MOUSE_NORMAL_SPEED_SCALE" + +/** + * \brief A variable setting the scale for mouse motion, in floating point, when the mouse is in relative mode + */ +#define SDL_HINT_MOUSE_RELATIVE_SPEED_SCALE "SDL_MOUSE_RELATIVE_SPEED_SCALE" + +/** + * \brief A variable controlling whether relative mouse mode is implemented using mouse warping + * + * This variable can be set to the following values: + * "0" - Relative mouse mode uses raw input + * "1" - Relative mouse mode uses mouse warping + * + * By default SDL will use raw input for relative mouse mode + */ #define SDL_HINT_MOUSE_RELATIVE_MODE_WARP "SDL_MOUSE_RELATIVE_MODE_WARP" +/** + * \brief Allow mouse click events when clicking to focus an SDL window + * + * This variable can be set to the following values: + * "0" - Ignore mouse clicks that activate a window + * "1" - Generate events for mouse clicks that activate a window + * + * By default SDL will ignore mouse clicks that activate a window + */ +#define SDL_HINT_MOUSE_FOCUS_CLICKTHROUGH "SDL_MOUSE_FOCUS_CLICKTHROUGH" + +/** + * \brief A variable controlling whether touch events should generate synthetic mouse events + * + * This variable can be set to the following values: + * "0" - Touch events will not generate mouse events + * "1" - Touch events will generate mouse events + * + * By default SDL will generate mouse events for touch events + */ +#define SDL_HINT_TOUCH_MOUSE_EVENTS "SDL_TOUCH_MOUSE_EVENTS" + /** * \brief Minimize your SDL_Window if it loses key focus when in fullscreen mode. Defaults to true. * @@ -257,8 +306,8 @@ extern "C" { * this is problematic. This functionality can be disabled by setting this * hint. * - * As of SDL 2.0.4, SDL_EnableScreenSaver and SDL_DisableScreenSaver accomplish - * the same thing on iOS. They should be preferred over this hint. + * As of SDL 2.0.4, SDL_EnableScreenSaver() and SDL_DisableScreenSaver() + * accomplish the same thing on iOS. They should be preferred over this hint. * * This variable can be set to the following values: * "0" - Enable idle timer @@ -276,7 +325,35 @@ extern "C" { * "LandscapeLeft", "LandscapeRight", "Portrait" "PortraitUpsideDown" */ #define SDL_HINT_ORIENTATIONS "SDL_IOS_ORIENTATIONS" - + +/** + * \brief A variable controlling whether controllers used with the Apple TV + * generate UI events. + * + * When UI events are generated by controller input, the app will be + * backgrounded when the Apple TV remote's menu button is pressed, and when the + * pause or B buttons on gamepads are pressed. + * + * More information about properly making use of controllers for the Apple TV + * can be found here: + * https://developer.apple.com/tvos/human-interface-guidelines/remote-and-controllers/ + * + * This variable can be set to the following values: + * "0" - Controller input does not generate UI events (the default). + * "1" - Controller input generates UI events. + */ +#define SDL_HINT_APPLE_TV_CONTROLLER_UI_EVENTS "SDL_APPLE_TV_CONTROLLER_UI_EVENTS" + +/** + * \brief A variable controlling whether the Apple TV remote's joystick axes + * will automatically match the rotation of the remote. + * + * This variable can be set to the following values: + * "0" - Remote orientation does not affect joystick axes (the default). + * "1" - Joystick axes are based on the orientation of the remote. + */ +#define SDL_HINT_APPLE_TV_REMOTE_ALLOW_ROTATION "SDL_APPLE_TV_REMOTE_ALLOW_ROTATION" + /** * \brief A variable controlling whether the Android / iOS built-in * accelerometer should be listed as a joystick device, rather than listing @@ -288,7 +365,6 @@ extern "C" { */ #define SDL_HINT_ACCELEROMETER_AS_JOYSTICK "SDL_ACCELEROMETER_AS_JOYSTICK" - /** * \brief A variable that lets you disable the detection and use of Xinput gamepad devices * @@ -298,7 +374,6 @@ extern "C" { */ #define SDL_HINT_XINPUT_ENABLED "SDL_XINPUT_ENABLED" - /** * \brief A variable that causes SDL to use the old axis and button mapping for XInput devices. * @@ -308,9 +383,8 @@ extern "C" { */ #define SDL_HINT_XINPUT_USE_OLD_JOYSTICK_MAPPING "SDL_XINPUT_USE_OLD_JOYSTICK_MAPPING" - /** - * \brief A variable that lets you manually hint extra gamecontroller db entries + * \brief A variable that lets you manually hint extra gamecontroller db entries. * * The variable should be newline delimited rows of gamecontroller config data, see SDL_gamecontroller.h * @@ -319,6 +393,31 @@ extern "C" { */ #define SDL_HINT_GAMECONTROLLERCONFIG "SDL_GAMECONTROLLERCONFIG" +/** + * \brief A variable containing a list of devices to skip when scanning for game controllers. + * + * The format of the string is a comma separated list of USB VID/PID pairs + * in hexadecimal form, e.g. + * + * 0xAAAA/0xBBBB,0xCCCC/0xDDDD + * + * The variable can also take the form of @file, in which case the named + * file will be loaded and interpreted as the value of the variable. + */ +#define SDL_HINT_GAMECONTROLLER_IGNORE_DEVICES "SDL_GAMECONTROLLER_IGNORE_DEVICES" + +/** + * \brief If set, all devices will be skipped when scanning for game controllers except for the ones listed in this variable. + * + * The format of the string is a comma separated list of USB VID/PID pairs + * in hexadecimal form, e.g. + * + * 0xAAAA/0xBBBB,0xCCCC/0xDDDD + * + * The variable can also take the form of @file, in which case the named + * file will be loaded and interpreted as the value of the variable. + */ +#define SDL_HINT_GAMECONTROLLER_IGNORE_DEVICES_EXCEPT "SDL_GAMECONTROLLER_IGNORE_DEVICES_EXCEPT" /** * \brief A variable that lets you enable joystick (and gamecontroller) events even when your app is in the background. @@ -333,7 +432,6 @@ extern "C" { */ #define SDL_HINT_JOYSTICK_ALLOW_BACKGROUND_EVENTS "SDL_JOYSTICK_ALLOW_BACKGROUND_EVENTS" - /** * \brief If set to "0" then never set the top most bit on a SDL Window, even if the video mode expects it. * This is a debugging aid for developers and not expected to be used by end users. The default is "1" @@ -344,7 +442,6 @@ extern "C" { */ #define SDL_HINT_ALLOW_TOPMOST "SDL_ALLOW_TOPMOST" - /** * \brief A variable that controls the timer resolution, in milliseconds. * @@ -362,6 +459,33 @@ extern "C" { #define SDL_HINT_TIMER_RESOLUTION "SDL_TIMER_RESOLUTION" +/** + * \brief A variable describing the content orientation on QtWayland-based platforms. + * + * On QtWayland platforms, windows are rotated client-side to allow for custom + * transitions. In order to correctly position overlays (e.g. volume bar) and + * gestures (e.g. events view, close/minimize gestures), the system needs to + * know in which orientation the application is currently drawing its contents. + * + * This does not cause the window to be rotated or resized, the application + * needs to take care of drawing the content in the right orientation (the + * framebuffer is always in portrait mode). + * + * This variable can be one of the following values: + * "primary" (default), "portrait", "landscape", "inverted-portrait", "inverted-landscape" + */ +#define SDL_HINT_QTWAYLAND_CONTENT_ORIENTATION "SDL_QTWAYLAND_CONTENT_ORIENTATION" + +/** + * \brief Flags to set on QtWayland windows to integrate with the native window manager. + * + * On QtWayland platforms, this hint controls the flags to set on the windows. + * For example, on Sailfish OS "OverridesSystemGestures" disables swipe gestures. + * + * This variable is a space-separated list of the following values (empty = no flags): + * "OverridesSystemGestures", "StaysOnTop", "BypassWindowManager" + */ +#define SDL_HINT_QTWAYLAND_WINDOW_FLAGS "SDL_QTWAYLAND_WINDOW_FLAGS" /** * \brief A string specifying SDL's threads stack size in bytes or "0" for the backend's default size @@ -369,7 +493,7 @@ extern "C" { * Use this hint in case you need to set SDL's threads stack size to other than the default. * This is specially useful if you build SDL against a non glibc libc library (such as musl) which * provides a relatively small default thread stack size (a few kilobytes versus the default 8MB glibc uses). -* Support for this hint is currently available only in the pthread backend. +* Support for this hint is currently available only in the pthread, Windows, and PSP backend. */ #define SDL_HINT_THREAD_STACK_SIZE "SDL_THREAD_STACK_SIZE" @@ -431,7 +555,7 @@ extern "C" { * privacy policy. * * To setup a URL to an app's privacy policy, set SDL_HINT_WINRT_PRIVACY_POLICY_URL - * before calling any SDL_Init functions. The contents of the hint should + * before calling any SDL_Init() functions. The contents of the hint should * be a valid URL. For example, "http://www.example.com". * * The default value is "", which will prevent SDL from adding a privacy policy @@ -461,7 +585,7 @@ extern "C" { * The contents of this hint should be encoded as a UTF8 string. * * The default value is "Privacy Policy". This hint should only be set during app - * initialization, preferably before any calls to SDL_Init. + * initialization, preferably before any calls to SDL_Init(). * * For additional information on linking to a privacy policy, see the documentation for * SDL_HINT_WINRT_PRIVACY_POLICY_URL. @@ -630,6 +754,119 @@ extern "C" { */ #define SDL_HINT_WINDOWS_NO_CLOSE_ON_ALT_F4 "SDL_WINDOWS_NO_CLOSE_ON_ALT_F4" +/** + * \brief Prevent SDL from using version 4 of the bitmap header when saving BMPs. + * + * The bitmap header version 4 is required for proper alpha channel support and + * SDL will use it when required. Should this not be desired, this hint can + * force the use of the 40 byte header version which is supported everywhere. + * + * The variable can be set to the following values: + * "0" - Surfaces with a colorkey or an alpha channel are saved to a + * 32-bit BMP file with an alpha mask. SDL will use the bitmap + * header version 4 and set the alpha mask accordingly. + * "1" - Surfaces with a colorkey or an alpha channel are saved to a + * 32-bit BMP file without an alpha mask. The alpha channel data + * will be in the file, but applications are going to ignore it. + * + * The default value is "0". + */ +#define SDL_HINT_BMP_SAVE_LEGACY_FORMAT "SDL_BMP_SAVE_LEGACY_FORMAT" + +/** + * \brief Tell SDL not to name threads on Windows with the 0x406D1388 Exception. + * The 0x406D1388 Exception is a trick used to inform Visual Studio of a + * thread's name, but it tends to cause problems with other debuggers, + * and the .NET runtime. Note that SDL 2.0.6 and later will still use + * the (safer) SetThreadDescription API, introduced in the Windows 10 + * Creators Update, if available. + * + * The variable can be set to the following values: + * "0" - SDL will raise the 0x406D1388 Exception to name threads. + * This is the default behavior of SDL <= 2.0.4. + * "1" - SDL will not raise this exception, and threads will be unnamed. (default) + * This is necessary with .NET languages or debuggers that aren't Visual Studio. + */ +#define SDL_HINT_WINDOWS_DISABLE_THREAD_NAMING "SDL_WINDOWS_DISABLE_THREAD_NAMING" + +/** + * \brief Tell SDL which Dispmanx layer to use on a Raspberry PI + * + * Also known as Z-order. The variable can take a negative or positive value. + * The default is 10000. + */ +#define SDL_HINT_RPI_VIDEO_LAYER "SDL_RPI_VIDEO_LAYER" + +/** + * \brief A variable controlling what driver to use for OpenGL ES contexts. + * + * On some platforms, currently Windows and X11, OpenGL drivers may support + * creating contexts with an OpenGL ES profile. By default SDL uses these + * profiles, when available, otherwise it attempts to load an OpenGL ES + * library, e.g. that provided by the ANGLE project. This variable controls + * whether SDL follows this default behaviour or will always load an + * OpenGL ES library. + * + * Circumstances where this is useful include + * - Testing an app with a particular OpenGL ES implementation, e.g ANGLE, + * or emulator, e.g. those from ARM, Imagination or Qualcomm. + * - Resolving OpenGL ES function addresses at link time by linking with + * the OpenGL ES library instead of querying them at run time with + * SDL_GL_GetProcAddress(). + * + * Caution: for an application to work with the default behaviour across + * different OpenGL drivers it must query the OpenGL ES function + * addresses at run time using SDL_GL_GetProcAddress(). + * + * This variable is ignored on most platforms because OpenGL ES is native + * or not supported. + * + * This variable can be set to the following values: + * "0" - Use ES profile of OpenGL, if available. (Default when not set.) + * "1" - Load OpenGL ES library using the default library names. + * + */ +#define SDL_HINT_OPENGL_ES_DRIVER "SDL_OPENGL_ES_DRIVER" + +/** + * \brief A variable controlling speed/quality tradeoff of audio resampling. + * + * If available, SDL can use libsamplerate ( http://www.mega-nerd.com/SRC/ ) + * to handle audio resampling. There are different resampling modes available + * that produce different levels of quality, using more CPU. + * + * If this hint isn't specified to a valid setting, or libsamplerate isn't + * available, SDL will use the default, internal resampling algorithm. + * + * Note that this is currently only applicable to resampling audio that is + * being written to a device for playback or audio being read from a device + * for capture. SDL_AudioCVT always uses the default resampler (although this + * might change for SDL 2.1). + * + * This hint is currently only checked at audio subsystem initialization. + * + * This variable can be set to the following values: + * + * "0" or "default" - Use SDL's internal resampling (Default when not set - low quality, fast) + * "1" or "fast" - Use fast, slightly higher quality resampling, if available + * "2" or "medium" - Use medium quality resampling, if available + * "3" or "best" - Use high quality resampling, if available + */ +#define SDL_HINT_AUDIO_RESAMPLING_MODE "SDL_AUDIO_RESAMPLING_MODE" + +/** + * \brief A variable controlling the audio category on iOS and Mac OS X + * + * This variable can be set to the following values: + * + * "ambient" - Use the AVAudioSessionCategoryAmbient audio category, will be muted by the phone mute switch (default) + * "playback" - Use the AVAudioSessionCategoryPlayback category + * + * For more information, see Apple's documentation: + * https://developer.apple.com/library/content/documentation/Audio/Conceptual/AudioSessionProgrammingGuide/AudioSessionCategoriesandModes/AudioSessionCategoriesandModes.html + */ +#define SDL_HINT_AUDIO_CATEGORY "SDL_AUDIO_CATEGORY" + /** * \brief An enumeration of hint priorities */ @@ -669,6 +906,18 @@ extern DECLSPEC SDL_bool SDLCALL SDL_SetHint(const char *name, */ extern DECLSPEC const char * SDLCALL SDL_GetHint(const char *name); +/** + * \brief Get a hint + * + * \return The boolean value of a hint variable. + */ +extern DECLSPEC SDL_bool SDLCALL SDL_GetHintBoolean(const char *name, SDL_bool default_value); + +/** + * \brief type definition of the hint callback function. + */ +typedef void (SDLCALL *SDL_HintCallback)(void *userdata, const char *name, const char *oldValue, const char *newValue); + /** * \brief Add a function to watch a particular hint * @@ -676,7 +925,6 @@ extern DECLSPEC const char * SDLCALL SDL_GetHint(const char *name); * \param callback The function to call when the hint value changes * \param userdata A pointer to pass to the callback function */ -typedef void (*SDL_HintCallback)(void *userdata, const char *name, const char *oldValue, const char *newValue); extern DECLSPEC void SDLCALL SDL_AddHintCallback(const char *name, SDL_HintCallback callback, void *userdata); @@ -706,6 +954,6 @@ extern DECLSPEC void SDLCALL SDL_ClearHints(void); #endif #include "close_code.h" -#endif /* _SDL_hints_h */ +#endif /* SDL_hints_h_ */ /* vi: set ts=4 sw=4 expandtab: */ diff --git a/libs/SDL2/i686-w64-mingw32/include/SDL2/SDL_joystick.h b/libs/SDL2/i686-w64-mingw32/include/SDL2/SDL_joystick.h index 266f3b387..f598dc828 100644 --- a/libs/SDL2/i686-w64-mingw32/include/SDL2/SDL_joystick.h +++ b/libs/SDL2/i686-w64-mingw32/include/SDL2/SDL_joystick.h @@ -1,6 +1,6 @@ /* Simple DirectMedia Layer - Copyright (C) 1997-2016 Sam Lantinga + Copyright (C) 1997-2017 Sam Lantinga This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages @@ -24,7 +24,7 @@ * * Include file for SDL joystick event handling * - * The term "device_index" identifies currently plugged in joystick devices between 0 and SDL_NumJoysticks, with the exact joystick + * The term "device_index" identifies currently plugged in joystick devices between 0 and SDL_NumJoysticks(), with the exact joystick * behind a device_index changing as joysticks are plugged and unplugged. * * The term "instance_id" is the current instantiation of a joystick device in the system, if the joystick is removed and then re-inserted @@ -36,8 +36,8 @@ * */ -#ifndef _SDL_joystick_h -#define _SDL_joystick_h +#ifndef SDL_joystick_h_ +#define SDL_joystick_h_ #include "SDL_stdinc.h" #include "SDL_error.h" @@ -60,7 +60,9 @@ extern "C" { * SDL_Init(): SDL_HINT_JOYSTICK_ALLOW_BACKGROUND_EVENTS */ -/* The joystick structure used to identify an SDL joystick */ +/** + * The joystick structure used to identify an SDL joystick + */ struct _SDL_Joystick; typedef struct _SDL_Joystick SDL_Joystick; @@ -69,8 +71,29 @@ typedef struct { Uint8 data[16]; } SDL_JoystickGUID; +/** + * This is a unique ID for a joystick for the time it is connected to the system, + * and is never reused for the lifetime of the application. If the joystick is + * disconnected and reconnected, it will get a new ID. + * + * The ID value starts at 0 and increments from there. The value -1 is an invalid ID. + */ typedef Sint32 SDL_JoystickID; +typedef enum +{ + SDL_JOYSTICK_TYPE_UNKNOWN, + SDL_JOYSTICK_TYPE_GAMECONTROLLER, + SDL_JOYSTICK_TYPE_WHEEL, + SDL_JOYSTICK_TYPE_ARCADE_STICK, + SDL_JOYSTICK_TYPE_FLIGHT_STICK, + SDL_JOYSTICK_TYPE_DANCE_PAD, + SDL_JOYSTICK_TYPE_GUITAR, + SDL_JOYSTICK_TYPE_DRUM_KIT, + SDL_JOYSTICK_TYPE_ARCADE_PAD, + SDL_JOYSTICK_TYPE_THROTTLE +} SDL_JoystickType; + typedef enum { SDL_JOYSTICK_POWER_UNKNOWN = -1, @@ -83,6 +106,20 @@ typedef enum } SDL_JoystickPowerLevel; /* Function prototypes */ + +/** + * Locking for multi-threaded access to the joystick API + * + * If you are using the joystick API or handling events from multiple threads + * you should use these locking functions to protect access to the joysticks. + * + * In particular, you are guaranteed that the joystick list won't change, so + * the API functions that take a joystick index will be valid, and joystick + * and game controller events will not be delivered. + */ +extern DECLSPEC void SDLCALL SDL_LockJoysticks(void); +extern DECLSPEC void SDLCALL SDL_UnlockJoysticks(void); + /** * Count the number of joysticks attached to the system right now */ @@ -95,6 +132,46 @@ extern DECLSPEC int SDLCALL SDL_NumJoysticks(void); */ extern DECLSPEC const char *SDLCALL SDL_JoystickNameForIndex(int device_index); +/** + * Return the GUID for the joystick at this index + * This can be called before any joysticks are opened. + */ +extern DECLSPEC SDL_JoystickGUID SDLCALL SDL_JoystickGetDeviceGUID(int device_index); + +/** + * Get the USB vendor ID of a joystick, if available. + * This can be called before any joysticks are opened. + * If the vendor ID isn't available this function returns 0. + */ +extern DECLSPEC Uint16 SDLCALL SDL_JoystickGetDeviceVendor(int device_index); + +/** + * Get the USB product ID of a joystick, if available. + * This can be called before any joysticks are opened. + * If the product ID isn't available this function returns 0. + */ +extern DECLSPEC Uint16 SDLCALL SDL_JoystickGetDeviceProduct(int device_index); + +/** + * Get the product version of a joystick, if available. + * This can be called before any joysticks are opened. + * If the product version isn't available this function returns 0. + */ +extern DECLSPEC Uint16 SDLCALL SDL_JoystickGetDeviceProductVersion(int device_index); + +/** + * Get the type of a joystick, if available. + * This can be called before any joysticks are opened. + */ +extern DECLSPEC SDL_JoystickType SDLCALL SDL_JoystickGetDeviceType(int device_index); + +/** + * Get the instance ID of a joystick. + * This can be called before any joysticks are opened. + * If the index is out of range, this function will return -1. + */ +extern DECLSPEC SDL_JoystickID SDLCALL SDL_JoystickGetDeviceInstanceID(int device_index); + /** * Open a joystick for use. * The index passed as an argument refers to the N'th joystick on the system. @@ -117,16 +194,34 @@ extern DECLSPEC SDL_Joystick *SDLCALL SDL_JoystickFromInstanceID(SDL_JoystickID */ extern DECLSPEC const char *SDLCALL SDL_JoystickName(SDL_Joystick * joystick); -/** - * Return the GUID for the joystick at this index - */ -extern DECLSPEC SDL_JoystickGUID SDLCALL SDL_JoystickGetDeviceGUID(int device_index); - /** * Return the GUID for this opened joystick */ extern DECLSPEC SDL_JoystickGUID SDLCALL SDL_JoystickGetGUID(SDL_Joystick * joystick); +/** + * Get the USB vendor ID of an opened joystick, if available. + * If the vendor ID isn't available this function returns 0. + */ +extern DECLSPEC Uint16 SDLCALL SDL_JoystickGetVendor(SDL_Joystick * joystick); + +/** + * Get the USB product ID of an opened joystick, if available. + * If the product ID isn't available this function returns 0. + */ +extern DECLSPEC Uint16 SDLCALL SDL_JoystickGetProduct(SDL_Joystick * joystick); + +/** + * Get the product version of an opened joystick, if available. + * If the product version isn't available this function returns 0. + */ +extern DECLSPEC Uint16 SDLCALL SDL_JoystickGetProductVersion(SDL_Joystick * joystick); + +/** + * Get the type of an opened joystick. + */ +extern DECLSPEC SDL_JoystickType SDLCALL SDL_JoystickGetType(SDL_Joystick * joystick); + /** * Return a string representation for this guid. pszGUID must point to at least 33 bytes * (32 for the string plus a NULL terminator). @@ -134,7 +229,7 @@ extern DECLSPEC SDL_JoystickGUID SDLCALL SDL_JoystickGetGUID(SDL_Joystick * joys extern DECLSPEC void SDLCALL SDL_JoystickGetGUIDString(SDL_JoystickGUID guid, char *pszGUID, int cbGUID); /** - * convert a string into a joystick formatted guid + * Convert a string into a joystick guid */ extern DECLSPEC SDL_JoystickGUID SDLCALL SDL_JoystickGetGUIDFromString(const char *pchGUID); @@ -190,6 +285,8 @@ extern DECLSPEC void SDLCALL SDL_JoystickUpdate(void); */ extern DECLSPEC int SDLCALL SDL_JoystickEventState(int state); +#define SDL_JOYSTICK_AXIS_MAX 32767 +#define SDL_JOYSTICK_AXIS_MIN -32768 /** * Get the current state of an axis control on a joystick. * @@ -200,6 +297,18 @@ extern DECLSPEC int SDLCALL SDL_JoystickEventState(int state); extern DECLSPEC Sint16 SDLCALL SDL_JoystickGetAxis(SDL_Joystick * joystick, int axis); +/** + * Get the initial state of an axis control on a joystick. + * + * The state is a value ranging from -32768 to 32767. + * + * The axis indices start at index 0. + * + * \return SDL_TRUE if this axis has any initial value, or SDL_FALSE if not. + */ +extern DECLSPEC SDL_bool SDLCALL SDL_JoystickGetAxisInitialState(SDL_Joystick * joystick, + int axis, Sint16 *state); + /** * \name Hat positions */ @@ -268,6 +377,6 @@ extern DECLSPEC SDL_JoystickPowerLevel SDLCALL SDL_JoystickCurrentPowerLevel(SDL #endif #include "close_code.h" -#endif /* _SDL_joystick_h */ +#endif /* SDL_joystick_h_ */ /* vi: set ts=4 sw=4 expandtab: */ diff --git a/libs/SDL2/i686-w64-mingw32/include/SDL2/SDL_keyboard.h b/libs/SDL2/i686-w64-mingw32/include/SDL2/SDL_keyboard.h index bbba0f07b..e78ca4690 100644 --- a/libs/SDL2/i686-w64-mingw32/include/SDL2/SDL_keyboard.h +++ b/libs/SDL2/i686-w64-mingw32/include/SDL2/SDL_keyboard.h @@ -1,6 +1,6 @@ /* Simple DirectMedia Layer - Copyright (C) 1997-2016 Sam Lantinga + Copyright (C) 1997-2017 Sam Lantinga This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages @@ -25,8 +25,8 @@ * Include file for SDL keyboard event handling */ -#ifndef _SDL_keyboard_h -#define _SDL_keyboard_h +#ifndef SDL_keyboard_h_ +#define SDL_keyboard_h_ #include "SDL_stdinc.h" #include "SDL_error.h" @@ -136,7 +136,7 @@ extern DECLSPEC SDL_Scancode SDLCALL SDL_GetScancodeFromName(const char *name); * copy it. If the key doesn't have a name, this function returns an * empty string (""). * - * \sa SDL_Key + * \sa SDL_Keycode */ extern DECLSPEC const char *SDLCALL SDL_GetKeyName(SDL_Keycode key); @@ -212,6 +212,6 @@ extern DECLSPEC SDL_bool SDLCALL SDL_IsScreenKeyboardShown(SDL_Window *window); #endif #include "close_code.h" -#endif /* _SDL_keyboard_h */ +#endif /* SDL_keyboard_h_ */ /* vi: set ts=4 sw=4 expandtab: */ diff --git a/libs/SDL2/i686-w64-mingw32/include/SDL2/SDL_keycode.h b/libs/SDL2/i686-w64-mingw32/include/SDL2/SDL_keycode.h index 7be963571..c41e45ff6 100644 --- a/libs/SDL2/i686-w64-mingw32/include/SDL2/SDL_keycode.h +++ b/libs/SDL2/i686-w64-mingw32/include/SDL2/SDL_keycode.h @@ -1,6 +1,6 @@ /* Simple DirectMedia Layer - Copyright (C) 1997-2016 Sam Lantinga + Copyright (C) 1997-2017 Sam Lantinga This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages @@ -25,8 +25,8 @@ * Defines constants which identify keyboard keys and modifiers. */ -#ifndef _SDL_keycode_h -#define _SDL_keycode_h +#ifndef SDL_keycode_h_ +#define SDL_keycode_h_ #include "SDL_stdinc.h" #include "SDL_scancode.h" @@ -38,6 +38,9 @@ * layout of the keyboard. These values include Unicode values representing * the unmodified character that would be generated by pressing the key, or * an SDLK_* constant for those keys that do not generate characters. + * + * A special exception is the number keys at the top of the keyboard which + * always map to SDLK_0...SDLK_9, regardless of layout. */ typedef Sint32 SDL_Keycode; @@ -308,7 +311,12 @@ enum SDLK_KBDILLUMDOWN = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KBDILLUMDOWN), SDLK_KBDILLUMUP = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KBDILLUMUP), SDLK_EJECT = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_EJECT), - SDLK_SLEEP = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_SLEEP) + SDLK_SLEEP = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_SLEEP), + SDLK_APP1 = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_APP1), + SDLK_APP2 = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_APP2), + + SDLK_AUDIOREWIND = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_AUDIOREWIND), + SDLK_AUDIOFASTFORWARD = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_AUDIOFASTFORWARD) }; /** @@ -336,6 +344,6 @@ typedef enum #define KMOD_ALT (KMOD_LALT|KMOD_RALT) #define KMOD_GUI (KMOD_LGUI|KMOD_RGUI) -#endif /* _SDL_keycode_h */ +#endif /* SDL_keycode_h_ */ /* vi: set ts=4 sw=4 expandtab: */ diff --git a/libs/SDL2/i686-w64-mingw32/include/SDL2/SDL_loadso.h b/libs/SDL2/i686-w64-mingw32/include/SDL2/SDL_loadso.h index 3d540bd7d..6ea256c6a 100644 --- a/libs/SDL2/i686-w64-mingw32/include/SDL2/SDL_loadso.h +++ b/libs/SDL2/i686-w64-mingw32/include/SDL2/SDL_loadso.h @@ -1,6 +1,6 @@ /* Simple DirectMedia Layer - Copyright (C) 1997-2016 Sam Lantinga + Copyright (C) 1997-2017 Sam Lantinga This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages @@ -38,8 +38,8 @@ * the results you expect. :) */ -#ifndef _SDL_loadso_h -#define _SDL_loadso_h +#ifndef SDL_loadso_h_ +#define SDL_loadso_h_ #include "SDL_stdinc.h" #include "SDL_error.h" @@ -76,6 +76,6 @@ extern DECLSPEC void SDLCALL SDL_UnloadObject(void *handle); #endif #include "close_code.h" -#endif /* _SDL_loadso_h */ +#endif /* SDL_loadso_h_ */ /* vi: set ts=4 sw=4 expandtab: */ diff --git a/libs/SDL2/i686-w64-mingw32/include/SDL2/SDL_log.h b/libs/SDL2/i686-w64-mingw32/include/SDL2/SDL_log.h index 09be1104d..356d0e1cf 100644 --- a/libs/SDL2/i686-w64-mingw32/include/SDL2/SDL_log.h +++ b/libs/SDL2/i686-w64-mingw32/include/SDL2/SDL_log.h @@ -1,6 +1,6 @@ /* Simple DirectMedia Layer - Copyright (C) 1997-2016 Sam Lantinga + Copyright (C) 1997-2017 Sam Lantinga This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages @@ -34,8 +34,8 @@ * Others: standard error output (stderr) */ -#ifndef _SDL_log_h -#define _SDL_log_h +#ifndef SDL_log_h_ +#define SDL_log_h_ #include "SDL_stdinc.h" @@ -186,7 +186,7 @@ extern DECLSPEC void SDLCALL SDL_LogMessageV(int category, /** * \brief The prototype for the log output function */ -typedef void (*SDL_LogOutputFunction)(void *userdata, int category, SDL_LogPriority priority, const char *message); +typedef void (SDLCALL *SDL_LogOutputFunction)(void *userdata, int category, SDL_LogPriority priority, const char *message); /** * \brief Get the current log output function. @@ -206,6 +206,6 @@ extern DECLSPEC void SDLCALL SDL_LogSetOutputFunction(SDL_LogOutputFunction call #endif #include "close_code.h" -#endif /* _SDL_log_h */ +#endif /* SDL_log_h_ */ /* vi: set ts=4 sw=4 expandtab: */ diff --git a/libs/SDL2/i686-w64-mingw32/include/SDL2/SDL_main.h b/libs/SDL2/i686-w64-mingw32/include/SDL2/SDL_main.h index 9ce3754e9..2af32360f 100644 --- a/libs/SDL2/i686-w64-mingw32/include/SDL2/SDL_main.h +++ b/libs/SDL2/i686-w64-mingw32/include/SDL2/SDL_main.h @@ -1,6 +1,6 @@ /* Simple DirectMedia Layer - Copyright (C) 1997-2016 Sam Lantinga + Copyright (C) 1997-2017 Sam Lantinga This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages @@ -19,8 +19,8 @@ 3. This notice may not be removed or altered from any source distribution. */ -#ifndef _SDL_main_h -#define _SDL_main_h +#ifndef SDL_main_h_ +#define SDL_main_h_ #include "SDL_stdinc.h" @@ -63,7 +63,7 @@ /* On Android SDL provides a Java class in SDLActivity.java that is the main activity entry point. - See README-android.txt for more details on extending that class. + See README-android.md for more details on extending that class. */ #define SDL_MAIN_NEEDED @@ -107,7 +107,7 @@ /** * The prototype for the application's main() function */ -extern C_LINKAGE int SDL_main(int argc, char *argv[]); +extern C_LINKAGE DECLSPEC int SDL_main(int argc, char *argv[]); #include "begin_code.h" @@ -156,6 +156,6 @@ extern DECLSPEC int SDLCALL SDL_WinRTRunApp(int (*mainFunction)(int, char **), v #endif #include "close_code.h" -#endif /* _SDL_main_h */ +#endif /* SDL_main_h_ */ /* vi: set ts=4 sw=4 expandtab: */ diff --git a/libs/SDL2/i686-w64-mingw32/include/SDL2/SDL_messagebox.h b/libs/SDL2/i686-w64-mingw32/include/SDL2/SDL_messagebox.h index ec370dbbe..c326d8f01 100644 --- a/libs/SDL2/i686-w64-mingw32/include/SDL2/SDL_messagebox.h +++ b/libs/SDL2/i686-w64-mingw32/include/SDL2/SDL_messagebox.h @@ -1,6 +1,6 @@ /* Simple DirectMedia Layer - Copyright (C) 1997-2016 Sam Lantinga + Copyright (C) 1997-2017 Sam Lantinga This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages @@ -19,8 +19,8 @@ 3. This notice may not be removed or altered from any source distribution. */ -#ifndef _SDL_messagebox_h -#define _SDL_messagebox_h +#ifndef SDL_messagebox_h_ +#define SDL_messagebox_h_ #include "SDL_stdinc.h" #include "SDL_video.h" /* For SDL_Window */ @@ -139,6 +139,6 @@ extern DECLSPEC int SDLCALL SDL_ShowSimpleMessageBox(Uint32 flags, const char *t #endif #include "close_code.h" -#endif /* _SDL_messagebox_h */ +#endif /* SDL_messagebox_h_ */ /* vi: set ts=4 sw=4 expandtab: */ diff --git a/libs/SDL2/i686-w64-mingw32/include/SDL2/SDL_mouse.h b/libs/SDL2/i686-w64-mingw32/include/SDL2/SDL_mouse.h index ea9622f0f..6001bd46c 100644 --- a/libs/SDL2/i686-w64-mingw32/include/SDL2/SDL_mouse.h +++ b/libs/SDL2/i686-w64-mingw32/include/SDL2/SDL_mouse.h @@ -1,6 +1,6 @@ /* Simple DirectMedia Layer - Copyright (C) 1997-2016 Sam Lantinga + Copyright (C) 1997-2017 Sam Lantinga This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages @@ -25,8 +25,8 @@ * Include file for SDL mouse event handling. */ -#ifndef _SDL_mouse_h -#define _SDL_mouse_h +#ifndef SDL_mouse_h_ +#define SDL_mouse_h_ #include "SDL_stdinc.h" #include "SDL_error.h" @@ -38,10 +38,10 @@ extern "C" { #endif -typedef struct SDL_Cursor SDL_Cursor; /* Implementation dependent */ +typedef struct SDL_Cursor SDL_Cursor; /**< Implementation dependent */ /** - * \brief Cursor types for SDL_CreateSystemCursor. + * \brief Cursor types for SDL_CreateSystemCursor(). */ typedef enum { @@ -254,9 +254,11 @@ extern DECLSPEC SDL_Cursor *SDLCALL SDL_GetCursor(void); extern DECLSPEC SDL_Cursor *SDLCALL SDL_GetDefaultCursor(void); /** - * \brief Frees a cursor created with SDL_CreateCursor(). + * \brief Frees a cursor created with SDL_CreateCursor() or similar functions. * * \sa SDL_CreateCursor() + * \sa SDL_CreateColorCursor() + * \sa SDL_CreateSystemCursor() */ extern DECLSPEC void SDLCALL SDL_FreeCursor(SDL_Cursor * cursor); @@ -295,6 +297,6 @@ extern DECLSPEC int SDLCALL SDL_ShowCursor(int toggle); #endif #include "close_code.h" -#endif /* _SDL_mouse_h */ +#endif /* SDL_mouse_h_ */ /* vi: set ts=4 sw=4 expandtab: */ diff --git a/libs/SDL2/i686-w64-mingw32/include/SDL2/SDL_mutex.h b/libs/SDL2/i686-w64-mingw32/include/SDL2/SDL_mutex.h index b7e39734e..0272379e5 100644 --- a/libs/SDL2/i686-w64-mingw32/include/SDL2/SDL_mutex.h +++ b/libs/SDL2/i686-w64-mingw32/include/SDL2/SDL_mutex.h @@ -1,6 +1,6 @@ /* Simple DirectMedia Layer - Copyright (C) 1997-2016 Sam Lantinga + Copyright (C) 1997-2017 Sam Lantinga This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages @@ -19,8 +19,8 @@ 3. This notice may not be removed or altered from any source distribution. */ -#ifndef _SDL_mutex_h -#define _SDL_mutex_h +#ifndef SDL_mutex_h_ +#define SDL_mutex_h_ /** * \file SDL_mutex.h @@ -246,6 +246,6 @@ extern DECLSPEC int SDLCALL SDL_CondWaitTimeout(SDL_cond * cond, #endif #include "close_code.h" -#endif /* _SDL_mutex_h */ +#endif /* SDL_mutex_h_ */ /* vi: set ts=4 sw=4 expandtab: */ diff --git a/libs/SDL2/i686-w64-mingw32/include/SDL2/SDL_name.h b/libs/SDL2/i686-w64-mingw32/include/SDL2/SDL_name.h index 06cd4a5e2..8095ed3ff 100644 --- a/libs/SDL2/i686-w64-mingw32/include/SDL2/SDL_name.h +++ b/libs/SDL2/i686-w64-mingw32/include/SDL2/SDL_name.h @@ -1,6 +1,6 @@ /* Simple DirectMedia Layer - Copyright (C) 1997-2016 Sam Lantinga + Copyright (C) 1997-2017 Sam Lantinga This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages @@ -19,8 +19,8 @@ 3. This notice may not be removed or altered from any source distribution. */ -#ifndef _SDLname_h_ -#define _SDLname_h_ +#ifndef SDLname_h_ +#define SDLname_h_ #if defined(__STDC__) || defined(__cplusplus) #define NeedFunctionPrototypes 1 @@ -28,6 +28,6 @@ #define SDL_NAME(X) SDL_##X -#endif /* _SDLname_h_ */ +#endif /* SDLname_h_ */ /* vi: set ts=4 sw=4 expandtab: */ diff --git a/libs/SDL2/i686-w64-mingw32/include/SDL2/SDL_opengl.h b/libs/SDL2/i686-w64-mingw32/include/SDL2/SDL_opengl.h index 780919bc4..314dd57ed 100644 --- a/libs/SDL2/i686-w64-mingw32/include/SDL2/SDL_opengl.h +++ b/libs/SDL2/i686-w64-mingw32/include/SDL2/SDL_opengl.h @@ -1,6 +1,6 @@ /* Simple DirectMedia Layer - Copyright (C) 1997-2016 Sam Lantinga + Copyright (C) 1997-2017 Sam Lantinga This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages @@ -32,8 +32,8 @@ * version included in SDL_opengl.h. */ -#ifndef _SDL_opengl_h -#define _SDL_opengl_h +#ifndef SDL_opengl_h_ +#define SDL_opengl_h_ #include "SDL_config.h" @@ -97,6 +97,13 @@ #elif defined(__CYGWIN__) && defined(USE_OPENGL32) /* use native windows opengl32 */ # define GLAPI extern # define GLAPIENTRY __stdcall +#elif defined(__OS2__) || defined(__EMX__) /* native os/2 opengl */ +# define GLAPI extern +# define GLAPIENTRY _System +# define APIENTRY _System +# if defined(__GNUC__) && !defined(_System) +# define _System +# endif #elif (defined(__GNUC__) && __GNUC__ >= 4) || (defined(__SUNPRO_C) && (__SUNPRO_C >= 0x590)) # define GLAPI __attribute__((visibility("default"))) # define GLAPIENTRY @@ -2171,6 +2178,6 @@ typedef void (APIENTRYP PFNGLEGLIMAGETARGETRENDERBUFFERSTORAGEOESPROC) (GLenum t #endif /* !__IPHONEOS__ */ -#endif /* _SDL_opengl_h */ +#endif /* SDL_opengl_h_ */ /* vi: set ts=4 sw=4 expandtab: */ diff --git a/libs/SDL2/i686-w64-mingw32/include/SDL2/SDL_opengles.h b/libs/SDL2/i686-w64-mingw32/include/SDL2/SDL_opengles.h index bcc127779..800c59307 100644 --- a/libs/SDL2/i686-w64-mingw32/include/SDL2/SDL_opengles.h +++ b/libs/SDL2/i686-w64-mingw32/include/SDL2/SDL_opengles.h @@ -1,6 +1,6 @@ /* Simple DirectMedia Layer - Copyright (C) 1997-2016 Sam Lantinga + Copyright (C) 1997-2017 Sam Lantinga This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages @@ -24,6 +24,7 @@ * * This is a simple file to encapsulate the OpenGL ES 1.X API headers. */ +#include "SDL_config.h" #ifdef __IPHONEOS__ #include diff --git a/libs/SDL2/i686-w64-mingw32/include/SDL2/SDL_opengles2.h b/libs/SDL2/i686-w64-mingw32/include/SDL2/SDL_opengles2.h index edcd1a24a..102f2f3fa 100644 --- a/libs/SDL2/i686-w64-mingw32/include/SDL2/SDL_opengles2.h +++ b/libs/SDL2/i686-w64-mingw32/include/SDL2/SDL_opengles2.h @@ -1,6 +1,6 @@ /* Simple DirectMedia Layer - Copyright (C) 1997-2016 Sam Lantinga + Copyright (C) 1997-2017 Sam Lantinga This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages @@ -24,6 +24,8 @@ * * This is a simple file to encapsulate the OpenGL ES 2.0 API headers. */ +#include "SDL_config.h" + #ifndef _MSC_VER #ifdef __IPHONEOS__ diff --git a/libs/SDL2/i686-w64-mingw32/include/SDL2/SDL_pixels.h b/libs/SDL2/i686-w64-mingw32/include/SDL2/SDL_pixels.h index 8499c3289..04246689f 100644 --- a/libs/SDL2/i686-w64-mingw32/include/SDL2/SDL_pixels.h +++ b/libs/SDL2/i686-w64-mingw32/include/SDL2/SDL_pixels.h @@ -1,6 +1,6 @@ /* Simple DirectMedia Layer - Copyright (C) 1997-2016 Sam Lantinga + Copyright (C) 1997-2017 Sam Lantinga This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages @@ -25,10 +25,11 @@ * Header for the enumerated pixel format definitions. */ -#ifndef _SDL_pixels_h -#define _SDL_pixels_h +#ifndef SDL_pixels_h_ +#define SDL_pixels_h_ #include "SDL_stdinc.h" +#include "SDL_endian.h" #include "begin_code.h" /* Set up for C function definitions, even when using C++ */ @@ -260,6 +261,19 @@ enum SDL_DEFINE_PIXELFORMAT(SDL_PIXELTYPE_PACKED32, SDL_PACKEDORDER_ARGB, SDL_PACKEDLAYOUT_2101010, 32, 4), + /* Aliases for RGBA byte arrays of color data, for the current platform */ +#if SDL_BYTEORDER == SDL_BIG_ENDIAN + SDL_PIXELFORMAT_RGBA32 = SDL_PIXELFORMAT_RGBA8888, + SDL_PIXELFORMAT_ARGB32 = SDL_PIXELFORMAT_ARGB8888, + SDL_PIXELFORMAT_BGRA32 = SDL_PIXELFORMAT_BGRA8888, + SDL_PIXELFORMAT_ABGR32 = SDL_PIXELFORMAT_ABGR8888, +#else + SDL_PIXELFORMAT_RGBA32 = SDL_PIXELFORMAT_ABGR8888, + SDL_PIXELFORMAT_ARGB32 = SDL_PIXELFORMAT_BGRA8888, + SDL_PIXELFORMAT_BGRA32 = SDL_PIXELFORMAT_ARGB8888, + SDL_PIXELFORMAT_ABGR32 = SDL_PIXELFORMAT_RGBA8888, +#endif + SDL_PIXELFORMAT_YV12 = /**< Planar mode: Y + V + U (3 planes) */ SDL_DEFINE_PIXELFOURCC('Y', 'V', '1', '2'), SDL_PIXELFORMAT_IYUV = /**< Planar mode: Y + U + V (3 planes) */ @@ -449,6 +463,6 @@ extern DECLSPEC void SDLCALL SDL_CalculateGammaRamp(float gamma, Uint16 * ramp); #endif #include "close_code.h" -#endif /* _SDL_pixels_h */ +#endif /* SDL_pixels_h_ */ /* vi: set ts=4 sw=4 expandtab: */ diff --git a/libs/SDL2/i686-w64-mingw32/include/SDL2/SDL_platform.h b/libs/SDL2/i686-w64-mingw32/include/SDL2/SDL_platform.h index c6c21398b..9dde385fa 100644 --- a/libs/SDL2/i686-w64-mingw32/include/SDL2/SDL_platform.h +++ b/libs/SDL2/i686-w64-mingw32/include/SDL2/SDL_platform.h @@ -1,6 +1,6 @@ /* Simple DirectMedia Layer - Copyright (C) 1997-2016 Sam Lantinga + Copyright (C) 1997-2017 Sam Lantinga This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages @@ -25,8 +25,8 @@ * Try to get a standard set of platform defines. */ -#ifndef _SDL_platform_h -#define _SDL_platform_h +#ifndef SDL_platform_h_ +#define SDL_platform_h_ #if defined(_AIX) #undef __AIX__ @@ -70,18 +70,22 @@ /* lets us know what version of Mac OS X we're compiling on */ #include "AvailabilityMacros.h" #include "TargetConditionals.h" +#if TARGET_OS_TV +#undef __TVOS__ +#define __TVOS__ 1 +#endif #if TARGET_OS_IPHONE -/* if compiling for iPhone */ +/* if compiling for iOS */ #undef __IPHONEOS__ #define __IPHONEOS__ 1 #undef __MACOSX__ #else -/* if not compiling for iPhone */ +/* if not compiling for iOS */ #undef __MACOSX__ #define __MACOSX__ 1 -#if MAC_OS_X_VERSION_MIN_REQUIRED < 1050 -# error SDL for Mac OS X only supports deploying on 10.5 and above. -#endif /* MAC_OS_X_VERSION_MIN_REQUIRED < 1050 */ +#if MAC_OS_X_VERSION_MIN_REQUIRED < 1060 +# error SDL for Mac OS X only supports deploying on 10.6 and above. +#endif /* MAC_OS_X_VERSION_MIN_REQUIRED < 1060 */ #endif /* TARGET_OS_IPHONE */ #endif /* defined(__APPLE__) */ @@ -93,7 +97,7 @@ #undef __OPENBSD__ #define __OPENBSD__ 1 #endif -#if defined(__OS2__) +#if defined(__OS2__) || defined(__EMX__) #undef __OS2__ #define __OS2__ 1 #endif @@ -116,21 +120,29 @@ #if defined(WIN32) || defined(_WIN32) || defined(__CYGWIN__) || defined(__MINGW32__) /* Try to find out if we're compiling for WinRT or non-WinRT */ -/* If _USING_V110_SDK71_ is defined it means we are using the v110_xp or v120_xp toolset. */ -#if (defined(_MSC_VER) && (_MSC_VER >= 1700) && !_USING_V110_SDK71_) /* _MSC_VER==1700 for MSVC 2012 */ +#if defined(_MSC_VER) && defined(__has_include) +#define HAVE_WINAPIFAMILY_H __has_include() +/* If _USING_V110_SDK71_ is defined it means we are using the Windows XP toolset. */ +#elif defined(_MSC_VER) && (_MSC_VER >= 1700 && !_USING_V110_SDK71_) /* _MSC_VER == 1700 for Visual Studio 2012 */ +#define HAVE_WINAPIFAMILY_H 1 +#else +#define HAVE_WINAPIFAMILY_H 0 +#endif + +#if HAVE_WINAPIFAMILY_H #include -#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) -#undef __WINDOWS__ -#define __WINDOWS__ 1 -/* See if we're compiling for WinRT: */ -#elif WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP) +#define WINAPI_FAMILY_WINRT (!WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) && WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP)) +#else +#define WINAPI_FAMILY_WINRT 0 +#endif /* HAVE_WINAPIFAMILY_H */ + +#if WINAPI_FAMILY_WINRT #undef __WINRT__ #define __WINRT__ 1 -#endif #else #undef __WINDOWS__ -#define __WINDOWS__ 1 -#endif /* _MSC_VER < 1700 */ +#define __WINDOWS__ 1 +#endif #endif /* defined(WIN32) || defined(_WIN32) || defined(__CYGWIN__) */ #if defined(__WINDOWS__) @@ -176,6 +188,6 @@ extern DECLSPEC const char * SDLCALL SDL_GetPlatform (void); #endif #include "close_code.h" -#endif /* _SDL_platform_h */ +#endif /* SDL_platform_h_ */ /* vi: set ts=4 sw=4 expandtab: */ diff --git a/libs/SDL2/i686-w64-mingw32/include/SDL2/SDL_power.h b/libs/SDL2/i686-w64-mingw32/include/SDL2/SDL_power.h index 24c050114..d48e8a379 100644 --- a/libs/SDL2/i686-w64-mingw32/include/SDL2/SDL_power.h +++ b/libs/SDL2/i686-w64-mingw32/include/SDL2/SDL_power.h @@ -1,6 +1,6 @@ /* Simple DirectMedia Layer - Copyright (C) 1997-2016 Sam Lantinga + Copyright (C) 1997-2017 Sam Lantinga This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages @@ -19,8 +19,8 @@ 3. This notice may not be removed or altered from any source distribution. */ -#ifndef _SDL_power_h -#define _SDL_power_h +#ifndef SDL_power_h_ +#define SDL_power_h_ /** * \file SDL_power.h @@ -70,6 +70,6 @@ extern DECLSPEC SDL_PowerState SDLCALL SDL_GetPowerInfo(int *secs, int *pct); #endif #include "close_code.h" -#endif /* _SDL_power_h */ +#endif /* SDL_power_h_ */ /* vi: set ts=4 sw=4 expandtab: */ diff --git a/libs/SDL2/i686-w64-mingw32/include/SDL2/SDL_quit.h b/libs/SDL2/i686-w64-mingw32/include/SDL2/SDL_quit.h index cc06f28d8..9283c3810 100644 --- a/libs/SDL2/i686-w64-mingw32/include/SDL2/SDL_quit.h +++ b/libs/SDL2/i686-w64-mingw32/include/SDL2/SDL_quit.h @@ -1,6 +1,6 @@ /* Simple DirectMedia Layer - Copyright (C) 1997-2016 Sam Lantinga + Copyright (C) 1997-2017 Sam Lantinga This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages @@ -25,8 +25,8 @@ * Include file for SDL quit event handling. */ -#ifndef _SDL_quit_h -#define _SDL_quit_h +#ifndef SDL_quit_h_ +#define SDL_quit_h_ #include "SDL_stdinc.h" #include "SDL_error.h" @@ -55,4 +55,4 @@ #define SDL_QuitRequested() \ (SDL_PumpEvents(), (SDL_PeepEvents(NULL,0,SDL_PEEKEVENT,SDL_QUIT,SDL_QUIT) > 0)) -#endif /* _SDL_quit_h */ +#endif /* SDL_quit_h_ */ diff --git a/libs/SDL2/i686-w64-mingw32/include/SDL2/SDL_rect.h b/libs/SDL2/i686-w64-mingw32/include/SDL2/SDL_rect.h index bbcb9a3b8..c4f6d74b3 100644 --- a/libs/SDL2/i686-w64-mingw32/include/SDL2/SDL_rect.h +++ b/libs/SDL2/i686-w64-mingw32/include/SDL2/SDL_rect.h @@ -1,6 +1,6 @@ /* Simple DirectMedia Layer - Copyright (C) 1997-2016 Sam Lantinga + Copyright (C) 1997-2017 Sam Lantinga This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages @@ -25,8 +25,8 @@ * Header file for SDL_rect definition and management functions. */ -#ifndef _SDL_rect_h -#define _SDL_rect_h +#ifndef SDL_rect_h_ +#define SDL_rect_h_ #include "SDL_stdinc.h" #include "SDL_error.h" @@ -143,6 +143,6 @@ extern DECLSPEC SDL_bool SDLCALL SDL_IntersectRectAndLine(const SDL_Rect * #endif #include "close_code.h" -#endif /* _SDL_rect_h */ +#endif /* SDL_rect_h_ */ /* vi: set ts=4 sw=4 expandtab: */ diff --git a/libs/SDL2/i686-w64-mingw32/include/SDL2/SDL_render.h b/libs/SDL2/i686-w64-mingw32/include/SDL2/SDL_render.h index e4ed2af69..ea6ef9ff6 100644 --- a/libs/SDL2/i686-w64-mingw32/include/SDL2/SDL_render.h +++ b/libs/SDL2/i686-w64-mingw32/include/SDL2/SDL_render.h @@ -1,6 +1,6 @@ /* Simple DirectMedia Layer - Copyright (C) 1997-2016 Sam Lantinga + Copyright (C) 1997-2017 Sam Lantinga This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages @@ -45,8 +45,8 @@ * See this bug for details: http://bugzilla.libsdl.org/show_bug.cgi?id=1995 */ -#ifndef _SDL_render_h -#define _SDL_render_h +#ifndef SDL_render_h_ +#define SDL_render_h_ #include "SDL_stdinc.h" #include "SDL_rect.h" @@ -233,6 +233,8 @@ extern DECLSPEC int SDLCALL SDL_GetRendererOutputSize(SDL_Renderer * renderer, * active, the format was unsupported, or the width or height were out * of range. * + * \note The contents of the texture are not defined at creation. + * * \sa SDL_QueryTexture() * \sa SDL_UpdateTexture() * \sa SDL_DestroyTexture() @@ -370,9 +372,12 @@ extern DECLSPEC int SDLCALL SDL_GetTextureBlendMode(SDL_Texture * texture, * \param texture The texture to update * \param rect A pointer to the rectangle of pixels to update, or NULL to * update the entire texture. - * \param pixels The raw pixel data. + * \param pixels The raw pixel data in the format of the texture. * \param pitch The number of bytes in a row of pixel data, including padding between lines. * + * The pixel data must be in the format of the texture. The pixel format can be + * queried with SDL_QueryTexture. + * * \return 0 on success, or -1 if the texture is not valid. * * \note This is a fairly slow function. @@ -499,6 +504,30 @@ extern DECLSPEC int SDLCALL SDL_RenderSetLogicalSize(SDL_Renderer * renderer, in */ extern DECLSPEC void SDLCALL SDL_RenderGetLogicalSize(SDL_Renderer * renderer, int *w, int *h); +/** + * \brief Set whether to force integer scales for resolution-independent rendering + * + * \param renderer The renderer for which integer scaling should be set. + * \param enable Enable or disable integer scaling + * + * This function restricts the logical viewport to integer values - that is, when + * a resolution is between two multiples of a logical size, the viewport size is + * rounded down to the lower multiple. + * + * \sa SDL_RenderSetLogicalSize() + */ +extern DECLSPEC int SDLCALL SDL_RenderSetIntegerScale(SDL_Renderer * renderer, + SDL_bool enable); + +/** + * \brief Get whether integer scales are forced for resolution-independent rendering + * + * \param renderer The renderer from which integer scaling should be queried. + * + * \sa SDL_RenderSetIntegerScale() + */ +extern DECLSPEC SDL_bool SDLCALL SDL_RenderGetIntegerScale(SDL_Renderer * renderer); + /** * \brief Set the drawing area for rendering on the current target. * @@ -658,7 +687,8 @@ extern DECLSPEC int SDLCALL SDL_GetRenderDrawBlendMode(SDL_Renderer * renderer, /** * \brief Clear the current rendering target with the drawing color * - * This function clears the entire rendering target, ignoring the viewport. + * This function clears the entire rendering target, ignoring the viewport and + * the clip rectangle. * * \return 0 on success, or -1 on error */ @@ -791,7 +821,7 @@ extern DECLSPEC int SDLCALL SDL_RenderCopy(SDL_Renderer * renderer, * texture. * \param dstrect A pointer to the destination rectangle, or NULL for the * entire rendering target. - * \param angle An angle in degrees that indicates the rotation that will be applied to dstrect + * \param angle An angle in degrees that indicates the rotation that will be applied to dstrect, rotating it in a clockwise direction * \param center A pointer to a point indicating the point around which dstrect will be rotated (if NULL, rotation will be done around dstrect.w/2, dstrect.h/2). * \param flip An SDL_RendererFlip value stating which flipping actions should be performed on the texture * @@ -875,6 +905,6 @@ extern DECLSPEC int SDLCALL SDL_GL_UnbindTexture(SDL_Texture *texture); #endif #include "close_code.h" -#endif /* _SDL_render_h */ +#endif /* SDL_render_h_ */ /* vi: set ts=4 sw=4 expandtab: */ diff --git a/libs/SDL2/i686-w64-mingw32/include/SDL2/SDL_revision.h b/libs/SDL2/i686-w64-mingw32/include/SDL2/SDL_revision.h index 6d7163d4d..9376093ee 100644 --- a/libs/SDL2/i686-w64-mingw32/include/SDL2/SDL_revision.h +++ b/libs/SDL2/i686-w64-mingw32/include/SDL2/SDL_revision.h @@ -1,2 +1,2 @@ -#define SDL_REVISION "hg-10001:e12c38730512" -#define SDL_REVISION_NUMBER 10001 +#define SDL_REVISION "hg-11645:2088cd828335" +#define SDL_REVISION_NUMBER 11645 diff --git a/libs/SDL2/i686-w64-mingw32/include/SDL2/SDL_rwops.h b/libs/SDL2/i686-w64-mingw32/include/SDL2/SDL_rwops.h index f460ae7d4..7f0cbdfd5 100644 --- a/libs/SDL2/i686-w64-mingw32/include/SDL2/SDL_rwops.h +++ b/libs/SDL2/i686-w64-mingw32/include/SDL2/SDL_rwops.h @@ -1,6 +1,6 @@ /* Simple DirectMedia Layer - Copyright (C) 1997-2016 Sam Lantinga + Copyright (C) 1997-2017 Sam Lantinga This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages @@ -26,8 +26,8 @@ * data streams. It can easily be extended to files, memory, etc. */ -#ifndef _SDL_rwops_h -#define _SDL_rwops_h +#ifndef SDL_rwops_h_ +#define SDL_rwops_h_ #include "SDL_stdinc.h" #include "SDL_error.h" @@ -39,12 +39,12 @@ extern "C" { #endif /* RWops Types */ -#define SDL_RWOPS_UNKNOWN 0 /* Unknown stream type */ -#define SDL_RWOPS_WINFILE 1 /* Win32 file */ -#define SDL_RWOPS_STDFILE 2 /* Stdio file */ -#define SDL_RWOPS_JNIFILE 3 /* Android asset */ -#define SDL_RWOPS_MEMORY 4 /* Memory stream */ -#define SDL_RWOPS_MEMORY_RO 5 /* Read-Only memory stream */ +#define SDL_RWOPS_UNKNOWN 0U /**< Unknown stream type */ +#define SDL_RWOPS_WINFILE 1U /**< Win32 file */ +#define SDL_RWOPS_STDFILE 2U /**< Stdio file */ +#define SDL_RWOPS_JNIFILE 3U /**< Android asset */ +#define SDL_RWOPS_MEMORY 4U /**< Memory stream */ +#define SDL_RWOPS_MEMORY_RO 5U /**< Read-Only memory stream */ /** * This is the read/write operation structure -- very basic. @@ -190,6 +190,29 @@ extern DECLSPEC void SDLCALL SDL_FreeRW(SDL_RWops * area); /* @} *//* Read/write macros */ +/** + * Load all the data from an SDL data stream. + * + * The data is allocated with a zero byte at the end (null terminated) + * + * If \c datasize is not NULL, it is filled with the size of the data read. + * + * If \c freesrc is non-zero, the stream will be closed after being read. + * + * The data should be freed with SDL_free(). + * + * \return the data, or NULL if there was an error. + */ +extern DECLSPEC void *SDLCALL SDL_LoadFile_RW(SDL_RWops * src, size_t *datasize, + int freesrc); + +/** + * Load an entire file. + * + * Convenience macro. + */ +#define SDL_LoadFile(file, datasize) SDL_LoadFile_RW(SDL_RWFromFile(file, "rb"), datasize, 1) + /** * \name Read endian functions * @@ -226,6 +249,6 @@ extern DECLSPEC size_t SDLCALL SDL_WriteBE64(SDL_RWops * dst, Uint64 value); #endif #include "close_code.h" -#endif /* _SDL_rwops_h */ +#endif /* SDL_rwops_h_ */ /* vi: set ts=4 sw=4 expandtab: */ diff --git a/libs/SDL2/i686-w64-mingw32/include/SDL2/SDL_scancode.h b/libs/SDL2/i686-w64-mingw32/include/SDL2/SDL_scancode.h index 0af1dd59f..1d5521204 100644 --- a/libs/SDL2/i686-w64-mingw32/include/SDL2/SDL_scancode.h +++ b/libs/SDL2/i686-w64-mingw32/include/SDL2/SDL_scancode.h @@ -1,6 +1,6 @@ /* Simple DirectMedia Layer - Copyright (C) 1997-2016 Sam Lantinga + Copyright (C) 1997-2017 Sam Lantinga This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages @@ -25,8 +25,8 @@ * Defines keyboard scancodes. */ -#ifndef _SDL_scancode_h -#define _SDL_scancode_h +#ifndef SDL_scancode_h_ +#define SDL_scancode_h_ #include "SDL_stdinc.h" @@ -38,7 +38,7 @@ * SDL_Event structure. * * The values in this enumeration are based on the USB usage page standard: - * http://www.usb.org/developers/devclass_docs/Hut1_12v2.pdf + * http://www.usb.org/developers/hidpage/Hut1_12v2.pdf */ typedef enum { @@ -390,12 +390,24 @@ typedef enum /* @} *//* Walther keys */ + /** + * \name Usage page 0x0C (additional media keys) + * + * These values are mapped from usage page 0x0C (USB consumer page). + */ + /* @{ */ + + SDL_SCANCODE_AUDIOREWIND = 285, + SDL_SCANCODE_AUDIOFASTFORWARD = 286, + + /* @} *//* Usage page 0x0C (additional media keys) */ + /* Add any other keys here. */ SDL_NUM_SCANCODES = 512 /**< not a key, just marks the number of scancodes for array bounds */ } SDL_Scancode; -#endif /* _SDL_scancode_h */ +#endif /* SDL_scancode_h_ */ /* vi: set ts=4 sw=4 expandtab: */ diff --git a/libs/SDL2/i686-w64-mingw32/include/SDL2/SDL_shape.h b/libs/SDL2/i686-w64-mingw32/include/SDL2/SDL_shape.h index db10a8f01..9e492d93a 100644 --- a/libs/SDL2/i686-w64-mingw32/include/SDL2/SDL_shape.h +++ b/libs/SDL2/i686-w64-mingw32/include/SDL2/SDL_shape.h @@ -1,6 +1,6 @@ /* Simple DirectMedia Layer - Copyright (C) 1997-2016 Sam Lantinga + Copyright (C) 1997-2017 Sam Lantinga This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages @@ -19,8 +19,8 @@ 3. This notice may not be removed or altered from any source distribution. */ -#ifndef _SDL_shape_h -#define _SDL_shape_h +#ifndef SDL_shape_h_ +#define SDL_shape_h_ #include "SDL_stdinc.h" #include "SDL_pixels.h" @@ -71,6 +71,7 @@ extern DECLSPEC SDL_Window * SDLCALL SDL_CreateShapedWindow(const char *title,un * \param window The window to query for being shaped. * * \return SDL_TRUE if the window is a window that can be shaped, SDL_FALSE if the window is unshaped or NULL. + * * \sa SDL_CreateShapedWindow */ extern DECLSPEC SDL_bool SDLCALL SDL_IsShapedWindow(const SDL_Window *window); @@ -91,7 +92,7 @@ typedef enum { /** \brief A union containing parameters for shaped windows. */ typedef union { - /** \brief a cutoff alpha value for binarization of the window shape's alpha channel. */ + /** \brief A cutoff alpha value for binarization of the window shape's alpha channel. */ Uint8 binarizationCutoff; SDL_Color colorKey; } SDL_WindowShapeParams; @@ -111,8 +112,8 @@ typedef struct SDL_WindowShapeMode { * \param shape A surface encoding the desired shape for the window. * \param shape_mode The parameters to set for the shaped window. * - * \return 0 on success, SDL_INVALID_SHAPE_ARGUMENT on invalid an invalid shape argument, or SDL_NONSHAPEABLE_WINDOW - * if the SDL_Window* given does not reference a valid shaped window. + * \return 0 on success, SDL_INVALID_SHAPE_ARGUMENT on an invalid shape argument, or SDL_NONSHAPEABLE_WINDOW + * if the SDL_Window given does not reference a valid shaped window. * * \sa SDL_WindowShapeMode * \sa SDL_GetShapedWindowMode. @@ -127,7 +128,7 @@ extern DECLSPEC int SDLCALL SDL_SetWindowShape(SDL_Window *window,SDL_Surface *s * * \return 0 if the window has a shape and, provided shape_mode was not NULL, shape_mode has been filled with the mode * data, SDL_NONSHAPEABLE_WINDOW if the SDL_Window given is not a shaped window, or SDL_WINDOW_LACKS_SHAPE if - * the SDL_Window* given is a shapeable window currently lacking a shape. + * the SDL_Window given is a shapeable window currently lacking a shape. * * \sa SDL_WindowShapeMode * \sa SDL_SetWindowShape @@ -140,4 +141,4 @@ extern DECLSPEC int SDLCALL SDL_GetShapedWindowMode(SDL_Window *window,SDL_Windo #endif #include "close_code.h" -#endif /* _SDL_shape_h */ +#endif /* SDL_shape_h_ */ diff --git a/libs/SDL2/i686-w64-mingw32/include/SDL2/SDL_stdinc.h b/libs/SDL2/i686-w64-mingw32/include/SDL2/SDL_stdinc.h index 887bcd2d4..72402299f 100644 --- a/libs/SDL2/i686-w64-mingw32/include/SDL2/SDL_stdinc.h +++ b/libs/SDL2/i686-w64-mingw32/include/SDL2/SDL_stdinc.h @@ -1,6 +1,6 @@ /* Simple DirectMedia Layer - Copyright (C) 1997-2016 Sam Lantinga + Copyright (C) 1997-2017 Sam Lantinga This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages @@ -25,8 +25,8 @@ * This is a general header that includes C language support. */ -#ifndef _SDL_stdinc_h -#define _SDL_stdinc_h +#ifndef SDL_stdinc_h_ +#define SDL_stdinc_h_ #include "SDL_config.h" @@ -62,6 +62,9 @@ #ifdef HAVE_STRINGS_H # include #endif +#ifdef HAVE_WCHAR_H +# include +#endif #if defined(HAVE_INTTYPES_H) # include #elif defined(HAVE_STDINT_H) @@ -83,9 +86,6 @@ #ifdef HAVE_FLOAT_H # include #endif -#if defined(HAVE_ICONV) && defined(HAVE_ICONV_H) -# include -#endif /** * The number of elements in an array. @@ -93,6 +93,13 @@ #define SDL_arraysize(array) (sizeof(array)/sizeof(array[0])) #define SDL_TABLESIZE(table) SDL_arraysize(table) +/** + * Macro useful for building other macros with strings in them + * + * e.g. #define LOG_ERROR(X) OutputDebugString(SDL_STRINGIFY_ARG(__FUNCTION__) ": " X "\n") + */ +#define SDL_STRINGIFY_ARG(arg) #arg + /** * \name Cast operators * @@ -123,44 +130,67 @@ */ /* @{ */ +#ifdef __CC_ARM +/* ARM's compiler throws warnings if we use an enum: like "SDL_bool x = a < b;" */ +#define SDL_FALSE 0 +#define SDL_TRUE 1 +typedef int SDL_bool; +#else typedef enum { SDL_FALSE = 0, SDL_TRUE = 1 } SDL_bool; +#endif /** * \brief A signed 8-bit integer type. */ +#define SDL_MAX_SINT8 ((Sint8)0x7F) /* 127 */ +#define SDL_MIN_SINT8 ((Sint8)(~0x7F)) /* -128 */ typedef int8_t Sint8; /** * \brief An unsigned 8-bit integer type. */ +#define SDL_MAX_UINT8 ((Uint8)0xFF) /* 255 */ +#define SDL_MIN_UINT8 ((Uint8)0x00) /* 0 */ typedef uint8_t Uint8; /** * \brief A signed 16-bit integer type. */ +#define SDL_MAX_SINT16 ((Sint16)0x7FFF) /* 32767 */ +#define SDL_MIN_SINT16 ((Sint16)(~0x7FFF)) /* -32768 */ typedef int16_t Sint16; /** * \brief An unsigned 16-bit integer type. */ +#define SDL_MAX_UINT16 ((Uint16)0xFFFF) /* 65535 */ +#define SDL_MIN_UINT16 ((Uint16)0x0000) /* 0 */ typedef uint16_t Uint16; /** * \brief A signed 32-bit integer type. */ +#define SDL_MAX_SINT32 ((Sint32)0x7FFFFFFF) /* 2147483647 */ +#define SDL_MIN_SINT32 ((Sint32)(~0x7FFFFFFF)) /* -2147483648 */ typedef int32_t Sint32; /** * \brief An unsigned 32-bit integer type. */ +#define SDL_MAX_UINT32 ((Uint32)0xFFFFFFFFu) /* 4294967295 */ +#define SDL_MIN_UINT32 ((Uint32)0x00000000) /* 0 */ typedef uint32_t Uint32; /** * \brief A signed 64-bit integer type. */ +#define SDL_MAX_SINT64 ((Sint64)0x7FFFFFFFFFFFFFFFll) /* 9223372036854775807 */ +#define SDL_MIN_SINT64 ((Sint64)(~0x7FFFFFFFFFFFFFFFll)) /* -9223372036854775808 */ typedef int64_t Sint64; /** * \brief An unsigned 64-bit integer type. */ +#define SDL_MAX_UINT64 ((Uint64)0xFFFFFFFFFFFFFFFFull) /* 18446744073709551615 */ +#define SDL_MIN_UINT64 ((Uint64)(0x0000000000000000ull)) /* 0 */ typedef uint64_t Uint64; /* @} *//* Basic data types */ @@ -258,7 +288,7 @@ typedef uint64_t Uint64; #endif /* SDL_DISABLE_ANALYZE_MACROS */ #define SDL_COMPILE_TIME_ASSERT(name, x) \ - typedef int SDL_dummy_ ## name[(x) * 2 - 1] + typedef int SDL_compile_time_assert_ ## name[(x) * 2 - 1] /** \cond */ #ifndef DOXYGEN_SHOULD_IGNORE_THIS SDL_COMPILE_TIME_ASSERT(uint8, sizeof(Uint8) == 1); @@ -333,6 +363,37 @@ extern DECLSPEC void *SDLCALL SDL_calloc(size_t nmemb, size_t size); extern DECLSPEC void *SDLCALL SDL_realloc(void *mem, size_t size); extern DECLSPEC void SDLCALL SDL_free(void *mem); +typedef void *(SDLCALL *SDL_malloc_func)(size_t size); +typedef void *(SDLCALL *SDL_calloc_func)(size_t nmemb, size_t size); +typedef void *(SDLCALL *SDL_realloc_func)(void *mem, size_t size); +typedef void (SDLCALL *SDL_free_func)(void *mem); + +/** + * \brief Get the current set of SDL memory functions + */ +extern DECLSPEC void SDLCALL SDL_GetMemoryFunctions(SDL_malloc_func *malloc_func, + SDL_calloc_func *calloc_func, + SDL_realloc_func *realloc_func, + SDL_free_func *free_func); + +/** + * \brief Replace SDL's memory allocation functions with a custom set + * + * \note If you are replacing SDL's memory functions, you should call + * SDL_GetNumAllocations() and be very careful if it returns non-zero. + * That means that your free function will be called with memory + * allocated by the previous memory allocation functions. + */ +extern DECLSPEC int SDLCALL SDL_SetMemoryFunctions(SDL_malloc_func malloc_func, + SDL_calloc_func calloc_func, + SDL_realloc_func realloc_func, + SDL_free_func free_func); + +/** + * \brief Get the number of outstanding (unfreed) allocations + */ +extern DECLSPEC int SDLCALL SDL_GetNumAllocations(void); + extern DECLSPEC char *SDLCALL SDL_getenv(const char *name); extern DECLSPEC int SDLCALL SDL_setenv(const char *name, const char *value, int overwrite); @@ -375,10 +436,10 @@ SDL_FORCE_INLINE void SDL_memset4(void *dst, Uint32 val, size_t dwords) return; switch (dwords % 4) { - case 0: do { *_p++ = _val; - case 3: *_p++ = _val; - case 2: *_p++ = _val; - case 1: *_p++ = _val; + case 0: do { *_p++ = _val; /* fallthrough */ + case 3: *_p++ = _val; /* fallthrough */ + case 2: *_p++ = _val; /* fallthrough */ + case 1: *_p++ = _val; /* fallthrough */ } while ( --_n ); } #endif @@ -393,6 +454,7 @@ extern DECLSPEC int SDLCALL SDL_memcmp(const void *s1, const void *s2, size_t le extern DECLSPEC size_t SDLCALL SDL_wcslen(const wchar_t *wstr); extern DECLSPEC size_t SDLCALL SDL_wcslcpy(SDL_OUT_Z_CAP(maxlen) wchar_t *dst, const wchar_t *src, size_t maxlen); extern DECLSPEC size_t SDLCALL SDL_wcslcat(SDL_INOUT_Z_CAP(maxlen) wchar_t *dst, const wchar_t *src, size_t maxlen); +extern DECLSPEC int SDLCALL SDL_wcscmp(const wchar_t *str1, const wchar_t *str2); extern DECLSPEC size_t SDLCALL SDL_strlen(const char *str); extern DECLSPEC size_t SDLCALL SDL_strlcpy(SDL_OUT_Z_CAP(maxlen) char *dst, const char *src, size_t maxlen); @@ -405,6 +467,7 @@ extern DECLSPEC char *SDLCALL SDL_strlwr(char *str); extern DECLSPEC char *SDLCALL SDL_strchr(const char *str, int c); extern DECLSPEC char *SDLCALL SDL_strrchr(const char *str, int c); extern DECLSPEC char *SDLCALL SDL_strstr(const char *haystack, const char *needle); +extern DECLSPEC size_t SDLCALL SDL_utf8strlen(const char *str); extern DECLSPEC char *SDLCALL SDL_itoa(int value, char *str, int radix); extern DECLSPEC char *SDLCALL SDL_uitoa(unsigned int value, char *str, int radix); @@ -433,7 +496,7 @@ extern DECLSPEC int SDLCALL SDL_vsnprintf(SDL_OUT_Z_CAP(maxlen) char *text, size #ifndef HAVE_M_PI #ifndef M_PI -#define M_PI 3.14159265358979323846264338327950288 /* pi */ +#define M_PI 3.14159265358979323846264338327950288 /**< pi */ #endif #endif @@ -522,6 +585,6 @@ SDL_FORCE_INLINE void *SDL_memcpy4(SDL_OUT_BYTECAP(dwords*4) void *dst, SDL_IN_B #endif #include "close_code.h" -#endif /* _SDL_stdinc_h */ +#endif /* SDL_stdinc_h_ */ /* vi: set ts=4 sw=4 expandtab: */ diff --git a/libs/SDL2/i686-w64-mingw32/include/SDL2/SDL_surface.h b/libs/SDL2/i686-w64-mingw32/include/SDL2/SDL_surface.h index e63ca8903..510690c9c 100644 --- a/libs/SDL2/i686-w64-mingw32/include/SDL2/SDL_surface.h +++ b/libs/SDL2/i686-w64-mingw32/include/SDL2/SDL_surface.h @@ -1,6 +1,6 @@ /* Simple DirectMedia Layer - Copyright (C) 1997-2016 Sam Lantinga + Copyright (C) 1997-2017 Sam Lantinga This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages @@ -25,8 +25,8 @@ * Header file for ::SDL_Surface definition and management functions. */ -#ifndef _SDL_surface_h -#define _SDL_surface_h +#ifndef SDL_surface_h_ +#define SDL_surface_h_ #include "SDL_stdinc.h" #include "SDL_pixels.h" @@ -94,8 +94,8 @@ typedef struct SDL_Surface /** * \brief The type of function used for surface blitting functions. */ -typedef int (*SDL_blit) (struct SDL_Surface * src, SDL_Rect * srcrect, - struct SDL_Surface * dst, SDL_Rect * dstrect); +typedef int (SDLCALL *SDL_blit) (struct SDL_Surface * src, SDL_Rect * srcrect, + struct SDL_Surface * dst, SDL_Rect * dstrect); /** * Allocate and free an RGB surface. @@ -118,6 +118,11 @@ typedef int (*SDL_blit) (struct SDL_Surface * src, SDL_Rect * srcrect, extern DECLSPEC SDL_Surface *SDLCALL SDL_CreateRGBSurface (Uint32 flags, int width, int height, int depth, Uint32 Rmask, Uint32 Gmask, Uint32 Bmask, Uint32 Amask); + +/* !!! FIXME for 2.1: why does this ask for depth? Format provides that. */ +extern DECLSPEC SDL_Surface *SDLCALL SDL_CreateRGBSurfaceWithFormat + (Uint32 flags, int width, int height, int depth, Uint32 format); + extern DECLSPEC SDL_Surface *SDLCALL SDL_CreateRGBSurfaceFrom(void *pixels, int width, int height, @@ -127,6 +132,8 @@ extern DECLSPEC SDL_Surface *SDLCALL SDL_CreateRGBSurfaceFrom(void *pixels, Uint32 Gmask, Uint32 Bmask, Uint32 Amask); +extern DECLSPEC SDL_Surface *SDLCALL SDL_CreateRGBSurfaceWithFormatFrom + (void *pixels, int width, int height, int depth, int pitch, Uint32 format); extern DECLSPEC void SDLCALL SDL_FreeSurface(SDL_Surface * surface); /** @@ -184,6 +191,12 @@ extern DECLSPEC SDL_Surface *SDLCALL SDL_LoadBMP_RW(SDL_RWops * src, /** * Save a surface to a seekable SDL data stream (memory or file). * + * Surfaces with a 24-bit, 32-bit and paletted 8-bit format get saved in the + * BMP directly. Other RGB formats with 8-bit or higher get converted to a + * 24-bit surface or, if they have an alpha mask or a colorkey, to a 32-bit + * surface before they are saved. YUV and paletted 1-bit and 4-bit formats are + * not supported. + * * If \c freedst is non-zero, the stream will be closed after being written. * * \return 0 if successful or -1 if there was an error. @@ -346,6 +359,11 @@ extern DECLSPEC SDL_bool SDLCALL SDL_SetClipRect(SDL_Surface * surface, extern DECLSPEC void SDLCALL SDL_GetClipRect(SDL_Surface * surface, SDL_Rect * rect); +/* + * Creates a new surface identical to the existing surface + */ +extern DECLSPEC SDL_Surface *SDLCALL SDL_DuplicateSurface(SDL_Surface * surface); + /** * Creates a new surface of the specified format, and then copies and maps * the given surface to it so the blit of the converted surface will be as @@ -498,6 +516,6 @@ extern DECLSPEC int SDLCALL SDL_LowerBlitScaled #endif #include "close_code.h" -#endif /* _SDL_surface_h */ +#endif /* SDL_surface_h_ */ /* vi: set ts=4 sw=4 expandtab: */ diff --git a/libs/SDL2/i686-w64-mingw32/include/SDL2/SDL_system.h b/libs/SDL2/i686-w64-mingw32/include/SDL2/SDL_system.h index 5da9adb45..eb069b33d 100644 --- a/libs/SDL2/i686-w64-mingw32/include/SDL2/SDL_system.h +++ b/libs/SDL2/i686-w64-mingw32/include/SDL2/SDL_system.h @@ -1,6 +1,6 @@ /* Simple DirectMedia Layer - Copyright (C) 1997-2016 Sam Lantinga + Copyright (C) 1997-2017 Sam Lantinga This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages @@ -25,8 +25,8 @@ * Include file for platform specific SDL API functions */ -#ifndef _SDL_system_h -#define _SDL_system_h +#ifndef SDL_system_h_ +#define SDL_system_h_ #include "SDL_stdinc.h" #include "SDL_keyboard.h" @@ -96,7 +96,7 @@ extern DECLSPEC void SDLCALL SDL_iPhoneSetEventPump(SDL_bool enabled); This returns JNIEnv*, but the prototype is void* so we don't need jni.h */ -extern DECLSPEC void * SDLCALL SDL_AndroidGetJNIEnv(); +extern DECLSPEC void * SDLCALL SDL_AndroidGetJNIEnv(void); /** \brief Get the SDL Activity object for the application @@ -106,7 +106,7 @@ extern DECLSPEC void * SDLCALL SDL_AndroidGetJNIEnv(); It is the caller's responsibility to properly release it (using env->Push/PopLocalFrame or manually with env->DeleteLocalRef) */ -extern DECLSPEC void * SDLCALL SDL_AndroidGetActivity(); +extern DECLSPEC void * SDLCALL SDL_AndroidGetActivity(void); /** See the official Android developer guide for more information: @@ -121,7 +121,7 @@ extern DECLSPEC void * SDLCALL SDL_AndroidGetActivity(); This path is unique to your application and cannot be written to by other applications. */ -extern DECLSPEC const char * SDLCALL SDL_AndroidGetInternalStoragePath(); +extern DECLSPEC const char * SDLCALL SDL_AndroidGetInternalStoragePath(void); /** \brief Get the current state of external storage, a bitmask of these values: @@ -130,7 +130,7 @@ extern DECLSPEC const char * SDLCALL SDL_AndroidGetInternalStoragePath(); If external storage is currently unavailable, this will return 0. */ -extern DECLSPEC int SDLCALL SDL_AndroidGetExternalStorageState(); +extern DECLSPEC int SDLCALL SDL_AndroidGetExternalStorageState(void); /** \brief Get the path used for external storage for this application. @@ -138,7 +138,7 @@ extern DECLSPEC int SDLCALL SDL_AndroidGetExternalStorageState(); This path is unique to your application, but is public and can be written to by other applications. */ -extern DECLSPEC const char * SDLCALL SDL_AndroidGetExternalStoragePath(); +extern DECLSPEC const char * SDLCALL SDL_AndroidGetExternalStoragePath(void); #endif /* __ANDROID__ */ @@ -211,6 +211,6 @@ extern DECLSPEC const char * SDLCALL SDL_WinRTGetFSPathUTF8(SDL_WinRT_Path pathT #endif #include "close_code.h" -#endif /* _SDL_system_h */ +#endif /* SDL_system_h_ */ /* vi: set ts=4 sw=4 expandtab: */ diff --git a/libs/SDL2/i686-w64-mingw32/include/SDL2/SDL_syswm.h b/libs/SDL2/i686-w64-mingw32/include/SDL2/SDL_syswm.h index 1056e526b..2d18afb6c 100644 --- a/libs/SDL2/i686-w64-mingw32/include/SDL2/SDL_syswm.h +++ b/libs/SDL2/i686-w64-mingw32/include/SDL2/SDL_syswm.h @@ -1,6 +1,6 @@ /* Simple DirectMedia Layer - Copyright (C) 1997-2016 Sam Lantinga + Copyright (C) 1997-2017 Sam Lantinga This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages @@ -25,8 +25,8 @@ * Include file for SDL custom system window manager hooks. */ -#ifndef _SDL_syswm_h -#define _SDL_syswm_h +#ifndef SDL_syswm_h_ +#define SDL_syswm_h_ #include "SDL_stdinc.h" #include "SDL_error.h" @@ -106,6 +106,10 @@ typedef struct ANativeWindow ANativeWindow; typedef void *EGLSurface; #endif +#if defined(SDL_VIDEO_DRIVER_VIVANTE) +#include "SDL_egl.h" +#endif + /** * These are the various supported windowing subsystems */ @@ -120,7 +124,9 @@ typedef enum SDL_SYSWM_WAYLAND, SDL_SYSWM_MIR, SDL_SYSWM_WINRT, - SDL_SYSWM_ANDROID + SDL_SYSWM_ANDROID, + SDL_SYSWM_VIVANTE, + SDL_SYSWM_OS2 } SDL_SYSWM_TYPE; /** @@ -166,6 +172,13 @@ struct SDL_SysWMmsg int dummy; /* No UIKit window events yet */ } uikit; +#endif +#if defined(SDL_VIDEO_DRIVER_VIVANTE) + struct + { + int dummy; + /* No Vivante window events yet */ + } vivante; #endif /* Can't have an empty union */ int dummy; @@ -189,6 +202,7 @@ struct SDL_SysWMinfo { HWND window; /**< The window handle */ HDC hdc; /**< The window device context */ + HINSTANCE hinstance; /**< The instance handle */ } win; #endif #if defined(SDL_VIDEO_DRIVER_WINRT) @@ -216,9 +230,9 @@ struct SDL_SysWMinfo struct { #if defined(__OBJC__) && defined(__has_feature) && __has_feature(objc_arc) - NSWindow __unsafe_unretained *window; /* The Cocoa window */ + NSWindow __unsafe_unretained *window; /**< The Cocoa window */ #else - NSWindow *window; /* The Cocoa window */ + NSWindow *window; /**< The Cocoa window */ #endif } cocoa; #endif @@ -226,13 +240,13 @@ struct SDL_SysWMinfo struct { #if defined(__OBJC__) && defined(__has_feature) && __has_feature(objc_arc) - UIWindow __unsafe_unretained *window; /* The UIKit window */ + UIWindow __unsafe_unretained *window; /**< The UIKit window */ #else - UIWindow *window; /* The UIKit window */ + UIWindow *window; /**< The UIKit window */ #endif - GLuint framebuffer; /* The GL view's Framebuffer Object. It must be bound when rendering to the screen using GL. */ - GLuint colorbuffer; /* The GL view's color Renderbuffer Object. It must be bound when SDL_GL_SwapWindow is called. */ - GLuint resolveFramebuffer; /* The Framebuffer Object which holds the resolve color Renderbuffer, when MSAA is used. */ + GLuint framebuffer; /**< The GL view's Framebuffer Object. It must be bound when rendering to the screen using GL. */ + GLuint colorbuffer; /**< The GL view's color Renderbuffer Object. It must be bound when SDL_GL_SwapWindow is called. */ + GLuint resolveFramebuffer; /**< The Framebuffer Object which holds the resolve color Renderbuffer, when MSAA is used. */ } uikit; #endif #if defined(SDL_VIDEO_DRIVER_WAYLAND) @@ -259,8 +273,17 @@ struct SDL_SysWMinfo } android; #endif - /* Can't have an empty union */ - int dummy; +#if defined(SDL_VIDEO_DRIVER_VIVANTE) + struct + { + EGLNativeDisplayType display; + EGLNativeWindowType window; + } vivante; +#endif + + /* Make sure this union is always 64 bytes (8 64-bit pointers). */ + /* Be careful not to overflow this if you add a new target! */ + Uint8 dummy[64]; } info; }; @@ -296,6 +319,6 @@ extern DECLSPEC SDL_bool SDLCALL SDL_GetWindowWMInfo(SDL_Window * window, #endif #include "close_code.h" -#endif /* _SDL_syswm_h */ +#endif /* SDL_syswm_h_ */ /* vi: set ts=4 sw=4 expandtab: */ diff --git a/libs/SDL2/i686-w64-mingw32/include/SDL2/SDL_test.h b/libs/SDL2/i686-w64-mingw32/include/SDL2/SDL_test.h index 217847bfc..f55afcb02 100644 --- a/libs/SDL2/i686-w64-mingw32/include/SDL2/SDL_test.h +++ b/libs/SDL2/i686-w64-mingw32/include/SDL2/SDL_test.h @@ -1,6 +1,6 @@ /* Simple DirectMedia Layer - Copyright (C) 1997-2016 Sam Lantinga + Copyright (C) 1997-2017 Sam Lantinga This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages @@ -27,21 +27,22 @@ * This code is a part of the SDL2_test library, not the main SDL library. */ -#ifndef _SDL_test_h -#define _SDL_test_h +#ifndef SDL_test_h_ +#define SDL_test_h_ #include "SDL.h" -#include "SDL_test_common.h" -#include "SDL_test_font.h" -#include "SDL_test_random.h" -#include "SDL_test_fuzzer.h" -#include "SDL_test_crc32.h" -#include "SDL_test_md5.h" -#include "SDL_test_log.h" #include "SDL_test_assert.h" +#include "SDL_test_common.h" +#include "SDL_test_compare.h" +#include "SDL_test_crc32.h" +#include "SDL_test_font.h" +#include "SDL_test_fuzzer.h" #include "SDL_test_harness.h" #include "SDL_test_images.h" -#include "SDL_test_compare.h" +#include "SDL_test_log.h" +#include "SDL_test_md5.h" +#include "SDL_test_memory.h" +#include "SDL_test_random.h" #include "begin_code.h" /* Set up for C function definitions, even when using C++ */ @@ -63,6 +64,6 @@ extern "C" { #endif #include "close_code.h" -#endif /* _SDL_test_h */ +#endif /* SDL_test_h_ */ /* vi: set ts=4 sw=4 expandtab: */ diff --git a/libs/SDL2/i686-w64-mingw32/include/SDL2/SDL_test_assert.h b/libs/SDL2/i686-w64-mingw32/include/SDL2/SDL_test_assert.h index 29277e122..11d836394 100644 --- a/libs/SDL2/i686-w64-mingw32/include/SDL2/SDL_test_assert.h +++ b/libs/SDL2/i686-w64-mingw32/include/SDL2/SDL_test_assert.h @@ -1,6 +1,6 @@ /* Simple DirectMedia Layer - Copyright (C) 1997-2016 Sam Lantinga + Copyright (C) 1997-2017 Sam Lantinga This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages @@ -33,8 +33,8 @@ * */ -#ifndef _SDL_test_assert_h -#define _SDL_test_assert_h +#ifndef SDL_test_assert_h_ +#define SDL_test_assert_h_ #include "begin_code.h" /* Set up for C function definitions, even when using C++ */ @@ -80,12 +80,12 @@ void SDLTest_AssertPass(SDL_PRINTF_FORMAT_STRING const char *assertDescription, /** * \brief Resets the assert summary counters to zero. */ -void SDLTest_ResetAssertSummary(); +void SDLTest_ResetAssertSummary(void); /** * \brief Logs summary of all assertions (total, pass, fail) since last reset as INFO or ERROR. */ -void SDLTest_LogAssertSummary(); +void SDLTest_LogAssertSummary(void); /** @@ -93,13 +93,13 @@ void SDLTest_LogAssertSummary(); * * \returns TEST_RESULT_PASSED, TEST_RESULT_FAILED, or TEST_RESULT_NO_ASSERT */ -int SDLTest_AssertSummaryToTestResult(); +int SDLTest_AssertSummaryToTestResult(void); #ifdef __cplusplus } #endif #include "close_code.h" -#endif /* _SDL_test_assert_h */ +#endif /* SDL_test_assert_h_ */ /* vi: set ts=4 sw=4 expandtab: */ diff --git a/libs/SDL2/i686-w64-mingw32/include/SDL2/SDL_test_common.h b/libs/SDL2/i686-w64-mingw32/include/SDL2/SDL_test_common.h index 0ebf31cb6..24eeb32af 100644 --- a/libs/SDL2/i686-w64-mingw32/include/SDL2/SDL_test_common.h +++ b/libs/SDL2/i686-w64-mingw32/include/SDL2/SDL_test_common.h @@ -1,6 +1,6 @@ /* Simple DirectMedia Layer - Copyright (C) 1997-2016 Sam Lantinga + Copyright (C) 1997-2017 Sam Lantinga This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages @@ -29,8 +29,8 @@ /* Ported from original test\common.h file. */ -#ifndef _SDL_test_common_h -#define _SDL_test_common_h +#ifndef SDL_test_common_h_ +#define SDL_test_common_h_ #include "SDL.h" @@ -183,6 +183,6 @@ void SDLTest_CommonQuit(SDLTest_CommonState * state); #endif #include "close_code.h" -#endif /* _SDL_test_common_h */ +#endif /* SDL_test_common_h_ */ /* vi: set ts=4 sw=4 expandtab: */ diff --git a/libs/SDL2/i686-w64-mingw32/include/SDL2/SDL_test_compare.h b/libs/SDL2/i686-w64-mingw32/include/SDL2/SDL_test_compare.h index 772cf9fbd..9f4c4587a 100644 --- a/libs/SDL2/i686-w64-mingw32/include/SDL2/SDL_test_compare.h +++ b/libs/SDL2/i686-w64-mingw32/include/SDL2/SDL_test_compare.h @@ -1,6 +1,6 @@ /* Simple DirectMedia Layer - Copyright (C) 1997-2016 Sam Lantinga + Copyright (C) 1997-2017 Sam Lantinga This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages @@ -33,8 +33,8 @@ */ -#ifndef _SDL_test_compare_h -#define _SDL_test_compare_h +#ifndef SDL_test_compare_h_ +#define SDL_test_compare_h_ #include "SDL.h" @@ -64,6 +64,6 @@ int SDLTest_CompareSurfaces(SDL_Surface *surface, SDL_Surface *referenceSurface, #endif #include "close_code.h" -#endif /* _SDL_test_compare_h */ +#endif /* SDL_test_compare_h_ */ /* vi: set ts=4 sw=4 expandtab: */ diff --git a/libs/SDL2/i686-w64-mingw32/include/SDL2/SDL_test_crc32.h b/libs/SDL2/i686-w64-mingw32/include/SDL2/SDL_test_crc32.h index 572a3d955..add480c34 100644 --- a/libs/SDL2/i686-w64-mingw32/include/SDL2/SDL_test_crc32.h +++ b/libs/SDL2/i686-w64-mingw32/include/SDL2/SDL_test_crc32.h @@ -1,6 +1,6 @@ /* Simple DirectMedia Layer - Copyright (C) 1997-2016 Sam Lantinga + Copyright (C) 1997-2017 Sam Lantinga This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages @@ -33,8 +33,8 @@ */ -#ifndef _SDL_test_crc32_h -#define _SDL_test_crc32_h +#ifndef SDL_test_crc32_h_ +#define SDL_test_crc32_h_ #include "begin_code.h" /* Set up for C function definitions, even when using C++ */ @@ -93,7 +93,7 @@ extern "C" { * \returns 0 for OK, -1 on error * */ -int SDLTest_crc32Calc(SDLTest_Crc32Context * crcContext, CrcUint8 *inBuf, CrcUint32 inLen, CrcUint32 *crc32); +int SDLTest_Crc32Calc(SDLTest_Crc32Context * crcContext, CrcUint8 *inBuf, CrcUint32 inLen, CrcUint32 *crc32); /* Same routine broken down into three steps */ int SDLTest_Crc32CalcStart(SDLTest_Crc32Context * crcContext, CrcUint32 *crc32); @@ -119,6 +119,6 @@ int SDLTest_Crc32Done(SDLTest_Crc32Context * crcContext); #endif #include "close_code.h" -#endif /* _SDL_test_crc32_h */ +#endif /* SDL_test_crc32_h_ */ /* vi: set ts=4 sw=4 expandtab: */ diff --git a/libs/SDL2/i686-w64-mingw32/include/SDL2/SDL_test_font.h b/libs/SDL2/i686-w64-mingw32/include/SDL2/SDL_test_font.h index 3378ea85b..58c9f9d5e 100644 --- a/libs/SDL2/i686-w64-mingw32/include/SDL2/SDL_test_font.h +++ b/libs/SDL2/i686-w64-mingw32/include/SDL2/SDL_test_font.h @@ -1,6 +1,6 @@ /* Simple DirectMedia Layer - Copyright (C) 1997-2016 Sam Lantinga + Copyright (C) 1997-2017 Sam Lantinga This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages @@ -27,8 +27,8 @@ * This code is a part of the SDL2_test library, not the main SDL library. */ -#ifndef _SDL_test_font_h -#define _SDL_test_font_h +#ifndef SDL_test_font_h_ +#define SDL_test_font_h_ #include "begin_code.h" /* Set up for C function definitions, even when using C++ */ @@ -50,7 +50,7 @@ extern "C" { * * \returns Returns 0 on success, -1 on failure. */ -int SDLTest_DrawCharacter( SDL_Renderer *renderer, int x, int y, char c ); +int SDLTest_DrawCharacter(SDL_Renderer *renderer, int x, int y, char c); /** * \brief Draw a string in the currently set font. @@ -62,15 +62,20 @@ int SDLTest_DrawCharacter( SDL_Renderer *renderer, int x, int y, char c ); * * \returns Returns 0 on success, -1 on failure. */ -int SDLTest_DrawString( SDL_Renderer * renderer, int x, int y, const char *s ); +int SDLTest_DrawString(SDL_Renderer *renderer, int x, int y, const char *s); +/** + * \brief Cleanup textures used by font drawing functions. + */ +void SDLTest_CleanupTextDrawing(void); + /* Ends C function definitions when using C++ */ #ifdef __cplusplus } #endif #include "close_code.h" -#endif /* _SDL_test_font_h */ +#endif /* SDL_test_font_h_ */ /* vi: set ts=4 sw=4 expandtab: */ diff --git a/libs/SDL2/i686-w64-mingw32/include/SDL2/SDL_test_fuzzer.h b/libs/SDL2/i686-w64-mingw32/include/SDL2/SDL_test_fuzzer.h index 9603652b2..6cf05747a 100644 --- a/libs/SDL2/i686-w64-mingw32/include/SDL2/SDL_test_fuzzer.h +++ b/libs/SDL2/i686-w64-mingw32/include/SDL2/SDL_test_fuzzer.h @@ -1,6 +1,6 @@ /* Simple DirectMedia Layer - Copyright (C) 1997-2016 Sam Lantinga + Copyright (C) 1997-2017 Sam Lantinga This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages @@ -33,8 +33,8 @@ */ -#ifndef _SDL_test_fuzzer_h -#define _SDL_test_fuzzer_h +#ifndef SDL_test_fuzzer_h_ +#define SDL_test_fuzzer_h_ #include "begin_code.h" /* Set up for C function definitions, even when using C++ */ @@ -68,14 +68,14 @@ void SDLTest_FuzzerInit(Uint64 execKey); * * \returns Generated integer */ -Uint8 SDLTest_RandomUint8(); +Uint8 SDLTest_RandomUint8(void); /** * Returns a random Sint8 * * \returns Generated signed integer */ -Sint8 SDLTest_RandomSint8(); +Sint8 SDLTest_RandomSint8(void); /** @@ -83,14 +83,14 @@ Sint8 SDLTest_RandomSint8(); * * \returns Generated integer */ -Uint16 SDLTest_RandomUint16(); +Uint16 SDLTest_RandomUint16(void); /** * Returns a random Sint16 * * \returns Generated signed integer */ -Sint16 SDLTest_RandomSint16(); +Sint16 SDLTest_RandomSint16(void); /** @@ -98,7 +98,7 @@ Sint16 SDLTest_RandomSint16(); * * \returns Generated integer */ -Sint32 SDLTest_RandomSint32(); +Sint32 SDLTest_RandomSint32(void); /** @@ -106,14 +106,14 @@ Sint32 SDLTest_RandomSint32(); * * \returns Generated integer */ -Uint32 SDLTest_RandomUint32(); +Uint32 SDLTest_RandomUint32(void); /** * Returns random Uint64. * * \returns Generated integer */ -Uint64 SDLTest_RandomUint64(); +Uint64 SDLTest_RandomUint64(void); /** @@ -121,29 +121,29 @@ Uint64 SDLTest_RandomUint64(); * * \returns Generated signed integer */ -Sint64 SDLTest_RandomSint64(); +Sint64 SDLTest_RandomSint64(void); /** * \returns random float in range [0.0 - 1.0[ */ -float SDLTest_RandomUnitFloat(); +float SDLTest_RandomUnitFloat(void); /** * \returns random double in range [0.0 - 1.0[ */ -double SDLTest_RandomUnitDouble(); +double SDLTest_RandomUnitDouble(void); /** * \returns random float. * */ -float SDLTest_RandomFloat(); +float SDLTest_RandomFloat(void); /** * \returns random double. * */ -double SDLTest_RandomDouble(); +double SDLTest_RandomDouble(void); /** * Returns a random boundary value for Uint8 within the given boundaries. @@ -338,7 +338,7 @@ Sint32 SDLTest_RandomIntegerInRange(Sint32 min, Sint32 max); * * \returns Newly allocated random string; or NULL if length was invalid or string could not be allocated. */ -char * SDLTest_RandomAsciiString(); +char * SDLTest_RandomAsciiString(void); /** @@ -371,7 +371,7 @@ char * SDLTest_RandomAsciiStringOfSize(int size); /** * Returns the invocation count for the fuzzer since last ...FuzzerInit. */ -int SDLTest_GetFuzzerInvocationCount(); +int SDLTest_GetFuzzerInvocationCount(void); /* Ends C function definitions when using C++ */ #ifdef __cplusplus @@ -379,6 +379,6 @@ int SDLTest_GetFuzzerInvocationCount(); #endif #include "close_code.h" -#endif /* _SDL_test_fuzzer_h */ +#endif /* SDL_test_fuzzer_h_ */ /* vi: set ts=4 sw=4 expandtab: */ diff --git a/libs/SDL2/i686-w64-mingw32/include/SDL2/SDL_test_harness.h b/libs/SDL2/i686-w64-mingw32/include/SDL2/SDL_test_harness.h index 74c0950cd..68c4bcb7c 100644 --- a/libs/SDL2/i686-w64-mingw32/include/SDL2/SDL_test_harness.h +++ b/libs/SDL2/i686-w64-mingw32/include/SDL2/SDL_test_harness.h @@ -1,6 +1,6 @@ /* Simple DirectMedia Layer - Copyright (C) 1997-2016 Sam Lantinga + Copyright (C) 1997-2017 Sam Lantinga This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages @@ -33,8 +33,8 @@ Based on original GSOC code by Markus Kauppila */ -#ifndef _SDL_test_harness_h -#define _SDL_test_harness_h +#ifndef SDL_test_h_arness_h +#define SDL_test_h_arness_h #include "begin_code.h" /* Set up for C function definitions, even when using C++ */ @@ -98,6 +98,17 @@ typedef struct SDLTest_TestSuiteReference { } SDLTest_TestSuiteReference; +/** + * \brief Generates a random run seed string for the harness. The generated seed will contain alphanumeric characters (0-9A-Z). + * + * Note: The returned string needs to be deallocated by the caller. + * + * \param length The length of the seed string to generate + * + * \returns The generated seed string + */ +char *SDLTest_GenerateRunSeed(const int length); + /** * \brief Execute a test suite using the given run seed and execution key. * @@ -118,6 +129,6 @@ int SDLTest_RunSuites(SDLTest_TestSuiteReference *testSuites[], const char *user #endif #include "close_code.h" -#endif /* _SDL_test_harness_h */ +#endif /* SDL_test_h_arness_h */ /* vi: set ts=4 sw=4 expandtab: */ diff --git a/libs/SDL2/i686-w64-mingw32/include/SDL2/SDL_test_images.h b/libs/SDL2/i686-w64-mingw32/include/SDL2/SDL_test_images.h index 8c64b4feb..683d2f8a6 100644 --- a/libs/SDL2/i686-w64-mingw32/include/SDL2/SDL_test_images.h +++ b/libs/SDL2/i686-w64-mingw32/include/SDL2/SDL_test_images.h @@ -1,6 +1,6 @@ /* Simple DirectMedia Layer - Copyright (C) 1997-2016 Sam Lantinga + Copyright (C) 1997-2017 Sam Lantinga This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages @@ -33,8 +33,8 @@ */ -#ifndef _SDL_test_images_h -#define _SDL_test_images_h +#ifndef SDL_test_images_h_ +#define SDL_test_images_h_ #include "SDL.h" @@ -55,17 +55,17 @@ typedef struct SDLTest_SurfaceImage_s { } SDLTest_SurfaceImage_t; /* Test images */ -SDL_Surface *SDLTest_ImageBlit(); -SDL_Surface *SDLTest_ImageBlitColor(); -SDL_Surface *SDLTest_ImageBlitAlpha(); -SDL_Surface *SDLTest_ImageBlitBlendAdd(); -SDL_Surface *SDLTest_ImageBlitBlend(); -SDL_Surface *SDLTest_ImageBlitBlendMod(); -SDL_Surface *SDLTest_ImageBlitBlendNone(); -SDL_Surface *SDLTest_ImageBlitBlendAll(); -SDL_Surface *SDLTest_ImageFace(); -SDL_Surface *SDLTest_ImagePrimitives(); -SDL_Surface *SDLTest_ImagePrimitivesBlend(); +SDL_Surface *SDLTest_ImageBlit(void); +SDL_Surface *SDLTest_ImageBlitColor(void); +SDL_Surface *SDLTest_ImageBlitAlpha(void); +SDL_Surface *SDLTest_ImageBlitBlendAdd(void); +SDL_Surface *SDLTest_ImageBlitBlend(void); +SDL_Surface *SDLTest_ImageBlitBlendMod(void); +SDL_Surface *SDLTest_ImageBlitBlendNone(void); +SDL_Surface *SDLTest_ImageBlitBlendAll(void); +SDL_Surface *SDLTest_ImageFace(void); +SDL_Surface *SDLTest_ImagePrimitives(void); +SDL_Surface *SDLTest_ImagePrimitivesBlend(void); /* Ends C function definitions when using C++ */ #ifdef __cplusplus @@ -73,6 +73,6 @@ SDL_Surface *SDLTest_ImagePrimitivesBlend(); #endif #include "close_code.h" -#endif /* _SDL_test_images_h */ +#endif /* SDL_test_images_h_ */ /* vi: set ts=4 sw=4 expandtab: */ diff --git a/libs/SDL2/i686-w64-mingw32/include/SDL2/SDL_test_log.h b/libs/SDL2/i686-w64-mingw32/include/SDL2/SDL_test_log.h index 73a5c016f..9f993fbbc 100644 --- a/libs/SDL2/i686-w64-mingw32/include/SDL2/SDL_test_log.h +++ b/libs/SDL2/i686-w64-mingw32/include/SDL2/SDL_test_log.h @@ -1,6 +1,6 @@ /* Simple DirectMedia Layer - Copyright (C) 1997-2016 Sam Lantinga + Copyright (C) 1997-2017 Sam Lantinga This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages @@ -33,8 +33,8 @@ * */ -#ifndef _SDL_test_log_h -#define _SDL_test_log_h +#ifndef SDL_test_log_h_ +#define SDL_test_log_h_ #include "begin_code.h" /* Set up for C function definitions, even when using C++ */ @@ -62,6 +62,6 @@ void SDLTest_LogError(SDL_PRINTF_FORMAT_STRING const char *fmt, ...) SDL_PRINTF_ #endif #include "close_code.h" -#endif /* _SDL_test_log_h */ +#endif /* SDL_test_log_h_ */ /* vi: set ts=4 sw=4 expandtab: */ diff --git a/libs/SDL2/i686-w64-mingw32/include/SDL2/SDL_test_md5.h b/libs/SDL2/i686-w64-mingw32/include/SDL2/SDL_test_md5.h index f2d9a7d7e..67ca7d1de 100644 --- a/libs/SDL2/i686-w64-mingw32/include/SDL2/SDL_test_md5.h +++ b/libs/SDL2/i686-w64-mingw32/include/SDL2/SDL_test_md5.h @@ -1,6 +1,6 @@ /* Simple DirectMedia Layer - Copyright (C) 1997-2016 Sam Lantinga + Copyright (C) 1997-2017 Sam Lantinga This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages @@ -53,8 +53,8 @@ *********************************************************************** */ -#ifndef _SDL_test_md5_h -#define _SDL_test_md5_h +#ifndef SDL_test_md5_h_ +#define SDL_test_md5_h_ #include "begin_code.h" /* Set up for C function definitions, even when using C++ */ @@ -124,6 +124,6 @@ extern "C" { #endif #include "close_code.h" -#endif /* _SDL_test_md5_h */ +#endif /* SDL_test_md5_h_ */ /* vi: set ts=4 sw=4 expandtab: */ diff --git a/libs/SDL2/i686-w64-mingw32/include/SDL2/SDL_test_memory.h b/libs/SDL2/i686-w64-mingw32/include/SDL2/SDL_test_memory.h new file mode 100644 index 000000000..43b67f521 --- /dev/null +++ b/libs/SDL2/i686-w64-mingw32/include/SDL2/SDL_test_memory.h @@ -0,0 +1,63 @@ +/* + Simple DirectMedia Layer + Copyright (C) 1997-2017 Sam Lantinga + + This software is provided 'as-is', without any express or implied + warranty. In no event will the authors be held liable for any damages + arising from the use of this software. + + Permission is granted to anyone to use this software for any purpose, + including commercial applications, and to alter it and redistribute it + freely, subject to the following restrictions: + + 1. The origin of this software must not be misrepresented; you must not + claim that you wrote the original software. If you use this software + in a product, an acknowledgment in the product documentation would be + appreciated but is not required. + 2. Altered source versions must be plainly marked as such, and must not be + misrepresented as being the original software. + 3. This notice may not be removed or altered from any source distribution. +*/ + +/** + * \file SDL_test_memory.h + * + * Include file for SDL test framework. + * + * This code is a part of the SDL2_test library, not the main SDL library. + */ + +#ifndef SDL_test_memory_h_ +#define SDL_test_memory_h_ + +#include "begin_code.h" +/* Set up for C function definitions, even when using C++ */ +#ifdef __cplusplus +extern "C" { +#endif + + +/** + * \brief Start tracking SDL memory allocations + * + * \note This should be called before any other SDL functions for complete tracking coverage + */ +int SDLTest_TrackAllocations(); + +/** + * \brief Print a log of any outstanding allocations + * + * \note This can be called after SDL_Quit() + */ +void SDLTest_LogAllocations(); + + +/* Ends C function definitions when using C++ */ +#ifdef __cplusplus +} +#endif +#include "close_code.h" + +#endif /* SDL_test_memory_h_ */ + +/* vi: set ts=4 sw=4 expandtab: */ diff --git a/libs/SDL2/i686-w64-mingw32/include/SDL2/SDL_test_random.h b/libs/SDL2/i686-w64-mingw32/include/SDL2/SDL_test_random.h index 91c36526c..2b01922c3 100644 --- a/libs/SDL2/i686-w64-mingw32/include/SDL2/SDL_test_random.h +++ b/libs/SDL2/i686-w64-mingw32/include/SDL2/SDL_test_random.h @@ -1,6 +1,6 @@ /* Simple DirectMedia Layer - Copyright (C) 1997-2016 Sam Lantinga + Copyright (C) 1997-2017 Sam Lantinga This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages @@ -37,8 +37,8 @@ */ -#ifndef _SDL_test_random_h -#define _SDL_test_random_h +#ifndef SDL_test_random_h_ +#define SDL_test_random_h_ #include "begin_code.h" /* Set up for C function definitions, even when using C++ */ @@ -110,6 +110,6 @@ extern "C" { #endif #include "close_code.h" -#endif /* _SDL_test_random_h */ +#endif /* SDL_test_random_h_ */ /* vi: set ts=4 sw=4 expandtab: */ diff --git a/libs/SDL2/i686-w64-mingw32/include/SDL2/SDL_thread.h b/libs/SDL2/i686-w64-mingw32/include/SDL2/SDL_thread.h index 377e6c73d..d0f6575cd 100644 --- a/libs/SDL2/i686-w64-mingw32/include/SDL2/SDL_thread.h +++ b/libs/SDL2/i686-w64-mingw32/include/SDL2/SDL_thread.h @@ -1,6 +1,6 @@ /* Simple DirectMedia Layer - Copyright (C) 1997-2016 Sam Lantinga + Copyright (C) 1997-2017 Sam Lantinga This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages @@ -19,8 +19,8 @@ 3. This notice may not be removed or altered from any source distribution. */ -#ifndef _SDL_thread_h -#define _SDL_thread_h +#ifndef SDL_thread_h_ +#define SDL_thread_h_ /** * \file SDL_thread.h @@ -74,15 +74,15 @@ typedef int (SDLCALL * SDL_ThreadFunction) (void *data); * * We compile SDL into a DLL. This means, that it's the DLL which * creates a new thread for the calling process with the SDL_CreateThread() - * API. There is a problem with this, that only the RTL of the SDL.DLL will + * API. There is a problem with this, that only the RTL of the SDL2.DLL will * be initialized for those threads, and not the RTL of the calling * application! * * To solve this, we make a little hack here. * * We'll always use the caller's _beginthread() and _endthread() APIs to - * start a new thread. This way, if it's the SDL.DLL which uses this API, - * then the RTL of SDL.DLL will be used to create the new thread, and if it's + * start a new thread. This way, if it's the SDL2.DLL which uses this API, + * then the RTL of SDL2.DLL will be used to create the new thread, and if it's * the application, then the RTL of the application will be used. * * So, in short: @@ -90,14 +90,11 @@ typedef int (SDLCALL * SDL_ThreadFunction) (void *data); * library! */ #define SDL_PASSED_BEGINTHREAD_ENDTHREAD -#include /* This has _beginthread() and _endthread() defined! */ +#include /* _beginthreadex() and _endthreadex() */ -typedef uintptr_t(__cdecl * pfnSDL_CurrentBeginThread) (void *, unsigned, - unsigned (__stdcall * - func) (void - *), - void *arg, unsigned, - unsigned *threadID); +typedef uintptr_t(__cdecl * pfnSDL_CurrentBeginThread) + (void *, unsigned, unsigned (__stdcall *func)(void *), + void * /*arg*/, unsigned, unsigned * /* threadID */); typedef void (__cdecl * pfnSDL_CurrentEndThread) (unsigned code); /** @@ -118,6 +115,30 @@ SDL_CreateThread(SDL_ThreadFunction fn, const char *name, void *data, #define SDL_CreateThread(fn, name, data) SDL_CreateThread(fn, name, data, (pfnSDL_CurrentBeginThread)_beginthreadex, (pfnSDL_CurrentEndThread)_endthreadex) #endif +#elif defined(__OS2__) +/* + * just like the windows case above: We compile SDL2 + * into a dll with Watcom's runtime statically linked. + */ +#define SDL_PASSED_BEGINTHREAD_ENDTHREAD +#ifndef __EMX__ +#include +#else +#include +#endif +typedef int (*pfnSDL_CurrentBeginThread)(void (*func)(void *), void *, unsigned, void * /*arg*/); +typedef void (*pfnSDL_CurrentEndThread)(void); +extern DECLSPEC SDL_Thread *SDLCALL +SDL_CreateThread(SDL_ThreadFunction fn, const char *name, void *data, + pfnSDL_CurrentBeginThread pfnBeginThread, + pfnSDL_CurrentEndThread pfnEndThread); +#if defined(SDL_CreateThread) && SDL_DYNAMIC_API +#undef SDL_CreateThread +#define SDL_CreateThread(fn, name, data) SDL_CreateThread_REAL(fn, name, data, (pfnSDL_CurrentBeginThread)_beginthread, (pfnSDL_CurrentEndThread)_endthread) +#else +#define SDL_CreateThread(fn, name, data) SDL_CreateThread(fn, name, data, (pfnSDL_CurrentBeginThread)_beginthread, (pfnSDL_CurrentEndThread)_endthread) +#endif + #else /** @@ -273,7 +294,7 @@ extern DECLSPEC void * SDLCALL SDL_TLSGet(SDL_TLSID id); * \sa SDL_TLSCreate() * \sa SDL_TLSGet() */ -extern DECLSPEC int SDLCALL SDL_TLSSet(SDL_TLSID id, const void *value, void (*destructor)(void*)); +extern DECLSPEC int SDLCALL SDL_TLSSet(SDL_TLSID id, const void *value, void (SDLCALL *destructor)(void*)); /* Ends C function definitions when using C++ */ @@ -282,6 +303,6 @@ extern DECLSPEC int SDLCALL SDL_TLSSet(SDL_TLSID id, const void *value, void (*d #endif #include "close_code.h" -#endif /* _SDL_thread_h */ +#endif /* SDL_thread_h_ */ /* vi: set ts=4 sw=4 expandtab: */ diff --git a/libs/SDL2/i686-w64-mingw32/include/SDL2/SDL_timer.h b/libs/SDL2/i686-w64-mingw32/include/SDL2/SDL_timer.h index e0d3785ee..282625d3f 100644 --- a/libs/SDL2/i686-w64-mingw32/include/SDL2/SDL_timer.h +++ b/libs/SDL2/i686-w64-mingw32/include/SDL2/SDL_timer.h @@ -1,6 +1,6 @@ /* Simple DirectMedia Layer - Copyright (C) 1997-2016 Sam Lantinga + Copyright (C) 1997-2017 Sam Lantinga This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages @@ -19,8 +19,8 @@ 3. This notice may not be removed or altered from any source distribution. */ -#ifndef _SDL_timer_h -#define _SDL_timer_h +#ifndef SDL_timer_h_ +#define SDL_timer_h_ /** * \file SDL_timer.h @@ -110,6 +110,6 @@ extern DECLSPEC SDL_bool SDLCALL SDL_RemoveTimer(SDL_TimerID id); #endif #include "close_code.h" -#endif /* _SDL_timer_h */ +#endif /* SDL_timer_h_ */ /* vi: set ts=4 sw=4 expandtab: */ diff --git a/libs/SDL2/i686-w64-mingw32/include/SDL2/SDL_touch.h b/libs/SDL2/i686-w64-mingw32/include/SDL2/SDL_touch.h index 2643e3679..db9e25ebd 100644 --- a/libs/SDL2/i686-w64-mingw32/include/SDL2/SDL_touch.h +++ b/libs/SDL2/i686-w64-mingw32/include/SDL2/SDL_touch.h @@ -1,6 +1,6 @@ /* Simple DirectMedia Layer - Copyright (C) 1997-2016 Sam Lantinga + Copyright (C) 1997-2017 Sam Lantinga This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages @@ -25,8 +25,8 @@ * Include file for SDL touch event handling. */ -#ifndef _SDL_touch_h -#define _SDL_touch_h +#ifndef SDL_touch_h_ +#define SDL_touch_h_ #include "SDL_stdinc.h" #include "SDL_error.h" @@ -81,6 +81,6 @@ extern DECLSPEC SDL_Finger * SDLCALL SDL_GetTouchFinger(SDL_TouchID touchID, int #endif #include "close_code.h" -#endif /* _SDL_touch_h */ +#endif /* SDL_touch_h_ */ /* vi: set ts=4 sw=4 expandtab: */ diff --git a/libs/SDL2/i686-w64-mingw32/include/SDL2/SDL_types.h b/libs/SDL2/i686-w64-mingw32/include/SDL2/SDL_types.h index 5118af219..06ee80cb3 100644 --- a/libs/SDL2/i686-w64-mingw32/include/SDL2/SDL_types.h +++ b/libs/SDL2/i686-w64-mingw32/include/SDL2/SDL_types.h @@ -1,6 +1,6 @@ /* Simple DirectMedia Layer - Copyright (C) 1997-2016 Sam Lantinga + Copyright (C) 1997-2017 Sam Lantinga This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages diff --git a/libs/SDL2/i686-w64-mingw32/include/SDL2/SDL_version.h b/libs/SDL2/i686-w64-mingw32/include/SDL2/SDL_version.h index de1f16056..5b4c40248 100644 --- a/libs/SDL2/i686-w64-mingw32/include/SDL2/SDL_version.h +++ b/libs/SDL2/i686-w64-mingw32/include/SDL2/SDL_version.h @@ -1,6 +1,6 @@ /* Simple DirectMedia Layer - Copyright (C) 1997-2016 Sam Lantinga + Copyright (C) 1997-2017 Sam Lantinga This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages @@ -25,8 +25,8 @@ * This header defines the current SDL version. */ -#ifndef _SDL_version_h -#define _SDL_version_h +#ifndef SDL_version_h_ +#define SDL_version_h_ #include "SDL_stdinc.h" @@ -59,7 +59,7 @@ typedef struct SDL_version */ #define SDL_MAJOR_VERSION 2 #define SDL_MINOR_VERSION 0 -#define SDL_PATCHLEVEL 4 +#define SDL_PATCHLEVEL 7 /** * \brief Macro to determine SDL version program was compiled against. @@ -157,6 +157,6 @@ extern DECLSPEC int SDLCALL SDL_GetRevisionNumber(void); #endif #include "close_code.h" -#endif /* _SDL_version_h */ +#endif /* SDL_version_h_ */ /* vi: set ts=4 sw=4 expandtab: */ diff --git a/libs/SDL2/i686-w64-mingw32/include/SDL2/SDL_video.h b/libs/SDL2/i686-w64-mingw32/include/SDL2/SDL_video.h index 52dbbc765..6f6cda8b1 100644 --- a/libs/SDL2/i686-w64-mingw32/include/SDL2/SDL_video.h +++ b/libs/SDL2/i686-w64-mingw32/include/SDL2/SDL_video.h @@ -1,6 +1,6 @@ /* Simple DirectMedia Layer - Copyright (C) 1997-2016 Sam Lantinga + Copyright (C) 1997-2017 Sam Lantinga This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages @@ -25,8 +25,8 @@ * Header file for SDL video functions. */ -#ifndef _SDL_video_h -#define _SDL_video_h +#ifndef SDL_video_h_ +#define SDL_video_h_ #include "SDL_stdinc.h" #include "SDL_pixels.h" @@ -83,6 +83,7 @@ typedef struct * \sa SDL_SetWindowPosition() * \sa SDL_SetWindowSize() * \sa SDL_SetWindowBordered() + * \sa SDL_SetWindowResizable() * \sa SDL_SetWindowTitle() * \sa SDL_ShowWindow() */ @@ -95,6 +96,7 @@ typedef struct SDL_Window SDL_Window; */ typedef enum { + /* !!! FIXME: change this to name = (1<0. * \param h The height of the window, in screen coordinates. Must be >0. * - * \note You can't change the size of a fullscreen window, it automatically - * matches the size of the display mode. + * \note Fullscreen windows automatically match the size of the display mode, + * and you should use SDL_SetWindowDisplayMode() to change their size. * * The window size in screen coordinates may differ from the size in pixels, if * the window was created with SDL_WINDOW_ALLOW_HIGHDPI on a platform with @@ -563,6 +613,7 @@ extern DECLSPEC void SDLCALL SDL_GetWindowPosition(SDL_Window * window, * SDL_GetRendererOutputSize() to get the real client area size in pixels. * * \sa SDL_GetWindowSize() + * \sa SDL_SetWindowDisplayMode() */ extern DECLSPEC void SDLCALL SDL_SetWindowSize(SDL_Window * window, int w, int h); @@ -586,6 +637,25 @@ extern DECLSPEC void SDLCALL SDL_SetWindowSize(SDL_Window * window, int w, extern DECLSPEC void SDLCALL SDL_GetWindowSize(SDL_Window * window, int *w, int *h); +/** + * \brief Get the size of a window's borders (decorations) around the client area. + * + * \param window The window to query. + * \param top Pointer to variable for storing the size of the top border. NULL is permitted. + * \param left Pointer to variable for storing the size of the left border. NULL is permitted. + * \param bottom Pointer to variable for storing the size of the bottom border. NULL is permitted. + * \param right Pointer to variable for storing the size of the right border. NULL is permitted. + * + * \return 0 on success, or -1 if getting this information is not supported. + * + * \note if this function fails (returns -1), the size values will be + * initialized to 0, 0, 0, 0 (if a non-NULL pointer is provided), as + * if the window in question was borderless. + */ +extern DECLSPEC int SDLCALL SDL_GetWindowBordersSize(SDL_Window * window, + int *top, int *left, + int *bottom, int *right); + /** * \brief Set the minimum size of a window's client area. * @@ -661,6 +731,23 @@ extern DECLSPEC void SDLCALL SDL_GetWindowMaximumSize(SDL_Window * window, extern DECLSPEC void SDLCALL SDL_SetWindowBordered(SDL_Window * window, SDL_bool bordered); +/** + * \brief Set the user-resizable state of a window. + * + * This will add or remove the window's SDL_WINDOW_RESIZABLE flag and + * allow/disallow user resizing of the window. This is a no-op if the + * window's resizable state already matches the requested state. + * + * \param window The window of which to change the resizable state. + * \param resizable SDL_TRUE to allow resizing, SDL_FALSE to disallow. + * + * \note You can't change the resizable state of a fullscreen window. + * + * \sa SDL_GetWindowFlags() + */ +extern DECLSPEC void SDLCALL SDL_SetWindowResizable(SDL_Window * window, + SDL_bool resizable); + /** * \brief Show a window. * @@ -744,7 +831,7 @@ extern DECLSPEC int SDLCALL SDL_UpdateWindowSurface(SDL_Window * window); * \return 0 on success, or -1 on error. * * \sa SDL_GetWindowSurface() - * \sa SDL_UpdateWindowSurfaceRect() + * \sa SDL_UpdateWindowSurface() */ extern DECLSPEC int SDLCALL SDL_UpdateWindowSurfaceRects(SDL_Window * window, const SDL_Rect * rects, @@ -801,6 +888,58 @@ extern DECLSPEC int SDLCALL SDL_SetWindowBrightness(SDL_Window * window, float b */ extern DECLSPEC float SDLCALL SDL_GetWindowBrightness(SDL_Window * window); +/** + * \brief Set the opacity for a window + * + * \param window The window which will be made transparent or opaque + * \param opacity Opacity (0.0f - transparent, 1.0f - opaque) This will be + * clamped internally between 0.0f and 1.0f. + * + * \return 0 on success, or -1 if setting the opacity isn't supported. + * + * \sa SDL_GetWindowOpacity() + */ +extern DECLSPEC int SDLCALL SDL_SetWindowOpacity(SDL_Window * window, float opacity); + +/** + * \brief Get the opacity of a window. + * + * If transparency isn't supported on this platform, opacity will be reported + * as 1.0f without error. + * + * \param window The window in question. + * \param out_opacity Opacity (0.0f - transparent, 1.0f - opaque) + * + * \return 0 on success, or -1 on error (invalid window, etc). + * + * \sa SDL_SetWindowOpacity() + */ +extern DECLSPEC int SDLCALL SDL_GetWindowOpacity(SDL_Window * window, float * out_opacity); + +/** + * \brief Sets the window as a modal for another window (TODO: reconsider this function and/or its name) + * + * \param modal_window The window that should be modal + * \param parent_window The parent window + * + * \return 0 on success, or -1 otherwise. + */ +extern DECLSPEC int SDLCALL SDL_SetWindowModalFor(SDL_Window * modal_window, SDL_Window * parent_window); + +/** + * \brief Explicitly sets input focus to the window. + * + * You almost certainly want SDL_RaiseWindow() instead of this function. Use + * this with caution, as you might give focus to a window that's completely + * obscured by other windows. + * + * \param window The window that should get the input focus + * + * \return 0 on success, or -1 otherwise. + * \sa SDL_RaiseWindow() + */ +extern DECLSPEC int SDLCALL SDL_SetWindowInputFocus(SDL_Window * window); + /** * \brief Set the gamma ramp for a window. * @@ -920,7 +1059,7 @@ extern DECLSPEC void SDLCALL SDL_DestroyWindow(SDL_Window * window); /** - * \brief Returns whether the screensaver is currently enabled (default on). + * \brief Returns whether the screensaver is currently enabled (default off). * * \sa SDL_EnableScreenSaver() * \sa SDL_DisableScreenSaver() @@ -995,11 +1134,16 @@ extern DECLSPEC void SDLCALL SDL_GL_ResetAttributes(void); /** * \brief Set an OpenGL window attribute before window creation. + * + * \return 0 on success, or -1 if the attribute could not be set. */ extern DECLSPEC int SDLCALL SDL_GL_SetAttribute(SDL_GLattr attr, int value); /** * \brief Get the actual value for an attribute from the current context. + * + * \return 0 on success, or -1 if the attribute could not be retrieved. + * The integer at \c value will be modified in either case. */ extern DECLSPEC int SDLCALL SDL_GL_GetAttribute(SDL_GLattr attr, int *value); @@ -1098,6 +1242,6 @@ extern DECLSPEC void SDLCALL SDL_GL_DeleteContext(SDL_GLContext context); #endif #include "close_code.h" -#endif /* _SDL_video_h */ +#endif /* SDL_video_h_ */ /* vi: set ts=4 sw=4 expandtab: */ diff --git a/libs/SDL2/i686-w64-mingw32/include/SDL2/SDL_vulkan.h b/libs/SDL2/i686-w64-mingw32/include/SDL2/SDL_vulkan.h new file mode 100644 index 000000000..803b5feef --- /dev/null +++ b/libs/SDL2/i686-w64-mingw32/include/SDL2/SDL_vulkan.h @@ -0,0 +1,257 @@ +/* + Simple DirectMedia Layer + Copyright (C) 2017, Mark Callow + + This software is provided 'as-is', without any express or implied + warranty. In no event will the authors be held liable for any damages + arising from the use of this software. + + Permission is granted to anyone to use this software for any purpose, + including commercial applications, and to alter it and redistribute it + freely, subject to the following restrictions: + + 1. The origin of this software must not be misrepresented; you must not + claim that you wrote the original software. If you use this software + in a product, an acknowledgment in the product documentation would be + appreciated but is not required. + 2. Altered source versions must be plainly marked as such, and must not be + misrepresented as being the original software. + 3. This notice may not be removed or altered from any source distribution. +*/ + +/** + * \file SDL_vulkan.h + * + * Header file for functions to creating Vulkan surfaces on SDL windows. + */ + +#ifndef SDL_vulkan_h_ +#define SDL_vulkan_h_ + +#include "SDL_video.h" + +#include "begin_code.h" +/* Set up for C function definitions, even when using C++ */ +#ifdef __cplusplus +extern "C" { +#endif + +/* Avoid including vulkan.h, don't define VkInstance if it's already included */ +#ifdef VULKAN_H_ +#define NO_SDL_VULKAN_TYPEDEFS +#endif +#ifndef NO_SDL_VULKAN_TYPEDEFS +#define VK_DEFINE_HANDLE(object) typedef struct object##_T* object; + +#if defined(__LP64__) || defined(_WIN64) || defined(__x86_64__) || defined(_M_X64) || defined(__ia64) || defined (_M_IA64) || defined(__aarch64__) || defined(__powerpc64__) +#define VK_DEFINE_NON_DISPATCHABLE_HANDLE(object) typedef struct object##_T *object; +#else +#define VK_DEFINE_NON_DISPATCHABLE_HANDLE(object) typedef uint64_t object; +#endif + +VK_DEFINE_HANDLE(VkInstance) +VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkSurfaceKHR) + +#endif /* !NO_SDL_VULKAN_TYPEDEFS */ + +typedef VkInstance SDL_vulkanInstance; +typedef VkSurfaceKHR SDL_vulkanSurface; /* for compatibility with Tizen */ + +/** + * \name Vulkan support functions + * + * \note SDL_Vulkan_GetInstanceExtensions & SDL_Vulkan_CreateSurface API + * is compatable with Tizen's implementation of Vulkan in SDL. + */ +/* @{ */ + +/** + * \brief Dynamically load a Vulkan loader library. + * + * \param [in] path The platform dependent Vulkan loader library name, or + * \c NULL to open the default Vulkan loader library. + * + * \return \c 0 on success, or \c -1 if the library couldn't be loaded. + * + * This should be done after initializing the video driver, but before + * creating any Vulkan windows. If no Vulkan loader library is loaded, the + * default library will be loaded upon creation of the first Vulkan window. + * + * \note If you specify a non-NULL \a path, you should retrieve all of the + * Vulkan functions used in your program from the dynamic library using + * \c SDL_Vulkan_GetVkGetInstanceProcAddr() unless you can guarantee + * \a path points to the same vulkan loader library that you linked to. + * + * \note On Apple devices, if \a path is NULL, SDL will attempt to find + * the vkGetInstanceProcAddr address within all the mach-o images of + * the current process. This is because the currently (v0.17.0) + * recommended MoltenVK (Vulkan on Metal) usage is as a static library. + * If it is not found then SDL will attempt to load \c libMoltenVK.dylib. + * Applications using the dylib alternative therefore do not need to do + * anything special when calling SDL. + * + * \note On non-Apple devices, SDL requires you to either not link to the + * Vulkan loader or link to a dynamic library version. This limitation + * may be removed in a future version of SDL. + * + * \note This function will fail if there are no working Vulkan drivers + * installed. + * + * \sa SDL_Vulkan_GetVkGetInstanceProcAddr() + * \sa SDL_Vulkan_UnloadLibrary() + */ +extern DECLSPEC int SDLCALL SDL_Vulkan_LoadLibrary(const char *path); + +/** + * \brief Get the address of the \c vkGetInstanceProcAddr function. + * + * \note This should be called after either calling SDL_Vulkan_LoadLibrary + * or creating an SDL_Window with the SDL_WINDOW_VULKAN flag. + */ +extern DECLSPEC void *SDLCALL SDL_Vulkan_GetVkGetInstanceProcAddr(void); + +/** + * \brief Unload the Vulkan loader library previously loaded by + * \c SDL_Vulkan_LoadLibrary(). + * + * \sa SDL_Vulkan_LoadLibrary() + */ +extern DECLSPEC void SDLCALL SDL_Vulkan_UnloadLibrary(void); + +/** + * \brief Get the names of the Vulkan instance extensions needed to create + * a surface with \c SDL_Vulkan_CreateSurface(). + * + * \param [in] window Window for which the required Vulkan instance + * extensions should be retrieved + * \param [in,out] count pointer to an \c unsigned related to the number of + * required Vulkan instance extensions + * \param [out] names \c NULL or a pointer to an array to be filled with the + * required Vulkan instance extensions + * + * \return \c SDL_TRUE on success, \c SDL_FALSE on error. + * + * If \a pNames is \c NULL, then the number of required Vulkan instance + * extensions is returned in pCount. Otherwise, \a pCount must point to a + * variable set to the number of elements in the \a pNames array, and on + * return the variable is overwritten with the number of names actually + * written to \a pNames. If \a pCount is less than the number of required + * extensions, at most \a pCount structures will be written. If \a pCount + * is smaller than the number of required extensions, \c SDL_FALSE will be + * returned instead of \c SDL_TRUE, to indicate that not all the required + * extensions were returned. + * + * \note The returned list of extensions will contain \c VK_KHR_surface + * and zero or more platform specific extensions + * + * \note The extension names queried here must be enabled when calling + * VkCreateInstance, otherwise surface creation will fail. + * + * \note \c window should have been created with the \c SDL_WINDOW_VULKAN flag. + * + * \code + * unsigned int count; + * // get count of required extensions + * if(!SDL_Vulkan_GetInstanceExtensions(window, &count, NULL)) + * handle_error(); + * + * static const char *const additionalExtensions[] = + * { + * VK_EXT_DEBUG_REPORT_EXTENSION_NAME, // example additional extension + * }; + * size_t additionalExtensionsCount = sizeof(additionalExtensions) / sizeof(additionalExtensions[0]); + * size_t extensionCount = count + additionalExtensionsCount; + * const char **names = malloc(sizeof(const char *) * extensionCount); + * if(!names) + * handle_error(); + * + * // get names of required extensions + * if(!SDL_Vulkan_GetInstanceExtensions(window, &count, names)) + * handle_error(); + * + * // copy additional extensions after required extensions + * for(size_t i = 0; i < additionalExtensionsCount; i++) + * names[i + count] = additionalExtensions[i]; + * + * VkInstanceCreateInfo instanceCreateInfo = {}; + * instanceCreateInfo.enabledExtensionCount = extensionCount; + * instanceCreateInfo.ppEnabledExtensionNames = names; + * // fill in rest of instanceCreateInfo + * + * VkInstance instance; + * // create the Vulkan instance + * VkResult result = vkCreateInstance(&instanceCreateInfo, NULL, &instance); + * free(names); + * \endcode + * + * \sa SDL_Vulkan_CreateSurface() + */ +extern DECLSPEC SDL_bool SDLCALL SDL_Vulkan_GetInstanceExtensions( + SDL_Window *window, + unsigned int *pCount, + const char **pNames); + +/** + * \brief Create a Vulkan rendering surface for a window. + * + * \param [in] window SDL_Window to which to attach the rendering surface. + * \param [in] instance handle to the Vulkan instance to use. + * \param [out] surface pointer to a VkSurfaceKHR handle to receive the + * handle of the newly created surface. + * + * \return \c SDL_TRUE on success, \c SDL_FALSE on error. + * + * \code + * VkInstance instance; + * SDL_Window *window; + * + * // create instance and window + * + * // create the Vulkan surface + * VkSurfaceKHR surface; + * if(!SDL_Vulkan_CreateSurface(window, instance, &surface)) + * handle_error(); + * \endcode + * + * \note \a window should have been created with the \c SDL_WINDOW_VULKAN flag. + * + * \note \a instance should have been created with the extensions returned + * by \c SDL_Vulkan_CreateSurface() enabled. + * + * \sa SDL_Vulkan_GetInstanceExtensions() + */ +extern DECLSPEC SDL_bool SDLCALL SDL_Vulkan_CreateSurface( + SDL_Window *window, + VkInstance instance, + VkSurfaceKHR* surface); + +/** + * \brief Get the size of a window's underlying drawable in pixels (for use + * with setting viewport, scissor & etc). + * + * \param window SDL_Window from which the drawable size should be queried + * \param w Pointer to variable for storing the width in pixels, + * may be NULL + * \param h Pointer to variable for storing the height in pixels, + * may be NULL + * + * This may differ from SDL_GetWindowSize() if we're rendering to a high-DPI + * drawable, i.e. the window was created with SDL_WINDOW_ALLOW_HIGHDPI on a + * platform with high-DPI support (Apple calls this "Retina"), and not disabled + * by the \c SDL_HINT_VIDEO_HIGHDPI_DISABLED hint. + * + * \sa SDL_GetWindowSize() + * \sa SDL_CreateWindow() + */ +extern DECLSPEC void SDLCALL SDL_Vulkan_GetDrawableSize(SDL_Window * window, + int *w, int *h); + +/* @} *//* Vulkan support functions */ + +/* Ends C function definitions when using C++ */ +#ifdef __cplusplus +} +#endif +#include "close_code.h" + +#endif /* SDL_vulkan_h_ */ diff --git a/libs/SDL2/i686-w64-mingw32/include/SDL2/begin_code.h b/libs/SDL2/i686-w64-mingw32/include/SDL2/begin_code.h index 04e78c64d..5372d6f04 100644 --- a/libs/SDL2/i686-w64-mingw32/include/SDL2/begin_code.h +++ b/libs/SDL2/i686-w64-mingw32/include/SDL2/begin_code.h @@ -1,6 +1,6 @@ /* Simple DirectMedia Layer - Copyright (C) 1997-2016 Sam Lantinga + Copyright (C) 1997-2017 Sam Lantinga This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages @@ -61,6 +61,12 @@ # else # define DECLSPEC __declspec(dllexport) # endif +# elif defined(__OS2__) +# ifdef BUILD_SDL +# define DECLSPEC __declspec(dllexport) +# else +# define DECLSPEC +# endif # else # if defined(__GNUC__) && __GNUC__ >= 4 # define DECLSPEC __attribute__ ((visibility("default"))) @@ -74,6 +80,11 @@ #ifndef SDLCALL #if (defined(__WIN32__) || defined(__WINRT__)) && !defined(__GNUC__) #define SDLCALL __cdecl +#elif defined(__OS2__) || defined(__EMX__) +#define SDLCALL _System +# if defined (__GNUC__) && !defined(_System) +# define _System /* for old EMX/GCC compat. */ +# endif #else #define SDLCALL #endif @@ -111,7 +122,7 @@ #elif defined(_MSC_VER) || defined(__BORLANDC__) || \ defined(__DMC__) || defined(__SC__) || \ defined(__WATCOMC__) || defined(__LCC__) || \ - defined(__DECC) + defined(__DECC) || defined(__CC_ARM) #define SDL_INLINE __inline #ifndef __inline__ #define __inline__ __inline @@ -134,6 +145,16 @@ #endif #endif /* SDL_FORCE_INLINE not defined */ +#ifndef SDL_NORETURN +#if defined(__GNUC__) +#define SDL_NORETURN __attribute__((noreturn)) +#elif defined(_MSC_VER) +#define SDL_NORETURN __declspec(noreturn) +#else +#define SDL_NORETURN +#endif +#endif /* SDL_NORETURN not defined */ + /* Apparently this is needed by several Windows compilers */ #if !defined(__MACH__) #ifndef NULL diff --git a/libs/SDL2/i686-w64-mingw32/include/SDL2/close_code.h b/libs/SDL2/i686-w64-mingw32/include/SDL2/close_code.h index d908b00eb..2a352dbb9 100644 --- a/libs/SDL2/i686-w64-mingw32/include/SDL2/close_code.h +++ b/libs/SDL2/i686-w64-mingw32/include/SDL2/close_code.h @@ -1,6 +1,6 @@ /* Simple DirectMedia Layer - Copyright (C) 1997-2016 Sam Lantinga + Copyright (C) 1997-2017 Sam Lantinga This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages @@ -29,7 +29,7 @@ #undef _begin_code_h /* Reset structure packing at previous byte alignment */ -#if defined(_MSC_VER) || defined(__MWERKS__) || defined(__WATCOMC__) || defined(__BORLANDC__) +#if defined(_MSC_VER) || defined(__MWERKS__) || defined(__BORLANDC__) #ifdef __BORLANDC__ #pragma nopackwarning #endif diff --git a/libs/SDL2/i686-w64-mingw32/lib/cmake/SDL2/sdl2-config.cmake b/libs/SDL2/i686-w64-mingw32/lib/cmake/SDL2/sdl2-config.cmake index 97e4b0d15..208b7c637 100644 --- a/libs/SDL2/i686-w64-mingw32/lib/cmake/SDL2/sdl2-config.cmake +++ b/libs/SDL2/i686-w64-mingw32/lib/cmake/SDL2/sdl2-config.cmake @@ -1,10 +1,11 @@ # sdl2 cmake project-config input for ./configure scripts -set(prefix "/usr/local/cross-tools/i686-w64-mingw32") +set(prefix "/usr/local/i686-w64-mingw32") set(exec_prefix "${prefix}") set(libdir "${exec_prefix}/lib") -set(SDL2_PREFIX "/usr/local/cross-tools/i686-w64-mingw32") -set(SDL2_EXEC_PREFIX "/usr/local/cross-tools/i686-w64-mingw32") +set(SDL2_PREFIX "/usr/local/i686-w64-mingw32") +set(SDL2_EXEC_PREFIX "/usr/local/i686-w64-mingw32") set(SDL2_LIBDIR "${exec_prefix}/lib") set(SDL2_INCLUDE_DIRS "${prefix}/include/SDL2") set(SDL2_LIBRARIES "-L${SDL2_LIBDIR} -lmingw32 -lSDL2main -lSDL2 -mwindows") +string(STRIP "${SDL2_LIBRARIES}" SDL2_LIBRARIES) diff --git a/libs/SDL2/i686-w64-mingw32/lib/libSDL2.a b/libs/SDL2/i686-w64-mingw32/lib/libSDL2.a index 5e6f56c541c71645bb48b6c7b47ce042d1b97c2b..771ee00bdb5b07b4e3d44b3b281f439f784abd23 100644 GIT binary patch literal 5811450 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

fY+xNpP0$f1dBVPgmEew@#fpb!xeF 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%0DsOqJcxQtSn6JyxQ!@BIj?#QwnA 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 z%0D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%0AgwxbBC z*pa;2*6gC@-Xk>97gqQ}IU7Va9Wvg)t+6tWoy$P-9_!DR^l#uy_YY!z;-pVRu8}uB zP8NF-6TUEl0Zh;nlO^s$;5X2gq)DC>X{f zUc1w0f=~~tPw=2mUzok1z;Q-b4y~=K(hgp1`p93A@#xBes?tTr2|j?p$!Q1MymQK7 z5eP!B0I+2*f<@MCAeiigQc&xZR$CH|h0=ZU3QMvN%mv9|=?O^rkdgf>#;gDh=aS7Hh~n8uo2L|_ zjqU~&dkVlVfaw6)PXXKuFy>_d%+IsmL41gk?*aO^fTVRMCB@mD5pM($dIv^(;owR- zfd=E;_j_=hJN?BvCZ|EH*AKZnq2{P~ik~@NoN2_#5FbDV9=788sjNMAg-|!h*bLuW z8Of<2Ig+(Qsi2u4r)d)0#8GQ@snBguVWSKd6z->>@kC>MEFg)D7z_P0mjQDAzI`Yb_#18Di|_Y3ip)5swEGk_xi<5+8ZQ1UxiYsqf7%C3ezQ)N2d<$05<^)qe}K*96iOOG#=&Q=m#7P z=#BB^BINz;B(M{~W}E@z>_USeDWLJRh%Q8_=|W=whEZ&~&rBTkDZ|l0m%>3&EYF51DgoWuh!XxxFLKtl7%`)1~bLXRAX1EU_eHd`uF9b7* zuKWY)b5RrSk(Z-9sbmsX^csLXt7W{o6^!*J^qD^rJciWln>`j zH|N7QaQF&VUUtO!5O=2US{s026dSkt;;7FZIC>+>rIA*98nr2x^MNSRmBf>~0#9@K zMEC>DB+vyNcZD0e5I%GmjC&PW&9j2+o?tEqlk*u=JK=T@!fyc20+2y=r5$9`IUR{U z1BP?)H4`JmEM~I#I_AN(*BfEcEW5r0kbV^uq83djbG0pchJ~lfvUH948>iC#3iiup zb@^TxKw*)?VdT)uOsQWsYui7-zB8PQxci}FrURSL!bmlQYq)sAWL9pwqA=;ra8CaJ zI3crT-wj;B`{Hs56XM2vWFc-i=0$-5R#zjX3NMM6#reXCzP($_bCUwt`;POz%^PN* zUsf%4+*>?CI9`BNnNnen!ZzlRqbujnsF__+wZL(2GixQ6Ak)#aD)8{KV*Y$=8;{jP zWA?A)v0<;{-fosgzT+`|R;APu7q;~YycdH9st41?J!F&#t{5CNZuw+^~qR|Q*kHsq0iSSzr^qZ z;XhZ8uC_*GGT`=iLX#olgQvTrMX?^A;yR)E5Odl8DYYp43g6;;HkmAo@=L>9`mI={_1_|x`T?{C`WoiG`U?;&_;{a;^`wBO z;M&4knroF8!}s$*QhBv1m$@j@h5f-~urr+9p#XZa4)OC$ zoWSf2I1k3LBTRv44@N)tteA_qEa93}ic8T~hLJWa6o1E2)C$GtAj}HI@UtOlok?@D zLU9v_P!(+U0@)LpndNP8SApXgF_N52xLA{Rg<^{@o_D-hRw(X;m@5>QTXDn+#ZJgr zW1Fq48rdBM$rXx6g-pPj1hTU$6zHEJUUpfh@A%11T%aiMHRx`{0>vWKe4``M=vw;* ziydM+ns@$uVqOvY502BQisOYb_VWiK+yN^r!F)W$7nYXdeM`q3Y+kKf0gX_5Ttq%z z0ad8LZEc5O2Pbq6WIQ9si_GD=QBKGwbFzF88U?^1=u)dz3%g4}Ca=V%-PoHfc zV2w8~1mLWbN}OmEZ$cHxI|#+5w#`EEpOHG9sf%N7!2>z7Q2Zto^Q^!u6gNwT*1w^u zJ*3|B5V<=t-NP9cjJ1t4`GiKAVj8I%%!E!mOB(4gvNMfjDl;j-Mrs2Y8|izIIb5I1 z;Z>hxP9GnH1_Q8>I-tNX;h-U$&^(ZAq|ug?x1>&NB-l(}1?9*_`jtBOD|>;d!wpCm zVs&l4+f+8Y=zUzSV@YaB+-#{v4D*UW{34Ui0hTZQ-mk zUw(;HRwaK!#&39}y3{z(t#VxHg32&^nPIzk!(-9WrHe4)O29SQ>hQ zdr!=y1`n9kUrUp{UIGEY^Vcd9MUVSjN~Mc9MbEBOptD*LpomL+5`<=ceYUj zE92;c=?{S8Fi!^~262c`JM1xgpisct*%k9RYslmV8(+9O+!l7{smy=BFNcRZzr?}0#0EHDd4Fh)rKid z`W1efNPW}>Se|W{*#x}6rGVrKx6zV|@H%5A$UKk_SkfOA%_K>lhHZcftJdU<^Ug_s z9u+WVrLCc70^nf(3$RsSW6{T??hZi$glo`rL0C|6(ocmw>WNMeXP@Zs-83NT$ed&V z49%GCIu5=^Kgn6(xKEm%ycIU5zzKJAvw70PpEmq09Z}OOQPW#tOYWdvG~bLMpY;DC zk={X}zsOzM(_rIi>Yp+1B9XaEdmLu+tiar*{R>R`KcULIG*&)p7!WZG1yLrcaWMkeS`_wpqY~+=SPyH)WjJ&vZ#N;}T zFOPLW;!UV#_ehNY;#kQLzBq=Y!^oTW#$r3+1mc5DYV$YB@ZQ*H1M*w&^E|9eP0M0tZbH-Rc&7!d(oHw;RJaKk~`@i`10tqyfW}_ zIB(gHLIo=#sFe3%WC-urQ6$p?7ShGvK=?%Nyp{s z*hqIBgWsm{uc`xMdF?!k)Q51gx|^S=u-$Z^ahu)LyrMJMD82x1dYhLRGR<+v&Nw#R zI4idQV8_YFaZVGIoo7nU=>X;pzBGU$csF*Tc*uEL&R~${Exj=SY>0)F;&g;Cv;f@Y zNU`2e;r2pF@uVH&{tAfhhGI0r0#Gpo)w~JS=M}gz4rL}Nat95cFf_oKuIWqw`)`sT#V6d-c zhK~x6rnKt-nBN>0umxzY52V^du}cMXWJxiRDKzN1=bO%jBnC zjLu|w&lb~LI2b)c$(C4t2;!d~TTMs18^o~v$X4Dcx;>VUM_(uTA<1{>&mBgyV;3A3 z@%T=2KJpg}yW#mHzAutbM5a~oL8s&X#fbZGAU%kJ^yVeaeazT+3~6#EpfjJb8iocO z?1(E2!1q)$&x9X{{RYSHLCwk825C0*a(W^`Edc%+uZyUqt^=|BT4yWL{DcJV<{z~- z4rpzdr^N?i`H75Q8~--`o!S)z$J-2kZM!d?jJpjwLo30JfzZi+1(H9*`N41b;CytslMI6Bx&<=$`uR6E`M;z255jmMqZPzR?>~6xVx+yKNvR>*=_6K#@RmjbvLqV@G);0-VBiMpxVaqDwm9;XP9kT=VT;pgzbedcOJaZX0}(PtAHBojtt6f273 zDE1<&BK;*~!gn@tEpeb}E-CUwNJgU-74|o3R4F%E6?C;8C*W!+9+#`fW>hIR9}fB+ z&ods!c2|$*tH<}k<74V^wedI=invEdCMWfH)`^#qq5SDLzZ0#Ca~HxhdG~mo@l0NR zyu#pab1;5{SKRp>5w@&YI`j3WS&rgpNIL#QH^?4>xD*a%j|SKckaHRo z*%9*30Wck*7l64aPXgezFsHpL9}uQ@yxR{%Som;$`J1b1AOQOgaE`*<9ua(|+q z)z*jQJ_xPzL0hD>euQoVITNEnf1ix??5z_9-_RZ=fpn%yc_rov5bI4B#2d%ZL0|88 zs@LcZX3qb77eY-@!|b3BX@ce`6%G3@UuQTuXF`Y7nV#+|(`o&3FRa+ukYQd{DyqR7 zQGTy(-{dGV$b_W^Q+@bu+v#QA8WYLgsIw{N9Vq`(=gv*mKm|9f95%W&X@$wpVd#Xm zzyu$D&V-cyns-iK@<~IW135{&0iXf1E*a}2GruI>Y20AR&iKae#Bau{otDYFp%Uw{ zKPRsT?9cNx`mDp6)_I)$$9f@T20PpbL0&hWc`%tgu43dXi)t$?@uSA2CE=ce#Ix8< zVm)XYrQ%$E(Chaz$1M?QTVI;Jpn6tSc_lv5SB+B9XiW`zhiwwD6LCqz7SPCK1wWOO z57dkjerg$?$Q`G&Qj}mws%Pgizs};EDGO#)PSXdXVgKbV!+YHKpc?CKh(R^o0cdLX z8=L&plP0&X0RG4AggH7Yfd)Q6x)PRT0gEzAI!#Qud6kU|HSzKQ{z{&MycS9JCgbr7(XUR(da1F6tyHJwR?At) zl?!YKGfj+|heJ;D<($`X30Dl-dY^?~o(=b&k4*33w^k8VWmIR>RFwM_{;SqkE7F!tj8e2@i;(PVduV^#k zEJCj-skQz7MblTgC@4-DrweMU%git?1{1C|p9^s%I$${*S6gJ@DTF685a0tI)M-WjHA&NwJ^G!KQ?vGhjpUM&M67zGUwx}qzJoy zESw`g#2-#x30>BSb* zHl1REbw_3G?nRJ}ztR^sZZQd~!^@K+QFHpU`YMRQ$16*55dk!yW zQB3*aniaB3m<@%Jx}3cVW=z2i(*N)@p7*Y%4*Wt5!Oz^6&hSU=(>9v@5x4{|4%j&@6V-R$LmHd2gLu2%DjvIRpqFA z_xS%X4R4DZPZNEk9se170jJHPZ5m@(>HHJA@7@4s&k@~sK3fEujhq>GdD6kcXNBXQ z=5`4t#(TlDf~UDH;}Tk7LfYAhj~@gIZycTBc)|Yh17dS=10QoLc!F4;H3!%^DLx)5 z@h&7yxZ*a)K8PLZ6Z9#XoCgZR@Q&RpB*-V2c%*1m=kt2{&!%Bn0H552+~5Q z6!^~~v!uzUYCFej?cq6#FOLn&yZUnD**Q31Wtf9*AxUWty7S$i9$-{_Za6Q=={!HN zY2KdUoJ5)u@6y%O6nAhN=^J4m(!$EQiR@09t*;+qO4cjvPyk)5ch~_Q_KA1Lx1!b1 z`qeIaWG~aY=l^cC>jYZY4{41nrxoBKYS`bXEc*Ht0JmwgpI>VKuz$oM?4i3dG4ssu zeeo3shD#rS;-CntI2>N%2E(Tm1qRD@bHpmDX?bq#Ca@8NNV4kk>T2pGBYZo?%~U5zb4Qf z=)oA{3V1y1w&yxs9viMOJf9BN5uVl929ORhF0#~k;2m*jI_?CP9UqfKlmh2fal~OP zUU7~%G^r*>_phh|O^GN0Je?|S!nV9nAYN=>rfreWw1`rnw9{=JiSIMac!2z8MrIe4 z*{n#3q$-J|auYL54=+{HoU}sDRuX5bP;*io|HOeF&-F4C!6}bqX%aIHO=}ccym_i+ z%sI|{)$s|K!gz+@It7d-8#sZ{EQA;bo6s~6%@zTp4^=>9KJaxW0GU5J*AW5sDE&+z z{x^Sp@c#$|NEu0PMYL~BIYrd}K@?1c!N+xqK$yP-9P;x~BxlqdS3L2M=u`v<7@dva z;jPpL0$vwI>qIk!G!ujZGGSyb7B&zuwd)jGBN2||AlZ21$i%A=U5C)bsdbwD^2?bG zJb2v5#xpu<;Kbwe4mfEIwhRHMzJ&P=Kp@YUUZXTN86R|srSX>H{zXEm7Waa=OcFBs z#lVRs@@yrzK-mbcGm+776%bu40-MEEFt9=FF+!ap*?3yW5g1ORZXJW-PbN)~iHu@F zUqnLuxb=Jw6rV!yocgH^1Wf5V6Bx0OhL2Phc@fLz zMVnfQLvCc^I%65_6e*)LEYrZ|V~Cza@SKa?27>p6{{YeF0?)(3?RW%eb03ai69aAj z%%Kj7=m#d|h9YPl+GTpujN4({0nMmCg6Ay0tl>_8j}fTDm>EIG=0}?O77NX25dxB~ zXy8))UxjD%hUKk;Ol$voBl~KEpmR+^?}lq)u4&FA`k4S`!Zk7DuZgKIMwog{3`@_V zpD1A===q5fvMfqFrwB%-Ba|SNT@w>++Lku#hAs1nCRyxh2q#L&Rv;ufQk3XCC|Qos z%18@P)?l;(h4l!njRKuLUW3wG5YASO#*0Ip+Y#DD=@lMdYO1iYPM#s9dl8bHUZ!!P z9j4?NgjPn{NQo$9^PjZH6n>8Ie>4wOjv=&leytIy@g>4p$7w}%A}X*Wwmx1dXuFy1 znml>9;L3rM@t+WyI~O~_U(O6J?~eZ)!sk(1#QBoez`pYfLbP`H)Jbayp9*OWk@?BV zn%2NrPS&ExOxVx6z%VWtw#U*t+gCwHX2Ono7XoOu<4%FLO~9Va3ywy#%a|hyPS}yw zOLE*M3CT|wo({l03`C6HLcp*UXdvK;3w@rup9-`&L)#kO1EbF%Fk{A&iH`m}^oK>3 zv7af7CjJT1IGAQ)#vE2~L9w37aI^;W=$g96Gl-HN%_4|n9jg@aLT&=iBw5(K%# z69ttOiNKo>-6qhcNksiTg>(U@wl(9Y4X#OITn$z7jA# zQHg;?jP@g#3nYEv1~BG;-q00uV2yCgnF%JPPQhqlsZfl1!6j4}J(HppF`9sY0yAO; zP_QlnTH~vcyk0CZI$42fj|H<9A`8ilXKoS`jJ6|~X|c^>2Z)^_XY|g7<#_^DtzB*q!<1+Yn>nDBa#M~ov0#Yvy7Pn<=!6J3X?~x8E{Fig=o^#kJ z9zh_s7B)fFAoBCLjY0(iauI6Wt>q{J&WE?rAr2t`vJ=QDTWAY)AC%rSiUo|ACK2}vi=DP( zx?JpZMBJMA7UdoP1^-SZk`!-3)-Iw*AP&rwlv(x<$i?7j!=fl$5r}~T8u+s*TmcPqF||-&4RDhgaZfLKVM+^OsmP|Ad}7Klr72hbYSmII zEi@rqICbPfNIyl0%=JOEGI!WOLvk4B7!Jr&mO~F9&GC{B$kC8y0c~*u&_BhbDPYtZ zA>b@Jh4Hxvv8G*5A*5xTi|1L>#MU;kHBM};b59zk#jG}x`u}y3p3w};&3HQk&I;=Z zpmhY$`T=P3Yy$oECViEOX(P_5?iPpP(dsadb_nP=jJg;&fe~{{zB(hRu|4Hqs7kB`^0T*U0L1=OVD>&Zu|B?20N5v8aj9joapZD`$>qO>FNnzG zjuqSziF%9*58uJsf5ak(Iz=$4Tq+)W{8w-i`=_qt&wWmRinh*^$ZoyXrF=OStXwd3|Gl`S~H$FC=p-2yG24f`Kbd`3o4GWu!$^9AjVs zBS{mL=?ze3UtoL_LU=KNN2eoE_;#P(j6v(I13mBx$r)WP@65q~pUD zwHs}PWawE^LdGKyPyvjp44lAdrLc^+5k|zxz+FF{M8J9LG!VRw00WG!gsS1K`#V5h zY|N3_N9KEq&oMp?A#8(3Ock-@)tC`(RY5+Y zqqEiy2*tWcHg!?JXrzH!pPg{nRiupa4Ac{%FAfKbl#!&J$cXz*pe`8AL@>+!1hWla z#E9EVL{!&twxoHqSJUQXlc0bRO`+ATMbjH-a~T5bk8z#RDPSa7X`#520(V@XCgX1r zBKi=ikD@8=#&FnBI#zHqgaicC>S>4)1=@yNg2T0jD!K>JUj$0c;A|;rAfP(x zg3)J|k5m?U(dCe>H>z3|?h^2`q13aj?J;defM*XOdJ%yoWqeR*YkDaTHzOoq9?UmQ zGV#4A;|>j0BRv_D4+K=t#fX+0SimUI!LW>C4J_z{XpyiR5#1y#qkjqO_#`6(SLPjwr)kL~MAE+JnWg_jaH5vts#24*Y9_~RB z5SWPZTm-blGDKTD8R+8;F@J>VZ)j0#h)i2cQ|v^yyN>;)!;Z zeX#qYv0Z43$*;~QA;cjEt|t)F0*qOegT6;+L8X3roWIb6pBxJxgjah0inNa+&@sl% zv22beJ`>S;f%S-P5@>UHQ5DBiafp$QUxMf=fmYGQVGM%xmbjTwQEw}7$dtTwvsp#n z#tndMkR)Lws`X`IRc`Skf80KTa@yT|LJqD zAbu4A70l@0K5bR^;`leJ^4stue)2C6e}w?6jK1?}YxNM0f1|3?1rHApSS)_IeL4cH zGHT<~)+#^w{*9{1P)+fZ^JDGv5nz>3x=&lHnK;h(ImU$uP-Rr)(^mCj9A9O`MU4Jn zU;(2|!dk`u;P68P_DaSryVB;^G(@=qttO>M5O8nE=oo_MR84OnkW_`?RC*Tu4n{U1 z&_3gTh|zZteJ9Y`r*w;<3K`vkVC)k}s={z8wSU1m7#R`Z6{Fz>7BI>ameFWo*CM(? zAfqc00#4O=zejw%p--?%uW42c6w&~-k(o_I4O;?!TztTYi};mq9@b$Z#_%se{cNO# zjN**6fKgKe3mKgvY+pnJ1Tq?gKu{~i}kS*W7v2P517l(;s z6RRa}y>!5F7liHzeCH%Nh|vv!@2=QCzHCu~FdJbZg8kzU?(j!zE<@mJ1$_L?7Z2=T zq-+o5|3KJ_VE_1QD}0mT0)&AG_Bp+klOKRE8-c$EWB>Tn{Vaq`1mC0)&+a8xrJ!8y`B_B}Fbt+sCfQg8hpu7oVlsCtUV{nbot;(vIi1AWaPF;dPY%5CWg0*hht| z5Bprl+Trsd>i=JQ$Hk@C0N$AU3%s!Ez{aRuC@P+z!iNic*i5yzVKVp zpALPld~=~Z4Iu-8OW$mh-;$nd)zs(8Y@}bur>Ec4v430%Z-!$ozNR9C5O^-wzxF5L zxjMsjlw^bu!T^MU2wW-RdXD`&3e4S6FGX06V3#DU{7rD&m~$aQC4yZESOdHc!T#}P z`VtJPypO#d;Z6kJ{@Xv^IP-?q-q~Be05@&C3AHzzmVW@;!w4@U{1?Igar-#lZ1GNu zH*VYt_Y(yBM|ll`y%V#1TTF>LjbDktIkx@dRKGDkA3Uf2oS$=EZvUPKPQctO8DT8~ zr@NdR+duN0f!gV(7kwr@HOw^KD|@R7tWerTT<#EjfDRB@u&Z;OW4J*tmU3vmBvtmY7 zNm#{}FU(Xgt&Sk!aU&&B4{IuFXO)H1&MB>~sjZ6epw#@XQCOi2<&AJTx`Ik(LebCA z?$jPmYMq+K3W64H=uw53SL}*)>%OQv+%t9V7o)wzeNG_8^%ibm6ufCR5=b`dr+_;puYrLg-UbEGgdo4G33w8x}1P855%ND{xUxYxQs$HXtZ?kU#< z8@x`(yu=J|L2<7~zw#0SUEF5|J@2*LzP8Y7e#|?#d;>K0JFC6jEAqTG?v~)BF9r@6 zG-1+!e6Q(-{M;SE#Ga}1yj?2-Bi!?*t_rsDmaLxUwF#zpErW-=Q3z)oL+SGlSLgQ$ zezY+^*Q?6&61NPP_*Cgyo5c~!yMMP5Ph zHPqlDZ|Q5n4qme@BiGm6lJ6~8y*oekT(A8;sqH{qFe7fHsnX)OveGGAy(PQSb6K^` zQ@n|*r{;SVhk_korZRO~aIANOi?+zx6-@1!S{_VYyBqE1opQ{p$?%#Nf3X&f*L}M; zF$HzweR=8ZIbZj!^RDrNTOPT4z(B8XwU;(~fHyHC+e=OH#%6f&d0uTsesF7D{($@` zfz;D+b0t=tK02uc561ByLR0qc=y$vy`~HwwR=qw4 zl7kuE^cpWY#VgG~0yz&~a)pl!0D}=JoUXqtf!y)(#xkD}V3qferNyH+v7oXLyMl zyeiaZi`CwvHNn@szpprk{R__>s*~s4wZgBYeO@ih#jg(L*X2(b$TTsBHI`55|)!sG~&%2}MHE${SbBZvLb- zsa~6X#nSon;-(ml*F}kQSqH>eBuO|P(?qkXqp;68cHq@2XdEIt-qYnMuOWWm5 zS^enXa~FHl(YIG)fbiyIGJeZ?+sQm|#2mlE8E zMjw92>$l6By4st)9lsA4Y+2)t&s)2$)^^=q=(>IVuG?#Ts&`7UH*veE^ocb*y{1a% zJ$qM&o}(Lr)tNKLZd*KSRDSRtFCmX5@#bfEXJDJP7&q0cIuuAv3Up1Z>zUd+(6#ji zeZ0lRyS-CU=Pxd+nR6{p(g$LL+XJDn>H=EqgBLvn?Zkbnx&vuivrG;|87Qy|jF_ zo>uT}ZT{ps?-sXsV5PTjd7ig4Wj#*3Io`u=p7-?f3~!gatJ2HQ!x-WH!$B7a-s?TQ zVoSr_E7R8W%)fPzw{+KH)Kag1cozg~rXls*-+4>&{_dru)Or*0`q$;N6h$mRTt=MN zY{OfL_4y-H_j@~+7B>XCo?(aXPXl?Q`%Up4UYfzdyDnJkeH@rQD%GpMY_@kK5J+>U zC)Tg~_#$IxL);62jKs++CwmFUyoIy9miyTFfr(y=8Z*8ZdrLDKZklAczj{+Lye{a* z+h>n4iC4$HF}Z93H1c21pX3cp@p5a>SPOy!d#27u#m@JdZLj^J=RmL7>_BR(38P8} zPZ^NvJ&1AtStpq1J%p3v87IY?o=2Vd4Z9n5)J^gx*L*Q)+3rc+DK)zraM&T3lJtGe zTK3&Q+`hQo15L)W<1U24AHBJ|yw=5iSS@ZGo7jz83Ik7}!o0<=MX-y#nHz$M4`YGd zXvVF}|8iA+F0Q0gg9C%3g9Ga`z4^f{MmXF2|8KAJu10d5xbw?=3;~6?>;2a`Q*6?DZel>zFsno0{Tv+~8f5a-Zw9#o^2p zuk8k}gokI~uq?$pV}mz0#cR49iFW+cqh-$@4?X7HYJw(QCbF7uXU1ee_sG(C8wcPbmp^Oglu82>UBKX&W7rTAH*8q7eQ zn(_shcg-qR*@78M@H0Euh^DmKsOMEI9fFNeL`(L6 zE$0qo{`Rlc%eV=WzfV^!cJjwBTh1^EhgDU`emu@%YzSGgICq#+nNwa>T{G1DNKf@L zST<8x!c^EPotIbEd3oQ z;}k87D_w#OdeF5bJ!)=(X<^FP3u|j?tZn;i@!gX{ zDg9E?l6$B1>XUYUpI*t`N|#iYR$;VQSTkdOciucmAvEUs~8_-PVoL(;8f zy34(+776QOvRWk7#b&qY7C6$ZMN-xiEfSEpIT8o6o)iOE8#R9gxUIw5mia9%64U+T z0wcu&432%jeEaarw?DK+W?&WU!@1+^uV|DV=i6L~J8o_uj z5gwmmX{I z10#JJ79aQ_!Y6*DX8V=>eLkdL$No`=ew7p$-K<4(v|13o0tFh{qIr&gp#8x9>YlY@ ze_=1m&ZQ?cqju8pPFoV{XQf|91vuu<-i7NZ++T;bs0l1+q&7yxPichBiuXD<)}SNe z$26)PZl?k)R7ST`qz}Uak0br@efnhWgmpCY$JfLL0h#(ig|ePoSA}cY_7T1j_Oqqod!)*^;o zO3xF%P{rT=F>RQ0{FpPs3$a;_uRxq4 zd`_|P01qwj`pF?FyFX5&?{J*%#*-=mSx1c1frm~Qx{FU>!aly!0n2R2$DaH4R|!l# z9XGZ!!{v>1mf>iqalWrybpA=|tC7Bz99Y+m9O@%vlnh<|*-f`m4wG(~ zDw~%8jgH;d+Sf@692VQQ&)bcgO&^FT+nlJfm4vTPu*!3$(8TBB|0093@jv@TlKJq1 zuT&=Cg&`TU;+$nb6AbqU<*oyg6!$86TG0X3dt140f%pdKB&?+fF>I~uG({)NOBT^#NJszQw`S#=t6_W1M!@Rb4nF01G>maR|8Em z=vtuZ25nKjw}GVOUjWT8(s;~GB)3E$@xC39D(V9Z;!3r^Z@@ZTOtohU=|pGLY2s zkE+)iuLP7Dz2QJoj*&oOc{nTtsOspv3}SpFDDEPt=u zFUp;Z*_ia=5sIb)Nq=4hB)#(wD!o(DBS2-wtLK5F-F^m=mTrRwQPQu@QPdMi^ezGt zy=6e<#>$I8l5Z1?Bcj&>NUZc$R0Jevz=c3k%Gp3t%32^vy8=kku2;Q{s&}(W?^N^v zkXSwfB$mGhk{x)w<6{YlYQAo2MjFcu9{x*BE>Uy^ zkhI4m%Du1XYejKqSiKA&u`(5CfvJsUKt%@K2P7rmsd|40lGb`#xkJkJYh}-)(LiE( z0+5VNvy>|X8gKHr1W3-jtw0M6w-czsppSvX%4a~5Z`0P+t4=^7?FJ;$mC9WKB(nFFk;y4l;n` z8c+o!J@zUf@%|AY$?b8V8k5I+Kyuc83{-2lbI!J>VGWIS78f5IP0$OaiD^+ikqK6edp~y?N-k%0^kxAPM zNOC(5Xo=wl0Li?h9B8TGE&*C*(4Uq2FOZ}?s_0uFNgLO}=5`8@__8OGCU%5wsB#*s7lE*WucXLO) zSZ4C*-U+W68B_?g!l0iN_3Ui*=5(<&xd2FNV=d4OlcHYH3qUfbxvZ;2r<`Nc_5>2I z`T&WQ@j&9=bVc(NRV%6ok`(-DE@{=fl-sS`3qa!4D=PgMNb)_ZTv9iiZ+k^O6!lg# z3`p{wpr}Mqh3YL+v|7;>s`n=#Ip4MdtueKBuW}CoNlQNhwAM(USLrJ%eO;w*0*O~2 z0ZIKi-7OajG{;zJrra4oqSsTo-l}&akX*Z8Q1lh%vC_ldMbEj^*!w+tg!GpefmRxh zKm8}@GoV$5`(Dwh=n<<8cc!9LpgO~KLVHMSU8?9EMI&8XYXyqNDJoVpRnc@sC5m`& zAhp|BQ8z{BDN0imQq)&bhN4VG!xW8BG*VH4qH&6f6>U&-t)fkeHY?hy=r%XU8Nqd{3I}~kKbg!bnDcY&%5k-3x?Nzi-(esM<(|3~Z zzZAW$=%6C@2+`wfbAmop^r<4A-6G}d?t;Em^rIq2&!`whK}F3K;RJAoAjCU|@V}hD zp919>?t>=yg3qAzphZU&U4ZM6NO>(2^rWJ3$(9RYEEZ{|qLGRgVJsHum5Q!Yv_sLe ziVi5+ey&ZsQ_)^UFDW{x=tD(cD&oSBc+gx?Yek(Er74=Es6q8b$Sro>O!{(ff)%RP>diK)Us>lcH2b8H)a-Xzv9!#eQ5s zN1E&9ANyH!v!We}{;BAFMMo5!(%+_Sqo|9b{)(~{tr=ibY*4gW(H)9fVL~nb9aHqP zqGkiFw5y^yimDZ@P;{dry!+-`4q#Fud9+Y;rlLNI1}i$EsN-OpHbv3JitbUgThY^s z+GN_aT@=j$k~z&HX}7C%r=q=zVzaHi(-h?cNp6#sD+NL#^r5-R)hf44x%G;!Rq0JY zV((@k>1z+G^ik!WR&GC#r1+Og52^Gc<&G)$4UnX0m19vFklzZ*jZtpAa&widQtlE( z8x(C<^njvg6*U`fYw|)xmja1bR|84?ZBq2GqURO8s^~369{`D!Pk^NUeo!e1;hG|n zJX!!riY|)!sdSKX`O5KkVwkg`F=mkY@14-R~s@zwKepb{v*XG+n zQ4d8KKw>3Vxr-E4E7}btXT{TsUQzV6qFmhMNhyngB*iQsskJiY7Asn(Xp8Fo8Az<$ z1%#sDtk|v6y^5Yu>3hn3qUcLS-vNoeGxIGPplGI|-z&OT(JP7$14&&SQ;tOx?o=T0 zv^9{Fyb~fRd3PZ3pjM@;6#ZV&4T=saI;!YLMg2$FJaQBjDZ=aHes0^8`~zS*IiL>MHc{xm2rwH6|GfthoVOn{R2p9_hlf- z_keQmDEE<~BS4Z{{1}Up6{RW~3MBSMC^ufY$;vHPv>Hf!*{FKgE4Nj-ZOT0eB)&YS z=%At>Rj*Bf^`*C>zCe;TOHrPpX^LtTtylCXAnBcVD)*?O{VIJ+xi1t2$J%^5DM|;D zx*Du#grZ4`W-6*yv;;`Xah0NNK;qwB%I#I|S>^t#=m$k-7g~F1Kw_o8qD+;JR&Fs6 zP9TgWs}=oT(UXc^Q*=ntQAKTwtd(wxLW=Sg6)Re;=tf1aE1ELSmSZlE__tKi6+qJ0 z>Xq9JB(1OwNb2-X)q6mtk1Bdv(etYJs&a2B`asdAs`s68-gui^6Cm-b6_EIntf;%9 z-ik7S#M4Y5Nn4=ONs4AFng=8)Du5(Kol37#RIkz-mHRW0q}{9N4Mm@+-nWW=QfadZ zwnV1_iIpzOr6}s7(kw-Vie@WX4J6)Q4J387Nzu)!w@vjPROw@i_Nw#+<^BUC{(Yv% z!=ne`l7J+)vz6&*3`?pFz zRqjVcO^a=cmWs|&lnm6@%-ahTl_|PW(c_B#rRW17@$V>*`1b>l_!l$DS`GqtcDc4WAA<7L0>T7&1R&IuJr9hI~B9*RCv__@BS8k(nw<)(n(fulYMA0)q z;=!AWep2L4wjQ(ulJcIVC|RZ5l}iT_d-;lHs@^;xsoh0DVsC}&)v4aqD&3^$W<|HF z-aX3gRP?x_r&RAn73bCrIt=ogg+r&v!<2a>cQMSX#!jYg>6SVfZ+%>t6N zmngSJ(R!6$r`)Z|?NM|<(I=|+rK0at8aLJY91kS*3tJ)qokivFeOu%ho3wV!USq$$c)G!bZ!!?lqMm8(#$R=Ev| z?o{bL$~~^!)5^WCsL2fLK~F`46cqr82NRT=r|2@3)+u+FqNfx+3ncydAdvKkca{5C zxgQk8%(Qx^D>@TMYCJ{Ja3Jw-lyb9`o3Gpzif&T$n4*_}#L63r-c{*m%5|S*Js1fj z=6yid7TRqsDQlJ>B29|K8UeWB8yRqB=46v;s1K^GvYmn=mS z6iri9rsy(7Hvvh>|DxP(Mf-uo`!h>z9^HY&=e~-D0u4hc!^zbFcpTfI|&Mi?t+D%T!J()LwUq^Mlcaz)oD zdQj0mMXv#g_irh8RJre!i<@inO#+e>XDc^ZQ5BGsaxsv2zY<8=_iEMKrs!cHN%5$1 z&ndTGx%U)(smPsYy-HV<4J5gZQ#1`o@+eWgn-pzVz1@nQRrDX#dkaWP^tGa2fW&fe zzV)R!km$7q5@`qJdMK9)ByBlHQ8|#*ZiRB|mAhKGZOYxR+zUXG+sn!|TVV5O12od~ zrf!Ndfh5HeMVA4IR}G4G0Et&`D)%Xn*!w|I+(K(F9!R8TD0h}}U6nf*NOB7)8mOpH z(G*1$ihif4LD63oJ*{ZJqJJy;1V~EsxpJ`;)|WPlIx0F>QKq6?MN@#pUYT+iD_X1Q z4~lM4beEz%iat^Fy`mnK*1vv0QoAD*O$U;;ECrJOH&>;#DqW`16)OFmO0QP#M&)(^ ziM=OO`cIX<0wgW?rlOBk?<>{&L8UPl+Z25j4F{4EO;EHDNJ>-101^-W zsM4(}-KNrefW*p9)q6tq_9^#@a<41*zH%P|Np8m!C0AK46-dg_A4t3}Q|V%ru2$)l zD!m#={A*C@HkID3=tD){07-6vYMWa;kob2hkl1Ul(k?1ZQB}4$prTKJB<=T# zTGm<*&H<8gqydTE0F`C|iGP1kbd&0BSF{&MYUtlUV(&eb{!gV}0ExW|7TMf}DyjzZ za|054*DKnr(rt?FR`igfJ&K-D^s=H46vZ#Lxt*=3BanFC8%R93K)FoiautmR5}zk3 zny#o^QI(=g6s=Koy`rs(o>%lakofYoa=$1FF0mf8QpPWuT+xdvjbCcLIul6xRTm&BN3NpLsy9o~LqPr&7D#gYO3|6iEZ0}j zWJN0!-KOX*AhFl}5{s@#wkQtsfJ`$NNWlMn5#pRZu0^eJTwtVaRmx-G#woW!xoef% zs@!eL-K*T+l#4-bVlSxq@||tr!tZQvR&J~69aQce<4uX6j8 z`#STi<;E#jtlS#qu2Al8%I#F{Q{|2- zmk_kRBms#pY08-&Uq|1Mb5drP^S0gm{rn5Q$v_X5uZ4uO|NqVhu9NI|M#oCR@xy@J z&&KE&`c?d2fc_e0n6^1sbVL*IB|VtwQ98qX`(d36!SL(}+gT1KIm*uUU^qU6Q{4$> zB@V->4uIiT4fyBh{w0{?D2CsvC!ij~sd|xV8p(_S6N<{K1k9fJNS*ayT1V+LfZ={H zVatz!;SMik0P*(`qI;v5mMFpgC}t2C?#mKRRSt$bvxJ#z$RPVL^B|b%Z6cZffax6N z;eWwwjnZj>y5SE@h3%XVhP#V|nekw_r%0Ho1+(&;$a=n#cG^Yi+zN)*9Mp)-v zFx(v@%*5dAce+F}DPWSLm_jg_QOqJR)1#Q1z-*0T%;?lL((?bHKVfhYq5h?qZR_Nay|S_MJ!NJ!=F;+qP6Hi| zG0}f1vj3eS(U8#L7j2o*N;sMg5BV31;JLf%uw6OTqyDOV9ae$o?x*Sre=B_*MxGmc zu9PrZ?Mhz-^b6LOu~?a%)kr~F<{WBpnwU4kO&d7OhO>b zn1w~q5RwT*LlTn-f-9>fjVQRZE@)g@ZEF{|s;z!2ii%6?+FGk^U23ZoZK>K;v8})7 zdC$Ew_s#^`{{G+3@ADrxIp;j@d*1V&_pJBabMHkU`s4c#_(PWm&)dv0;rA_*Cl!<= zDAiqjLK2AW=*dZLHI4uELkbuNKMPik`JAr3M0&;r-@{d!l*4fd8cj#+r zeUVn={F@5bvkgqMYx3tXhNDYKHY|9Q%SBTEjh&vb8Kq zo94zFRJ$+08#nP5Ml;*Ke=EizphGekM!;}Ivfk6#+}AwZyDO132+QPMn^9J~c^t2` z47K$3g@c`8z7=vtM_+Hti~@Y5prxl-TdJbFH)cz|3iXIY{kly@MbN++9!`&vwl)(+ zCh|s9sTF6{ns&6z;7~m#KuR23*Vo$H(Gv-GIdXH>q`XXXX-lMaZMb*1Dni>~DcKmb z0h;TBCDljZjGBl^j>f2s@LvkmiH;~XR(jF4e(8U}c|?}leyf96<>+g^Fx=Z6s}`pj zV-;7`)fV1xM7c3OO8R$fN2FJEbwo^2(z;_!GKR8+JC$Ur;cAXAw?&hS*SxCFnVf7T zU2QQF#535`ZCKmg-`S>z38$3d6sYS7ci9p<6EyW;u^K)i*=(RkqyL+R!*U%h`I0c+ z=iGZVj!+=3TpJ8Pj?u+!cuC+G< zyjB`hxvdJ;h1a$AY_tJL(&=c~~uvAVnUJgX^L;~a+#3p>KVV3E;!^b#O$ENkk5U4|9hu)LwUs!vbF z?B#e>c(WEEgO6?;G;~W}*lDPSa3tPV9er&bYdY+`t|ijlVJkGO-50jgA-S#JZvIez z-&$#1wp6y#v0TGWQt>TPueQQr{RViuDPf~fXG^3VZy~qk0Yy3!no3tHXO5`m2+HKESQ$5;tE$vZsu9q z-Q5{(u@7#nZxEv+QCnSmLUp&sw`VJlxLLu1>D|!y^jy_iN!9-f#Y-hd-do;_zXa9+QbDa6|%6s|C_~0A2 z&++45;VYaeaqG|dDBrQawqn{BzM@$Ua2jG)yybu(5BAH;by%<$OIx2z z-?vMkJDB3&4|hgRQa|R4{SUr7@VA|OM-cYm`G*8E-mvvU&)`aw@y!k6ByG{YOGXU< z*!rYrg)j?>oTnh+0F;tAsCj!=>}%hJVn56}8f?t*Y=0%aK6xiNVr&VE<&WEILLGmZisX4a9<3v0#oBv~oGnf#G4W zY~DcWyn_$Gzk`_`{Elf3J-#(9Wed%Osi$rKn|DWx%WMWkPkVPZB4U*)R%XlmnFm{; z??ApTQBhJPU)M#=2P{<4(-*(T_9_uHPnI+~8cMwvCH241uIGcTWz%3q)LwK#$Ykv` zpS^DvhjjyKAz}eM5eI|s^KP36?a&*d7Q(2$gLiQ)jS$~TdE+G2PB8cXUJ^l#W|k5kM@@pa+t>?;~to&t?hlNIw!q->%}># z%KK1bPKNiP@|-dKBipyX;@vhCqQFOXu~yz*VX?R`&has|#eE3b3@-MJ{9x^_;_2ZJ6A zJHDMDTZMmCCQ@^Jhdc~`lvr((n4%>H=$jI~+wRrY^_khFTiLR1nU;35w>b<`PhWb$ zd3y`3j5%&a+QFJ20z+BcSa#`{^PVXjc*FSB)^j~*frUlS_5YPAB@;|ArY}{_an-6L z%ikIPY{fYkKXv)DQ2ywoabOP2X0s<}05QPe+38>(?Du&e{9^6~&n0C8PYita_}gw8 zFsU?sFvJz>8QzB$y4s6gh@3dMARUv`x!%Vf_dfR8)F-T|xA+Da4*q(u$up?4*uNm15IMY$sey}8u0Rg5_k7R@oo{2QG0d!> zmetT{VS4+(`7T?%saSpWZwD7h0b)B==47{Hvd9_aB;>Hh*3S%mp>m*sW|7)P9(&9{ z|24ME=AQ4qG_8H^`L2t#-YN@NY3CWDcrM>oE@3A0=Z%ZiWJ0bX(=~)u*Nf30ucwF zHSKLt{;=)M$h*+*;B&|dhUB6#lhR;{6U7SI-Unfw9pyPWXdIbV8;zRd;5A3kf3PMH zD?;YQ88NLm-&=Kb0kg#-9P8Vi?nB!*^u)YnlzXZr^G(_y$XH+^CBm(pTM zP-Ebb_rcFtVH>hpVL8TUQek7I!d{8Y*pZ3W8?7|UkQjqbj+utCctq&neO3j{m8yfV zgO9P;Sl0i?HS--y#-r5pp@Y}6AhGexYHurV;~+sBEag(kT0|Ffpwgr-BQQ~HIWr`Vqd4uJ)`0|>i6*zg6XTu;$!7r!8DD({uAK^)|q*1qd$L&3UP zR;#f}G0*UBI}`eWpLt=i%4_(6kG&5bF4_;~EE@Zg_XZc|7@uz{Qjs^zcG>>}({_<`}p7=^g{Cn6mEvJKa|fZ8|DsscMpQqEZZ8WVV3QZ4+j?qbeZ0@%Jhg; zrV;IW{7Skgfbx7p$^%R=L@Smx8^Ia4_T;_43#5`BLP`hN5h;^0o``ycQfxSUI% z2To$)2S>4`VBxg=C;!A`9BnrTeugN_@@`mZk$46wVw zm#zXo%ba4fIS=>e?_8PV!IC%!6q)*=tJ$bAqHg^cCjG7Z+(lpXzlDZ8a7bT2SZPpt z_h1s}Rub?XjPXUU*BdZyWa_mtuGq8C_OkmujAy9G3A{Ydd$WDu7|esodC#^Fq@w#I z=e^QC;9FttSCDm#>i-2;J>G|K;i$P0#)PF4{G97?>`ov}`z~I6W%2535M$l;zik*P zb&0E|vuy1XEn^C-ES-f$N2R612p+BmXbfUjxu9|SKob7?c)`PIzl^hM=0F)PO0(pm zn6|L`uZ7vx16U1UwwgA0wg;PBrat>FUVn6b*h7z`PZktUhYs2BeegK~1hh@PxNyPs zNMp_z8faX9GA>~v6Z7^Cp8XGVna1Mq%EzqfgZr_1@BeL-j`sEcR$oyS`u}h1d*T1G zePQP*u(Pz~47p0wCZ@$RwVjW#>>O|7=V{}2Y2#h{4vyMo|H0l|F2)+jDBWQ9d9QdF ztx%6Y!?f4`x_wys!%yFIan6JdC=9!!4}LcM0Q?;IneeA@I6Kz6?MrCDb~Q=Lo6Vvg z?|lf%K33LAky%!w$DDW__ojInr`O5sQI2M|!yMmmb=c1f#{PYezw6@z8EWLmn-5?6 z#5#B6$<2qaqyOmU!`IV)VDsS{=zn+f;T!3HWAovg=wH0~a0~s&=EJM$cWyp>_Jeiq zNZaPa>*%lCeE0(Tjhhd*(XZZoxPyNA=EE+xj!!14x58fGjo#kTP=sL0kq9#GM036@~#lfYc!*>rsv$GZDe~!CSUR z7(cSXU>`4hu{aXprdcd5anPgCF|8>W) z8peTRD001O;FN(ip6t3R40hb}`wZjy)&s`NpL@6c8A0!ZSZEHsvGsS}y?=CjAG~P; z%Cz-!T&}$0eeh~Vb}Tb?_;!Y{Vfu*4J~DybWoJ*?5pwMexxL#4P5#sb{vl<;ow#AQ?Rk?wBY}T}oqyDhQ2Ndgc9Cx~`MnAJ9y`BxM<`=w$miX5p2_b^;2&w{ zAH5?4`;YN%n``oqPT)_q^ZR#%#_S9QyxaJ>XqIU}tEYciWq2d*t^g z@Tc4P$L|P@+ZoFAZoAv$4sWsgnZ&9L(xyCXDVXDBPuK;Cf) zyk0x+#2ulmouNsQlf4gC=ZqhCZtFX`2@kN<+87rew<9!ZXDIt=ms+uJ;E98Ok6!=i z`$4(5B3Wo{`6sOGpF&5>-unB04VY{4?H_r!J&A&2yQ48D`(W|o@3^rI0|Tv0F?L?` z(!l4NJ|B6(l7TO%RQlGvuB}fPBY(AH(U(O}c`v^L=>}fLRbBSf&$oW=y$lw~O4+&i zB_vt@(9Xq=ZTdXU>1^sETOK34kPww!dgC3XFGc3$)tr&W&WEtdD64T8>qw;jNTj=~ zPu)BY&o7S01Om4gj$feUV~~g7)4dHx9y-RY@NoW1pdZGwhkUG)&letodmC;6;<={F zhEE71H9ecifs8}N5lTUYl5@ca70_}kMPZV&hNhTEp&U~TJp z(^q%*ceSudlpBL^rtv8GVb$wxS(aoGbb4KorIn(>P`+Hl%r?q!? zPv1~jzyhihCyS?CMoR12mR^n}XOVO(wn?CmWUfDt_8Jxrr((_s!Qcmj=;Tx$n4( zF_Lh~%>C_s7H!r{<^I8|7LBnVzH8C&DHr#nA0y^*yWMv}^hjDZ#hqNp&s&Q=!P>f- zV2u^2z@r!C%FvXGrS(;fLFF=I4Z+}Il_Zg-+J>f3sII;-SgzcHRF^a~2J7qV>hS=k zln1T2ySKHwEv%B~-;JD8e-AZA%;kr((-?HS7Xx*>=K)A}dE9N?{Tzv0Zg+cUcMFnV(bFvnn%87Ltc0pbApr2qpFPCCi%%)retnNb(FzfTWSb5h{=(byxyYq@jLO zg1@qCRa(_pQ-Z2057sx=*40`~&kpC$nrWHJ4s(!GE=sGp7Yl2hpO_>;nzo3Bm(^F6 zT86iA16^hr-UgSDTQ@4Z5TGTN-EG{AhQznw@yj=cs)PPCS zl$of7QG8c{JLN>(en_VmQrMl#%7t12ZK}QN=lW{)6yA^M8Ya%o)Fy`r5%yJP`EeLu_4^4Qi?@U zPe$p+NZ1CSA@E4wpP9#eV?4yBX4J21={rxQED*`*8I?L(B2iyPsg9OPG>}oEqh%7! z%&5l`F(_=g$j!>A)X|_sCuWrDXoW;4Wt8Y>r9_X*sP9|b(H>DL3niYNQEA4jBtAK# z)Qm5Z`0*JfW_+>4PteAz7USh)bn&eKDK*B)DAE*|@~1H0Xx1iyF-uWi1L*5CFpZj0 zYcTBp5yBo%?pa_8Y*3z=QfGmU$}@{0w@MX;{36i(FGHHovw#mrleaX=D#-7E*wG3wl_+SbiQXP3FIkP0%Ebl@XSx<)SKx=15Pjhb= zF9jRf#De4m*0uDgk;~Q~@BFcBjw4qvEhZlKbkN6fc~IIZ4=@2b3v8(@$HGd@{PJw-TW{d44W-v~w5qhl1(?89prcKtRWoyUAkq=R zM4nc&7|fnP2OiK>X|=b{Lw2aLv^r+&L-p!V0J^4yh-E@o9m)!<>*#6*E+)*D7-$ls zu{Mxa&oomc2AagCnN^zBKt*x`oh^Nl=JtMEZnWb0rLJaO;c1Pe<_9jo<7RwdC&BWFQ`ucm@TUsHsg_h{F;?3(@I%&GqTp#uX@JQ?0jy61iqte=l zM2NJ7@hngGMnS_wHwfC>-P0pjJF$xceQR5AeWB9UjxAPdQ(!F~Tf(>#QEBH+&QNMw z6wr+^?L1ccj)1hxv~{bH<_c*IY27633gAj)y-GX35oxatNY75|W#oF5=}vt+X#|2Y zF)gfWYz#JVPO7iLQ@c*EyuPHevZS;ct6T?jeXybGtYC9vU8p)((P++1mZTWboSYH~ z^;MM%8_g*yj;cv|nu;Tp)-^WP)o2F2LK~LBoUn$aiMo2R7DpG#NR`CSy09bC2-DYx z`}#X0D)nFzJB*#8Qa?_b4GX&6bMf~W8k4r2Ab-wch?M{`--O_HuL3fX<70|DecHwx z)5r~FCADRBygSY8Kt>>b@QJv-_N&mNKxlWp>h)dap zD$hy4l~Ys0LK0>=2@S!Ts_~MNx(H%Lt}kiXkk$0J1MyQSQ1pTonTpAO-+d^ zaDt&=eN|n#n&U(pM8QHQ2!l6N*Oe_+MNS+a<~=n>L4~vei{b{ zYs=No;xI}m=kCP|aRfa@y%>ke4D(VPDCu901EJO{aZqhj4ed}?9W1F=uf`DZ1g#Nc|}uo0+TroPg!2LkZYS^_K)}mijmW%U7SoVZmj=vL^JsPvh`~!RnCu zYaCb;tZh<%ivt_bdCMBr-{WB{RMls3U`b_3Rjv9w4#ka^I(0Y>gjVW{c&sk8T>T>s z3~?7#{WA`&z_z9OR~%Twl71NnE~%?-s^O@#Nw2q~kV6i!lg!ZE+pY4eR-LOg; z@^f?5<#A*TyTSTeX{jaEdFm@iBhOSjjz*rP298F~S6@9EdA1rn8o2dK>$i_}$d~==181I5fD7=r`g}^c3`i zdxk@E)xB|WClX;j-|icR5Uel5N=7}INU9Dt zG^nQ%@k-oSz+*{Be|X9xkL_q z@$!5kL9TXwnuzO5v!5jrN*dJ*iD+$c$ALB2@lu=hJ?ZH3rlhGH3+CXmMzv)) zN~k`#L~R|8f(95;+lHfraH~pfAC4j`ugl{oHNo;K%$Kr!{7M{c>C&ZYM;umDQdO-6 z;y^U`vZiX8>%JOKs;dcM#aFKe;|L{X%?-GwD_f|pNTkSx>&`@+W3jq25wEDLUs_UM zuC7WXiKTWW;`KqC8Nj~C?nF{)UESiEl6rh$`RX`gsmvg?7%OE-dd(5ZSjt`-M=Y;u zVBIt5w8nwh(jBygTaux zF%HEgT%Niq5uB;^#Di?M^}(fF-`_kOtpe8rR-N3U8E_#V-34t>o7{R|xuF%W;p0t< z^c##Yc8lc*#^Ufs!A4Ezry~5P@WxBVX@9`}aiGuQ&&cC`GJuWiRL0CJ5q1Y~_d{jO zYDXGRpuelX5BEqi@_Ew)_tGdNWA<&}lPs*WU&>pSd?H>FB=72qf(v|8r<}x_L*{D& zn{lhdcWOHz73jjd*_3Y@ZxXo?;XyLr4Bpf61a#!IjdIJVOHPvc^7L&Z9hsSnyDou1 zmp)47%h$J$%vj-NNS6hod6>*6x4N^~7hlkTwIE{t-HNH|(@&n->+*86U`PSnOu&?aO zDZH^HcTarfdyvmOHQwi~IDC9yu+;Ut=RQLMgC z<0LmOtjAp-j0_{4wru19GjH?7uraK;niVH&$7pI<3`WlzT{avsSQBboK72YH&5XCN z7RY&{sV3gSnpV+-^^ZOq6Q{<~s`}{3t2k0k$ujE*memhKY?9T|B)#W8hjt>ZsIj}h zbuF6E=&8HVgaoQUOAhxEJ0*%$;zm|~FW&H}#!Mra;`SFFH{C2{MO8gEEO^e;1kOaQ zsZF}QU>t15jD>{}HVJAgtx20O%z@Qk9o9GId`)mE25#9OrFe44ZT_#WgO}6J)bS76+HhjIl{KM?^74Y}S!R zEIUw%Qp7DWsHzt8wb~j@fJ0bi3$ZtVdfTSK8eAa42(s0;Nw-yjN}F(-l1kO8%?U8_ z-C_fE|J)jF=_Sjm8Z43et{a+1Db~>@xH$?gENL{cEm6#t^VT>J`EH9s<-sLYWjH8U zj>2q@L+eqbCBQG&cx-&JsrFJl&6e@Y!_$!eEAbS&8m|sdw6yv85y@yB(DoOaj-9s3 zV7;zteM?d!tZjSTvYf`sF@ECE7w&>L;c8}+zEi0|T*Tm1ncA!|xxldawrH%Zx++v! zhecOYs2o>_YLmW=S&myr6;&9gHf76D!#G=-+8m3Q1}m`xxg`c*9}hRwA!Mt@WLa#t z(x&4@m<_iKv{_TISHOdU7qwz@+Q(f3qAz$Jhrjzxwauib9R$I~V=mVi+fV$mIVvhZlbpf|>sB|1`>f zkB$Fc;UCL~6aDuw>>0ZS!uwl18uS~yr%Ks4O zPoKnQD*wZb1ym|C_y4GldR&M!+5Vp_nqld^*QUqgHa(uudd#OD`$P|{DSE;<%Ibg8 zrpi+`Ri4(WoEP56<(Gf|AF!?5uJ1~&SRzu;@1Cb1oHkWC{tpJDg8pa|bkHW~LlHEV&s6z8VmN)Q z81hdH`*3c^|7WQhoE!2VVkk4Pp%+Um|6dr%3T%|f$BbmFRA%e{B!FD~zd>8bJ*J!S(5w1v-f1at3lw6VOl;rBGp1FU&Q?|CmvY=bv=-K5p0N3A;Y~ zOnvaF9l2bBjh-}KrHyoMPYH8ohCCLd{7-95sNa4GX48JpNH9lvnX~^{;}vSbbJITm z%f?MnEnc;2@pG*O>IR2y{l75e)UBR7UK0|YWTXiHFO6l8Fe-wwd;GsKUW|%+%P#J1 zElzpK=YPkzi)r#$!TvuR^X6EF_=`Qw$2yJ9^b?7AaONJnQT|V*)u(50vjeNGzZ!DX zSfW^N{Y|0)K_7^M1~Zzc3n+R~o~k-heUE{YkDXqq!%$I6<59R*FR28SDDi z;KZMBd2nWOA-KIv>i4*oBb+rKc@+9bxh5AWHBn|=ucVyR+P!WaCrzJ=i_=N^TrlQP z7uTMXusFjE>f-uuQn(FYm+<>tTsBS8ORa#5tE5Tmy7k06*2T5XL>ZsQxwz_>bivv% z7b@djobD%`t7p_q7iZx~=j!?F7#HWjN$1L3GQq{^2PE0Q!c^?y%rNQPw($B693b{* zxj1M~YSn@!x;O$)YPGm0xi|t&!c&Qw`#2W|r%5eVJln;wX43imPKJN7i>+W1cKCWR zE4x^|llnIHU4XUd39f4yi|8(|{5dWT6qDAO?OXXzbg`RGYKsCVx!6x8wc%W{@}KNt zbDj8SHoROhxqcEL55|`T=N#o_h4}Maw<4cRx4*>I51PI_!G)z3cLjeVU!1-_nipO7EM-{W4vA31J2;Z|_R z{$QtL?80xKZt7Hny=olSDy>_F(-PHn^|l9XkHjIDYg*;R)N+mATq=(onY%wnWQuKv z=*^%bG3wh7xSG|Q771*6YbeD%E;ME?mF9tQ9`r8{x3}=1vJJu~TUvVY++|5;&)OF5 zTv@#Jur|J4<)mZ3$D)_<(Hm?$V-=aaR8H7ONow43nlsxy?wpm#fAVUbM+&k>o_~2zvs3Xr1w-lSoQ;?m)&gIQd?x$DyGu+=X?u0`=^z0nlksm)5^(=n*e-#C@n}X4&cYaPi4xq3I^To zCj32~XRXaIlUduF4Ym(K1vwTdqufPZj1$P6_@xn}ot86lhLN>I9>*|}XW0b7=51CuO`BV^gQwzoUNXN`a3LSiWftFTS=Q2(b=}a<{B$GUc_4skhQoO)nO)p>IAfr-W znfduj14AO#9hAA}B4j(0PY)XNI0(9St64HY8uPdqaqV``>h5gApoA&Nf;{{7^d#;B}JovBF3tjj#JAj_M00B+>A&HHMeoW#VyVCOQKBIz0Uj^D4 zIAc#`8CK1G_%K>OYIGrK_*RW7Sc^ZI-FT__P6WSZ+CSOu2lq$F#=+}W3{1Acr5m2+QMOj`#AQ{fs(+2jrzd-Os5*_L$emTtOrqSL8 zBZ`c~|3u=M(qX%)IE*`w(mw=Iq@Vu;7z+M^s7M#03yebSeT&2qhzfBo2?wD>@puG| z>#<6UD?I#W-^UsN0bLIn7nDPV*8w5R`R~D}KE(?h3Gt{LehcgsfSHQj&Kz~d$|Ms) zBFxF1v9PA`zHvO6OdAW%Dj0&9W$3MbzH#$1bu=sr8_zs3V{Z1*16tn+zTFL2fdq6kGijQM)j6yr_)kfo4reR)}CfM zn*DhMc2Pi&u>cZ8Z*D=96BNBqPJ-S^_>-vjU%(hcFGq?*joD31l{bkdK8V@~Mq|%$ zRcMYfJZut`8$hX&?FB=#_5ldu5(3dP(G+0oAg&^!vGhf~;Rx2Z%Ge^3uK~Lh>O=&- z#VocNW08jx>V9D51f@`)B38Twe`4yJ{e13v6HTzao_@`;>=85W05G>V>QO5x8F~;9J&F)3o(`6Tnsip+aNmA4 zo|lXkAT`$)#-5(VXmD5$a=rJwsD~-5LYnB$gmpP`tK{0H1Zns=2jfMf35g0;A}))U z#az5xgjhNyzGf7B1z}maIQ8LLz-&vuHEu;mx)prKixvkUP`9PuIt+0aIQWuE<85t- z3up)eVu4CLTDXY#TLL^ zcDec>e;L4C01H~JK$jKRXa%;Jf#NI7fR!4BiNAu;7eWb5?OZqS4H~W*w0l`yohz3^ z3CZoBurw}_y*Q(eiKGc!B9}l@?&R z*X-Y5%S#%8Q+`}#?t@tTSH_)FYmvb-2L+Fjif3!n#d`4)-qUl4+N9|7VA9m|Q$&o03W zauJ(96@l*|Q2iO`b!;q5#}$fk`TjbjI|Y!WBUW92Sf~_#T)S6R8fGqH?M?2@WIx%= zrnntq-bP8J6c^BQv-PXe7I2&i;vwd-#a(tM;?E;qcB2)z5`lw6wjkj5aO4B;{QD5g zrP=U1lP&ae@XSEOxV&rwqRT+5x3KDM)O45Dw1%3Jl1}ac_o*}pHD!|Gt3en})5X-3 zL>Zw5-DTA43ZxK~B|w$=a^12m2pnSm7QblgO;hG?9;@rGkR`3@@7F?sf)tcYs!Q4- zzw9I}=B|55oQkM!hfKK~F-iH(3nZRvrEDPaQpAw8GM4NXSVcyjD!LG)T#(MNNPW8Y&=iZl3K}o38Y~*Xf*S#@ zK!TzNOrbrR>W0~iUNEt37KR)?FtO_`tWXuXU>qv+T?+%>+rTaX_PEBBiz;NGP~QUh zngya&70m_6F7hW6Oir3Y%NLyq{HI`cVaQ-Hd5ueBa&j1NVr-U0G$IG(X*RH!reta} zrE0QY2Ff?gjmfS^d1fyp8^_W@HnXa@l&2wGK zOxIbN7Lf8GELyY?0e3In32Npp8x2L*0i6Q$DHDxuPB^zI3ho5oa`4Ul5ds$@psOZs z#~Giy#+i7d!L_A~Puw)Ay=7F<-K!_z`tZ7LS)8}KjGK_2d!=h7qm#P&*EQp&Oc&m_ zYC%@C!?m;M2t^QqEX1X*d!WK+Qi$XwyhM;Yhqz;bU7xO2>^oiR;(Q-1&}Oqhff|>9siF!~&NoaP{f&aqnc;binTe7%nJJ!kq`(Fh zS>>+}9l3Z1*w|-*%E}5l|I)0yPjpJN^1v6XynuPZ5Z_pMgvz)|D(fC3SRq~d)TP$4 z^eWlagn7*?`>SMU6I*{Jchas`x#VusZcoK`8Qm>%&Vw135q}glwg~t2^xJ=f<;{!u zIwqXuzumDMX%eHXs<{j1KYLXY`BjnZFtS_aRO6EJT_e)bp3FK_n_T4{_0RI|5qIs}W+u zzYp}#l@t=mEZz$+reG%Qu?$E|L03#c*(ivsMqYX=Pf3AFm!lr`iQUy1FN*Iz<4y5B^WTU6 z8B`2?LLibU^>F}cAEv5#Nyj2_!AV|I)pHRLRf|R<#LRO+mqy2t?<{~09UYUP9tF*7 zx`j!bz`T>0?D@(HWnM%sl8yQkP!}>cUICV|EJJnDjnv~d#P!_B>FOTDUZ;R9Ne`3y zDB?0*$%WRFh#ewzY0_(?zF|?9d6LkSkmVu_xM$0*e*rSAq|rh?rLsXb)+BAl7JeD6 zbQ6eWG}|K#(2nmRP);_n-Y6K$v|d&Xd)@UAGKE^_B`t@Lf;$nHivA%2+InjcqV>8! zk6Q0N%)K$|WkEtEJ5(;<1=Q)hq?4g_8GF!l8a)S;db6bm&rC2_)9qY&}aA7os%QASCN{sk~Q! zB8@V7la@ks!S4{4$}2jAs^F@u6EH^-rYZOb$hUDw%RnM7eJqM|TR?z`JqVsrk6n)TlR6~lxo zqh1}*zW5#>?_2!QX&Nl?d$M}DZg+xLEbuajrqO;0>lD0(xHj4w2-Q(hq|ru; zWJwYdOrxcOR`7c(Nzq>sqS1~AY&Y6ytPr9`i)6(aEd(lBg;wlS8f_JjsL>+nDikA>`LN3y(gpJkC)vI!jv64rtbq}r6$Gs$MNJ5?295)4uYvP{AGrn|05w_z--2SrPXak|4eSQ>C6;HI zu7O98L~7to23P}vY(XFil~qn&seykWhMydji91XokANCUZaztCxL0GNQbv&^F{Iw8 zOco|)^Wq$5z-vOuZL2uxw(6Wou|7W2_ODxQg|hB%C_$~eV6 zr46Yv=PUIEc}{8Atputs$b0uaDsO)HU#4bhn4F57|l>7dtJ;QSu|sbPw1B?Zj) zP3Xb>Dpr9^0kgSJ>_a{!l(Oe{$odTK6JsuvMvw)PG=fg|U7!_AMqCAzXa+4#2R~^ZinLBeulL|+;}!Zdg~c01s3tw;9SOXY;tb~t8D1* zgXU655_@zZb4cWo3lhr-N+BmsKp{^66tkaINTLPMVGUB6g|r}D$VgW4eDFjI8NW(U z#fR*L)QbXM%bWY(r0$@0=KgmvbdioAfh$qCGl^_LpaX$&@=8ajKNf1iQr!Mt1r4;N z4y}QuxCKs2apN17lC5vkQk~$umDvrr?*^+_>Rd?D%>hJyF%r$8mPA^L#BzdSsV5OD zz8`FfmLf_^?M6z|QWg}o)QjLbilsJz9BmE>mLipR@eFhS{XOU+V}}H8T!1TGB3lsP zCx6PxE0+2vV)(_6^~28ISIHc42wCk$5}YgOK#!GMN>|AZE0}eO%-*|&(Fp0${_5yx z&*u0KB>#Y#UhVcFy%>4yMAOJ5vZuqy_oG{ikx9f$6-*;{BUW67%1$&gQ4VE)LrT-g z78EsdGkA_-WFN>!HZrN1)b3h6OBxVJz+E;YQ#-FdEQ+_%6hEttfGB=);~ zB(epQSWZw{aN%(Tt($> zcFTmh462k9kO}joYy>!A1{vUlxeNiBFn^1LJDBhU_eU(%oePvY4@9YtK?XQZ+|R%k z1l~lTocvNTuTNI^$%J_#`iD7To&e*^gvm_mErLv#yvb#sFn1!AIbkkmDo&X9fT!Lf z$b`9%scaMG%}8aRF#pUH7AO;@>jc|`sT_MrSm*IDZbO7`YB5)0ce!tc?Z+p<40{SX zQB#kiSjJttZR}Q6J$)B44WY#bF6AIS*t*(+^xfgW^7EQ|*R-x(7~as>UD8liRi%t? zyDK0qIf?ggxo7YlS=Zfo5^Q)YY`6&LdGD9wyIj>7qCTzyyyDPmL^*c?B zkKBilUpmC&lqBTp5%wc%7zl=KFF*k^-|d1Wi_^?y{rKuyS0u)1wv$hVU7^*VDDn%j zYoq0VYRQ*#H6y^myN|}-+%im5or)SKAj8CEh!sx)OTsXrR`S-Lb&jAJo6Ox8^fj-J z9vzO}+L5P8l9O0UM-tTGNj#5`oaC`c{XKZxj!oSXtBjL*E-yI=vxqZwGrv}%j498c zSo)rr+ntSCKbud?~I6X>@v-x$kut8wlE&lSw@9f-4m#g*0&)X3G%aOTGiyKq?D0`ysJzeo37S* zGv!;u`r}R239M_?LZjL>kmpB~?|k01(kx<8eDTG+^mKO`T-V!-$K)6pqsM#N>e?Lz zSi!q~oPF#CuqkJbs>*jEA2{G0cAfER>ekAJ+^WmzK35*|+dloz9^5m@`^}IXSRkuXEW2h$9$Wn;|{VGmS8%4r$PC;ctc(n zK`Pi@Qzg`jx0fgIyLqZL-u!aQ-WL(s497Rhb-eei8>G}rdAM_!mVS2k9K+P(OgMta23L2t^tM%WxAvPNGUoA_wuDM6$D@I* zc->o*Rw=x$FKnI%cHbf@al=AC8OrKELbF9T(A`ERUf%`m44mM!vSBKVs>AeZHr?lq zkJ$&<<1t%|Hcs^T(~>;LdPW;#QheAJaOJ49v@-x<=W3iv@|>PFH@V7>?GZ0<2Cz9J zs6Bk4R-_<8+GxY5@-xkt$;jk1ApWQ4M2Qw6Er(@Yf*$x6kAO)QGrWU;htYYQ^JUMfbJ z857{b?!hcGKZsy7-xfvdoIS(H!`o$S$qNRy7-$W7u*RHd5k)@-TVYHU7vvNn6&in@ zG@;YK3K6c%-KEHHt`>J)=`oZzZ=#vqvb5!5vSKS8mZ`}qPgIzEW=cTR+025CEN zuxXs4o9uRSSZRr^pb)*(YLmLXE~9ZMV7aYCU^|P};~||DF`UtrX4Gs-XGgP@<}puN z-#PYvQsw86&>ZDMHEJ$yI;xf^j`SK|9fhREHP~twNr7!qz~oXY9G{S*F@CVLa;e?v z^pR2-Dnt+0Cj!Hh-|hJOZ8(rMfWC&lnhytP0lZQ;m&zTYU!h@(llOwp(Gb1WaL7{p zbsDDEZ^Bk89vdRNOXUsmc`i-Q9kS?r6zfVj>dv zDO7-xbh5l5K1QW^V;Qdj_7yl}Oz%24ilYAw4b!{Zgy}z`VS0N_*eZE9;=2XQ8=?fA zEN_SpKxy7s#(a$E@4_3y_9Ol)I4DE!9U<=)UrxQK5Ivo0xAw8j1-A>{2spbHUIgoJ zL_*#WCFx{&Lwu@9^Tsmv0qZo=^HHDyGi()%^fryTZFF9y%5N%YON5>~v=Tmf*sCo1 zF^JECgR1n%LRIPaYnUlE>ma>&1!5VX8bQ|?9IVqY*NK= zhN`DmA;Azm%+5sV)o64#ylZuk-q+z=s(0QE@b3_~-pbXI$|gXuT0lJokQ-vHMD|9) zrzsZ0q5SmfBp6x?Z=(*<3t+(y26~wi4AJA^eV{>jojSN4-hd7c!uy&8L-cOf=r`c~ zK?g0h--m9A3Q!L!0r?gqABEvbd}>es1|i!t2~iQ5HlQPAZ5hXA#P7x# zQQ{UK3!2!vtpcF+SsB_I;TNTLSFl@2fE7Rgd<$Yl3L4GT4rLp3cUVNhF2Dn(| zGWHF)QKr##g?I=t6Q3Pkidsk^`VgFDWk~=ETZNkhHe1We7ExCqDdV8!*r-reFVbo< zN%r~&4)X3ci*A{3*qmA7XW)j9a#b}TDLm{H<3vr61bN1WY}RYYHp zMbWN#>_}Xiz@f7FjKwlsrrPTLT|l1*wVvMR5)9G%heqkSBu%ISUX>2gtA^vST?=1J zjSkzERH{U=T0lJokQ>9cmB`+%_;|sYaCVFjUIpMV*3cu1p_b6QOrw?+c*!5s5IsIo zU@K-Hw()-qN73{jgR>1^AA@@&AiS^Y24g56As)`xF)M>|?DMRIqX?dNf7T4se;&>z zZZdYiE`%d1{mbBNL@ju-z-3j;VAD4lWdpG zGs`RCIGNJlDB;{8`j^5XqpRROB=BylxWd{dSnd$%*PCIBf#;A93%1)wf1;nF&ZIX3 z4!OYw`e$PekaeoC*3&atd4pDdWc^G_&7@DdtrdL((T4n7L~_%7YWorZ!w%p^?T?u5$!|&TsX8+dglq;@1aj&WU+o^T@7bz&}Sg3CFKs0 zq?5$jnnlMrc*)t2WARvVOEk~t=EHG%iDY0xNN21Fj%x=ZTn3~Pph&JAOijO?Db04F~Dr~`lqO*+#!;5l32Z3bkyT#EQZBn#jRrS@b7zYv3h0f034SMtPO1> z4LnP@WvAVVBsLKmk42#E#TZ-~n@gBHX-7OUXUnb6`VTLfH26lElvYT+~T_)8>4&RY#o<}kslZ*)j^L(Z&|tYc@Eg6B5wLO zNU8>UH^GsGK82Bmekyi(ZI#MY&%)WD^@v^shx*BgOt{9l#$fDzxKtB~9D9wyII~9& z%IM#K@vk)N8bbml2v~}d8sX?jssu=7hSyLRn>@y;>+tfdQVcK8DwkcJWz08_*Kgpk z{-noq#xO;;olMNOhG6tUXo3_L*G+(KmXx_eRGwt}!oi}WW>>c&k;P-h*tf zi;u^xuYi*-G6~Hvow40;GOYpO43SFUYj85HX^;)hLyRhoX6ujQOF&AoG|h@9aX@pi zx>>o@pVm4$7dhUAn`p|4WXp7md>q2aLW6NMr8Z=X9Dj`~p3f@0r6P=UN1Tx)Zt=06 zK7?aM(En7zc|-L7A>o-r^xaZfvxeyNo`Xx}577@uc=izeED0A3(a(|aoFV$tBwRQ| zKVQN{L-glK`1B$Af_Mp7JIKUhXB;gFQxa)JAC{i=U&LmUrRGiM&z*7R7; z$-uOzL=3Hkr_7^2%HcBtu~~*O-fwcO3<*$d{K}A+l!%R1FC$}%GOMUEwR7y_+7CT1 z#z8}jg|k)$4k8J(3I;Qg?Oa$|_L9YiC44sn&V{8_Qp+eXz<1j%5I&EMUj_$T)4Lsx z)kOae3GWvFP7|kpmx){~`QVir9@$@Ue< ztDwCOhsrS*ZH$eAAp4?-aq2SsBFoZp_(c}=el<=W<5YZjc~+5zm&ZabLMiO}S!O&I zv`KK7>*(>UyM56{GBMktjnPL0iZ0qdg8>f1(M(jHWV^{MI;!=WbCI*fW5q3HY$0Pp-;G}UVYcLiz9~s^hv?rc;n<>$k4!u(y?eKh{zq^r*dk0h!5Cur zGdPH&cNi{7^%_GAOqgi#B@Hn=F&a-EVt5K1($PBwPSP>32u{mS9%8sA8Xqyl@G>~0 zqjwgZq+{ShIGt|95W|;5<0FR{-T{Yn^u7uw=@|G9oK81#h~e)=<7q<-KMaR-^nMH{ z=@@tePNz#7V)!@F_^2UXnmZxNiNW8hpkoo@6H!|S4P{}96);E;~qg>aINfg9m;I{y&E zH%H@RhZz1A9MaMI4xFT8;5j&*ZtM`lKa0l44>9~Y9MaKy15VO0a2QUf8$ZPGKcn$u zh8Xr7C+X;=!bv&?PJz?uju~QjdNh9Q5X1R!$d6tDoTOu537k%M>=47tqw$GD46lMi zI(n<&Bpm}=;B>l)Lkw?^#*Z6f_zF0rqjx2oq+{T2IGygeA%?#njZYrBAK{1Ka5WU& zdjApn5c?NLCi)Z6b~xMqANJk@KC2>a8$VA@5}p)DfT)xJ0Rw_U3LOn30Yo5xArvFU z(2@{I!4#TENeCJh3~O)1w!5yvs=Kc1f`x#EVgXq(Q4%AfOT|$>Z`7Y+Z67n`Z)V5e@@b6AM~*XsJ_?| z_2**^RQ+qH!h=+wVf*`77@6R*O?|8(s%_a$KGxN$y;%1?)-|dPSf4&toT^vWk&iW0 z)fLO_V+~W~XSsZ=c&{>f9_2WGd;p6F2|D`}OrgW!gY$iK`LZP>)H|0b1S%7E2dDfS zTr7W2RkjVv?W05{(TPzoh0b_b=<}h=p@O>U&V+?-IrE7By74IASg|D9W12j zlq;A*XEQ7$eCcvnpfugrVIfUtn}R8HYG5JZN0);ErRn|?7SeQ%E0{t@x6}rIy6sfW zZ%}S0U`W%6P%wqgP*~_|L6;Xkb<-UW3u!vZ3Z~G>frW&dE-!aV)4dHA(sWiSm_p}q zSV#oWeZOli79U?EK>PQes9x?gT+NtYKdrRk=_LYmHe1yktgp1YwHU0$-3 zrn> zr#J^TzAC4~V=7E|H~_XA!pKUYl2H`?a9b@m$#Oq!F03)!7|U(0+zGqUi|5u>ZdB!7 z)(^aRZcgP^Q|?CPHdA9dB602jO@`%;Ph)rh2sdcH2+Iwb#_R#+UPt7$g?TdZm9WNe*V_QtA+S6^ z*ccuIJPDRt!MF*=7;m0ihKwQ4V|^*l-B-qtqaJeJ@;uoz43-;Bcqr*MSndZg#ygy+ zo*EP9$p5{OJU3(TAWO3i!^m?>Mjq@o*pFb1;rWEaVKZRMV8vjYMF8v?*ymx5;rV$d zVY^}|;r0t|xyY4aMW0;9)9QZ0H#6FanP)XTCp|f( z$mvH;OBzF-)0X5pWoZm$pM*7&fQILc9Ot_@H^w&D z!g+V)y^^<6-Y1QD17n`O%ElJNV@c481>bb|ukDGgZ_>6GI?78V4 zLgmQg#b-6GFW^>JgE`Nv5ILi$sa3yD+b4?tD)y=bNY= zLLDjTRWyFV%gdXC&mzyxOrMkIRb2H^MUMuPW*X~Hr|JpJ#Ow8Q<@I{a`*&rtR1?=4s=Jv+392LE?{PlwZk3e z#sTkO!WarWkw#r7xG z*dwI6mt=gv6$W8jxuW3RFILHb44 z7I*tNdndTpU1Ou|9RPoWV30e?{$hEAU18H53pbT+lKqr@0JZDmf55-UKCFr2dwz_w zpGCwP7Yh9}K(*2kF?NFe`tq?G>|J)T{l@a08|)+YSoPh>pC8>7F$_z-R+N)P0pYP!0+k{Q-p?#vW-NQ>tUMzCQ$bZ#63jH@< z#I+x5vB`cB#n`ee%6_0lA+WoRyQ}@7s~m8PyTqVr18i}iON^|xmEM*C+}Tgmdm5~o7lZ8q5W@Z&S~+U2Pm>|gBS z*WE8{D0ym({p!jsOW)U(yG2!QhNp6OTJDGk4z0O=VbSY$#Lhn*T4QJI^y%HUPjuhS zus)G(Hy4ceiNsd|i|u8_MRtI@cuT_IgeTqE(-+(M?wxi_ls)Od(4-_gsNCH)$=`DN}1 z`|#2&yX+_Yi|v0bJ)C5}5Adg@#dd{1div6h(e~5+#hpn_b_whi_8OVw_C}UqEpzGO+PJ`xzeB@!TivfU)*pmZsWo z`ER7k$BOLya{JVZ6N&ciE;lLL{&K~pdr>h^@hGU0`BV3>=g?{CE<9-Wb4P4Ra4)l$ z#ks$E%FVIOXO$f?Rz+Q=yUc}&?%0S4bJj+q*^;K=-*h{(`1YhV_-D5)w!gQ=rk2<* zE*Wd@ZGlUE$wvF57O5xQo83>Y-g?FSKKUaC%Gvn$m-ev>`jJ4(5eWgDH- zWk0zRt&efay~*9ro?2-CbA`Kjn*AewU;brfp&jZo--Xc~6&GjEIAPb|DtvQgoLz~b zVMMV#=foL1_{8z!$1sqcz(Da6ZU7iccn3JUIF+Nx8F%Se`(AX3lm273+Uu4U+TZza zac}nN-mcs(!{7rN64LJJA<-zkAxgeMR9# z>ftcP{}UJ@<8XseqpF>8;uva)6>)Ou2`A?U)}u?_Rw$cqZ|jpd(d{1eST*YM9!{wd&}3J*7IsJ%GKzG7$L_%eIxi2Hf+*H^ytEq-boN8zeREYI;l`nU~s@Q4bTq#p(GxQT;&6f-^#pRXRD z#}A8ZF@DV&XClp3p=0xw@-Tmo0-lwked+v;hLxVPuyCn5&VxBp%G5`cwG2MPfv>SH z%)^;O^Q`>zjJf#2YoWz&=^E|)lDC${w>d`Pxtd=f7ghSpcRD;HFF$8?p$fwxMmLPl zDaf=I&Yp+I5d!@w^cfm^Y~R- zm5tfi={TOtGLNhR)RF3xP*3)zG%Aj6b_ElQ=4ItIZetxj1W(%@w@8d`9*u3 zp`0AkpV3X{AvS5&iASpk=^FF+J>~Iq&+A5vxH_WebrYuais&CTBq}DNZ%k~zm;wD_ zBYLJUS(u)WK9E~DJG&QuM_|Utx&Y&{T+7|TzP@+hM~K&~m&ISYob{oJfaPq&xK{3@ zR`~g4_=HA0W=fQqg}<4wBU**}Bn7te9gZnCqkAuS%r2^rB*3xiV28mbwsM#FAVO+j zD|h0KR=(E;rM7a906>`08-YCbfPX|QcQVu_22E_`Yr>Kd)?J59P+?y2R{cuYi@y?9 z*Gw2@Ig|;-ud!sH5v_t}sr07cFFu)N!e=3TmJYu~!tr963EzhB>vZ@`2~P~N27{yF ztMp6ZqF&beB(@4Jv00lV16u{7cHD{Yu!gR0;Nx}-ZORe1Io+nN>JaYK6`SW;?|KYH zg-1dS>Ug}$7jREUZvw(51FJlt;5ttukP9@F%G2;5lg1N}?WXledl)@Ddv(9o!!{3I zByA2|s`V3tRw0~*uP_fpevxJ=>*01gu~q0=-^5m7C4M7X_4e5i*eVREhoVM;6W>Mb zx7pw9N>?*{Vo*l2?9I)xy5BPo=F4499}V+))5+$zAXQhCnT6?^YvHPV4sYp~8TdA? zs!>6c>3}z7H(zHma--MUCB8oU0(T_7lSolsE4`@@#(ZAL$d0+)Uh7-p=QB-7zpLc= zl{O=9KEKmgew3Fyx|qnD@7^?$pW!9WmmNjkd{(BByw43@5xn)Aue>ypFKi_4>GOEE z?Dt5ok-SfySA^j~b6Hio@Q^iqp6{sT>bNC7O9C-)To;sszx~0{m@jNVw_Hy>ebDmK zcN2rI_jshewqd$_6XKgZT~}iJtPXs82b${Ipy@kQ>zcMTA6EERWFs)`{Zb>nWm<2d z(QEQv2U#94Z}jRuvrE+qGmseMb4WaBF_WKAT#Si2jizJkC_T1DAe@Fr^2~>eG$|4#9s{H9Ml0l*_+RhjJ8HhTrjGuSE5Hr(WR+N#pqWNaB}cXTx!Tg-jzc!a*E zp-QyrDr2gQcj%JVHL(7i$9E9K925gI5jISuVlf$h0@ppcYAyc+N>!YVvTGCwr1iB0nx;Yr2^S|^ zx^OoOcfW9t2=}&dyM;R~+>gRtgI3k)CIIPlCke+dqG|3i;hq%k&%*I@Ra)+daQ_tU zN8v6AHy^!1r@K_p3Lve8U)Io}uM4+ZxDSOpBiwo6B7IHVUO-ykXdqqpJceGk`Ax#j z6I24ETmLUWItN>Tw3Zr?s|V6r&I@-b?vpx=Za_0s3-%OlGSE!Lr3t!OP?4Zjf_Or- zj`28<*8CQb?l1dcv`=X(OOVDAYHbuK)P(PKst>?AYBKufYOwf zML@F@S_^ceLJt7VR_H~M+b!s@pkD;dX@SK}6=S`igFtf?cLYf1;FzE@f_&U2SAjtD zRE+LGx@=KExUmg1fj zZl|CsAl(ydg$uxQk}i3epe};06f{84P(dj`I^ESk3skxlK-miI7p?`y_#DNx1L9Lb zn8oKR%`F$iub}F@Q~+r$zW`w+3^8V6sMo2L04-45W*{wB3A9jgyMb;|=xS^a&@mCjRj9rpns9rq}Zj^T%m0XjxEAT2i)NXN|p z(lOQn=@^d#O;kC3TDWHgy$YoJ%TD1A2zOApZ-Mj`FgMiX;9(%0##2B#FE0V<9PF3S z&w+Ffz7p=JptC^vDt|u5|t8Isv3(-~|x}mkic*fIL@Iw{D)R)(SI z5&qWYf?@pe-^Y&(3gUa3u=oeW}RAupm;&!1T7G>M9_nRo)q*UP?74- z$ANU6UeeX1(E&);_&&&_D!E_q_eO>C<(ca{py`SW#*;^iLVv*>=VpbX(3@^js0x4e zUG1QtIzfj89TD`cpyPs02|6q2CqWjTZFL&Hg4}|F1%(O<6Vy&nxS$9@k%D>(>Me-p zmFjePYNNQ3?%D58(y zdJ7sX=vqO^f@TPsFQ`z^DnWM(dPvYSg5DQYCFroALHh-L zF6g|VE-@y5R|y&{=vqN3g3<&%Am}MUF9>=~&@MrT1${5*7ePU>CNJ#-^$^roP`sdV zf^HO4C}_2y^@3g%^p>D~f@%dF739~~&^AHu z3;I;h5kaQ}x%!(tw-VG*5Dva~uIT}Sh6}o05DpM`o&Xp^A733^x1enEAD{we53K^+E~bjJ(2QBa1U0zvBqJtpW`L4Ogn zUC>@Z2L;s&IwQ!&?ONYch6)-ZXo{d|f-(ga3c6p=lY;&zsO4aj#w9}x>MLj&er)L+ z{9e%4g8mR^LSGgXfQLyPBV5o_LDhm%h8ek=1Z@)3KHh|u3HpbiQ-XRX7`Xw0N(9{_ z=uttx7j#U}O^HU!B0r~t_AgyJ+a1RRi7?7@m z=YX{4{lXmr(wa{TcMeEv_Pf?-4g}I%TjAOPY0W)=wB}^t(txz)eBl-WX)VP-I?uNY zS1#QBKw9(DKw9&M!qoz4&EE@m8c1t)jWU}3fixE)To{nn+zm);P7-b!kWh=r6P2=v<`> zmn&QWkk+>vNT*vS+=IgH5bh%&o$hf#=Yez@zN3vkHxOv#pdFA7?Ic_e;jRMGIT!+@ zbC4+9^};O@t`tb;pd3hRep1k0LDfK7a}AKr%ReRbgmCADz_ z=U|qgJVDEVbgoK(w7%PcbPgVr(8q-Pt#Ho)=@_p9=^Shm?gQb@3FjVb^3oAV$L#{7 zQ;P=DdFe0QP~nCH=@`jCI<-{cN(J2qq|5tz;hqQ5Y5WyPr}3I_Zwt2@NT*Q+q|?9_ zSBL8fq&4@0qqW3IXabN-+n}Bp0nG(8KP^qB%1yu-oSbE@cmq8z7-q3zsZ%lZBfna#<3(R?wXy_khS%2zpk~OM+ej(q(&7xc7i`{yr0~ zPPiWhwMsT+YYU`f#0W}|&@qBi1Wgw-3rNS!5pKC~cL{n}(6fSG5%jj8{elh&`lleD zi6+l(Af4{zg5m{D7Bo}PErLn~JuGOmpzVS_5mXPP`_*^C*(oLm?F97^lp-iyP?4Y# zLAL|x7JLv$_qE4_dqL#>EZm#I?Go-|LA5|y%RdAi2hw%LjTIUN3hE-Lr=VCtR|^^; zXq=#QK}CXA3c5qkMnNwE>6+Xk+&h9k6m(jU?_@KswH4G2NS9-fpe=$9i`);wwU}aJ zgaPRq>LjR#psPe~x}X9AYkKmjk5JSSnnxpt}Vst zmnZ;>DLUOYg2DyG3c5*94vR z5_(2L{jofxLqi0$6VwSvr`togK|s2^*9l4%G)+*RptXYT1k(B*0n+I{EohUVmqc!h za65o>y88tk6!f*A^MYDpNlVA*DQK9W34&4u64VK3sJebH7cNoI1R$N4Ny6PC zs0c{sWwprNDd=87j|qAbNXK|ixX*xe*}ehNwQ)|6Z<@(L0FVw12huSjfV93CksBhR zV+2hSlr3nvptXV?0@AgyQMlIx?E=!Z@quvP3OWv?^YW9(`OPvhS_!&LP&kl|(OtNi zK)P(%K)SrQ3R)|2cL}!z79aTHX?)@CMXF= z*G95%xq|Y6bY517-0gzO1wAZiBan{qd*S{Lr0bwg(6@rl3c6~J$@A4fI>s15lYw+j zZxk*YNY~mzAf4_ikt>tXhXp+?=ruv_2|6I?2#~I|W5NZ`HL0}+(s}7DT%4c;Af1ARQwF$f;)_ovZG`4Hh&;(0oB_1>Fgx^YQ?Y)?6XzSwSxedId?ayJ2KExABC-Nh1mtAySqq2Imr@{I z2lol85V>cB`zw%+u@y+`+aq#+m(VH+JtCq16z+_0=Yh1ofSXNiv(jr3;L~~w*+w~e!Qwvf44!`1Q?VgXosNv zg1!{gA;`qIQqa|c`i7d&;expPSf@KlP+%Lwbr960t>K~teJ$vWpca=HIUbp&HGgrb zLEj4sxXf_v1#usvjxkKoj1GpI+0h_7+#q)+gZ?P!&CZ5-O?x);)sml>59CuP`&a;z}yCF5_*$uf|xK$GOG2xyNu1dIr z!krcFC*i_SyE=__QqM8M@$=<6&pgV~$%}AHgj+5gKUc2ho)xaAZ8+|@)cVE=mn>YN za7%=HLbzvy+bi7Pg|mE38ood}jTqthscFs45{~ajX|7zj`-FQ>IKEY^<-Qf}xNwnv zCSAT2rR9=^>^Nbs7q!9Rk#_#trBjH zaL)?2Nw_-U_>PlK182KBY4`$ZE>5@v;l>GDZR(3kB0-9eg;Qb$UY==4P0f)dj zrpR$!R)od(2AeY#AcJAi*vjItN1zB;#zHrPsa1cyWxfZK0PB$ng8o?zm`-4L{d#1$ z%ek%rGYL!ttVbpXKJH`oFg!eVRRiWp_+D(lyar!g1Ev~2zVGkRa}vy~226YSwl!e- z!pFDxJ+a1t;k)@BWFi$j)`34NH2#+2g zh=TBn)gBDrulLBrfZ^Nj9%eWgzT56$W-wL*hNA%ARrknj0K>P@Jh-NEsDT*y**5CFnqh)!;GU$111*?-_G{P@cX2E2iwDJ1;aP3 zJTMtc9kKWo(+ZI>&G0zAnVXG0NL9|l?_b1BSXh_t)plY zGv1NGPzITbtC~xTBQ1@(T3iu8EMY^F>B!(Q5qd1DYhsEV8FYKdY*)R%vCwKq1{VTk zZfQ~`%HQqCs8Q0@tFa2@f6$S^#R5I^kRMFqHZspRGL~h=)mNJ^A2eZ(HDTORTB9eT z2{W(>!~2LfCf1xLjOPevBg3z;H;nb?Cd}?84By&l80+UIOe;38GA6CaCd_~)%!DRP zRug7*6J|pb=J!pQH=8ikO&E@{4fD*mc^fj_n=nI~FcX?EX-$}%Cd_S3n1`A$FE(K+ zn=o|^nD60>nwLJOC^Ic9HzUvB*>mRPr!O)-oKtJy?EKj{Osl|n8~U=da&c;{)>crM zZ|UJBa@n$FhRw*wIjL5fb4pV|Vb*&~ zPAJMTq_LMXL zH|=6U>XfbK0I%U1rk- z)D_pb<g**W!?wjeD(bME}n=}RW(B~BVKW=vGS z*nu%IOyfrv?41M*e`-UTvUU+SOeqR1X5;h}d zQ-x|U({x6Dx_9qqvbYeX&(FI)qe-$jf*v=+izLc{Piw~gd|uJQi-;i&b~i0Krl4U9 zTqKSjk93q@E4OEmC2FpDMy6+9q(MjGoXq^ZrH$LDVg9JLVGn6`L`*I!n6Co7%9EU) zuFv%JzP08wuF%uC{GLbkbq1*WIr_|DwEQF+l3%ES(c89Zq4z##)-A|eLF#DeP!6cG^{6Em=X z|A>hGLk9L!f)TR<$GP|`2)}XhQ>cFl#|`8Ek?T zIy^ddpz@nPSE3AqO0Hjw5mD~#DDQ0k$n-Kwu79i-!#cnxsZf2RoS)(RRjcF% zG)%WE(skp9*chC2|zt3L=S0Lj>!m|0=an&@)t9F zO4(O8Or2D6_-x6y?P{)d*IXM~GdVJ}de>d}d)K(gF#7IV9vODmjL6Wky+2fyeGssB z_18G2bYwt2+KvYBuPR@SpNht+ zQ+|`Z!YGyCUc?Sr|5yA)vaFB7x25DEYwCYNVpa9Mm?jje7<*KV-|844YhF?SbrnN? z&Fd=0QD2IeUI@9PihfmN^-lq2l-Hmo?iv{xMs5{aGOPxzS-%!x>s|qcVkYo!AC>Do z(6!&Qy=%fFk1*J{P!U?c3&E(Q(lWSAu=-g2P=VET^)V{E#t)Nq$XYiQRG-1Z`1J%; zA4F8qh_b>V#8h!MYjKyO5!oSd8`_}gz@Zr)w)HZjyy0vF8{gnXXoRb@D@e61zDN7>GL9ZfV7XVpK^R!6wJ@dFN|m$n4OoKsRiAB z3VR6O76n<$(hGSYHMApYr8&Rsg2k3S`8hz#FNb&vv9IOtwy(!A%2o?~lDIulc^1yj$6SIv zm7kgi zQ@%D34$3lNGnLPTalJAq8({-k`XuBfC>vqQmj+)jZ_&I%_#%TX(-)@|S+2nW>?Oew z`~%zB6LPf<;o=Hr-mRMv60{5-#92V)1ysi%Uj368DRVy6WvfW7xDLuW(v}5^%~7ls z!Xqk!ajk`3k8plSFZ2fL;nmj~zsixW;IN; z@g-gY8F=2ad^?fXftIVatGl~xknQg1ZtZI0ABsl~pGYexXc#C=7+-4H?yG~Y2^xd- z58t+~pdfl&@c6ZqkinRu_P@+4tc52GH528EZ?BbH(SA%@CX&$Z!Qt(xB*0IU_#ojx zFE57Gp#BX)gM*OQHvWv)(i4K-p?QqLWyLP5wd?-j?PDPms(pm5J>ubb8fw$SVsY9w z%vhYt5pEp}yQFcL(}p*q;`rfD_6lA&#K!Q(I|kNeO>c#u?y!JY!WpO`JI*W(O`Jf; zGakNNOO>~1mN-)I;t_64$79Y)g2F@Qfd=-w4p3LY>76P8=$<)Fm@eTS=y6R%L zk`Yar2>jKmCQ?;LmHfoXaOP>~(K^u+eWHqsKciuJUv*hGFnXGba|4}Ouq~{j!ho|K z`iIj)MJ=qtg^Hj@=i~-NQ--Q0!Md!ebp8yBJO|U|^Mj)+E}R~w<>-nFr)LKAQJSt- z%5jZTjte&_QyLMKF{KEw7F)r%f3NINVM^mgnNo$AQu#ZwrgR~ubSA*0<)y?V837Op z%Vsegv%%`{<~SyG)y)@X82pAy!V(9z{9&QdwWw^3k_0UfgfY$u zEel7O(W3#XAz0>XkZ&>9JSP|#C?W<#@<<6<9g#6i}__{+ZM zZ!yp8m_gQP#Lyh?+U(Rp7WWBhR4V8ur!?duw9&uXqw#Llmy#| zGQAvML+35W%a*oXe2{IL);@`X_EPvz1Lh=r|HgFl|IvD6gGcv&J5km67g_oAN=eV> zIfQy}#Qa=#UZ%{>VIJw` zlg$gk%Oo^2KX*N3{tnx@trol#PC_&DbL=~pvy*xmCD&+v?jBq;r<#*%W`3>&L)wo{ zx~L+ZZln3R81PSX=<_lv-9ZfTm{Wi}MY$CRZx~)hN^Wpp<^Q!mN^VHM1|q%Td$)B1 z3i>dQ7aP;xn;i+yNyxQx($(cq^LTm|FO;)*lOugG1LMZ*mhaFD7ecI%dtO7lvdYz8 z@aZgIU&tDsD~h?9J9fdXYRM5}%WlrRI583HyOkmL+^b??aw^2CJQud^?m*X1m>Dw`4ME;;9e2_)aD?i?ppPN+Us zy{&rpXW!I(8gl2SU_wf(@VBPA^rON)HC1Jpi2H10WU!vttJ+n)>tIXXD=-Hb68n+P z(t6IgRc*U#=1;qJRB!v+MC`Ju@?+)os$}$a53N0V?m|Fy)j2AvuB_T!y{&4Op8cxY zbx_R+(oH}Nx*W7?ch~qOJN{J1okf0EZRLs?)jLW*s%qJj{Ch=9Yd%G$Dyw(Z?ymi! zw!XdynbGrNoZUjEs)q6!*tMe^lYBnlwjnZ-k6`rOReh+Yc306nM7Z%4H1*^UW zo{QF|QT-~X*Q%?&K{@N|pEnb1YL>0MoN6p<6&h*PG}w5{s{3Vl)YtKg;+78hZpb%7 zrzrC=c(nySVPwj%&)a;zJ-*i7^T51O@5bMFZ@2p*$9xojuaf&JzT%xFdjlTX5&y!H z^_||n<-K^{A0K@9;fJf^c}HZG;qU*bc{q;J|HdrbNM4sPo_QuS?{=|ix&J})arG+W z|I&QiS%`8z?l6WCXFl#v915NJIAT2?*8&wH^KqX;qJ^1{+d=t@&%#l2v$Jq$AhsZp;Kbp=}9qS^elEf z6Ol$B4pG%|w<#ZHom8yLk#gWXOzbJ&Kk0*Kei`E5iT)kPi9O{D$CF?nCZ?2U6g@XP z9zWd50y&YF#cCS`Ul8y2961L;U$CCKTfmyMc<`E{WT--10Mn28H=O+he@aW(UVoM8*mGi<6*!||8XWOVtA zk2x_qb+DM~@TGf5;SI|D4j3YQLRp56L=n38D7-&+iU>30XP!^lTZ9WufDAO7`E`dd^=uCm_VVw^C z+|^9ZJQZOjbn94QRJ2DN&L}|zouROSO2z4xtScjS1NiA$Y!jR}HDoS3z#=l8-mqOP zPeOI^R6@VGA9oI~7z81H#tCuM*PIlbVbWn9F4xNGFgqch?67E_JQ>-6*6ARfjJYB^ zGfi_DcVnnx%mAR73X{O(MhP(TMKmFORWB+djdV5)lbSQR94)ytV}y!t1{O~)&5-0_ z%wX0{m*3<&qnUhPM0dlyv4Eabnuaw>&$P{Z03X4k<>=JG2H^WEKh(Q^_}o>&4tSYv zIXaw355y#_zY|P9F9xp|e}R`*fEUGH6rno@9rhJ(CG_*E@QQ&#Z=Jc zJ5;t6u$w2rsSmhd27Uox8LZ2iXhtZobzly`GA3O;K&6-g3KE|2DW<|)wxB)3Q%r@q zUO_{JGF+gV4T}kTI!qjcmz%D79PrH2F9uZ%i^z1=zy{#s7Pz$@kH4aV-a17sJp4xY zgoMZrYLMZD8(<0LxsE5X$1%&nRxp2nEVRN4tgb5KtZ}b6rU4oXvM8)*FF{l94F!=W zWlVYjl3s<;>_r(JUX)S5wo8KL*j@+spAKdr*29vg%eu$9z!I!6#D#lm-*ZCS>udxkN`0esYFg8maz?fRh|W%%`pc70Kx_kLx$ zHYUEl`BZ88v^9T>zTt_jCD%m93>iOn{E%^((e9$G5_>-8)&rw9+tE>WR%*XV3$7fO zV=sz|P8v7f{iSx;L}u{19fn`Cz5bBZ2Bun8Sng*L?Ln_7jMw(FcO~3tV$Q z3+jS8)Z7(p z_}ef)N5T9X)7$^X8$Zr8H-DD@hcj@I*>=pOFU(u~e=wIG+c##=pa>f7byYu$(>mgCkAo6}r-|g!6x6F1;N_yl>f=yi7tfbLk(TQ~F|jf4Qd?OoWrr%v}0? z(8sUhc^f6yXf8bl!)FE_s)nIXXb?^7Yi2I}fy*sxv?IqJsPr|OOWzCr707uTCD(W^ z9SNmgttcgQ;%FgMz_SNUO*|cn2WK76C z!Qeyg8yOiLvZfc{>ho$J>OH5C4btHuYYqXHUU+w8B!_e>*MvpF2|q$bSOZqN$ z=SJ3HRJS}5gV%8=8K^_rResl{$908_IENq z)(zrA*7pYEY%)Ew;x=dcedo~*daj)5U5e_$yuKUpK839|`+C(}H+0coeS|xGGs>|K zIkFU+ara=3`si-#QLSdK`!K6PXn>G4GjR*>B>o0`rDv9IcBbHul^=a-_4x}I;zxws z^CwgWG4uEg=g6zEtg-qWUturX9kM@c*t1&Z)r?)9MVnPfrfT;=zdIba z+;Jar+$Z4HV&UYV-?K!!s&`cFsM=jy3HQBfzZbzlS7p@>rt6)PgC87x56d@Lz`-(3 zC1n~*V9}`M%ZOj&_bUEk5$V0!Z;-by4z}C|f9-ap>H9H|g;l1(sE|-Vm3n2>_Qtvn z9%4+C4GTKx3GJ|z{0J|p(o?vMs_Sa}5*YbNbzSxQO{xr)TlGGoe}KquV|54xR6`G1 z1lM#7mc;H!2w9)+T#xHeQ48P1>R#y#bkeFrWtBC4JE6SltSJ(f7mfXs&vHwTc_Ob)c_WobO)~#p1*?<0Tygq)|-|PFX`*jzpKDK%{qpAj- z5!rwLk8IMieYN#JRO8|vy|22mY;RR%WnEa~%3#IrWqEg3)z=>7GFFxH9c)<#7Ztm$ zYWu-2SYhl2HGW6HqN8*_u3f*gj-U4?uHW%!pxRwk-=Op=u2b&>)PK&PUA!La7obIW`Tv43Y{gqdYQ(;$T!~b5XK`7{ zqgiadthpQ2!LHLX72Lr-v+x%yhPKMYaYm#b zEP^v?qc5p)9c+ngSoMRLcWn4ye(u5r)oIGAdhOeP7Gvq5A)khn4g_6N=Q6`tFI)`u z-N4mU^Dc>-*F70XCUzT&`4&LQ^2m0skkUhtz{>)k(b=_?zi+mno~`=Xte{=06(>i! z&5H+4Yi@?Lvyy4nGVyzG?}sCf{yc6NVjGiSzj`QMdyYHq+4#qbtUKZk4_aZVbx+H3 z{J&iD+^b4vH$K=y=xCgSQz}$R#LE&?3h(lOB{WBRi5eeVAWT7 z7NAmsmSz?3T^G&t$K@83>v(wDhuZ$HSt>4M!&_<#%}*ZIStjOyeU2qAKsD8{3R@z6Pywr3 zc_(Qvs#|&U=`EDdQtdUNoOx^YXC%iNxGbo3)}+7GSx5%ElB`~rKA~COfA06NKPk4= zC}cGhA%8?j2wcl`P6vE|fHv^&L;wXWSAa{0976~v$_`0Ls19iz2ZnL9{AHT8S}k=1 z+oCOXP*+FQ;|SsWOB6!d=oRX(dX4^i zCx{mdlewQkTHj3-d<=>GFT7O4*i^SeelGE&{@Q3N8P_V6Ki@m$X5QI}mW` zYv^--0MMZ^D%84+ZF>fB+FipAYqg)V&~lCTM;t#p0zn;^m-h42bvC+_qFE(EqluGv zQXcmSJ9J0A_C8?(XckbJ4os(G9?pnyc?TSi?})tw4LK`;+yLwm@Rm#%(Q$rJW_lXl z+QP;IrQ6(zJL>m@G-=)w>WFXLx+W?)bLZ?h4xKqgQRb%FaU7DFq$qR0?KloQ5hg3j z+=@Gn!$yQDiZXZUj^nToVXC6c4ZLGAQoKP?=3d${87ZbJ%DK(H*)bU@-l!;Z2kw}R z6sIZ5xjDbl5nn@fO;?n;Z+Fb*R*D&lGxv6Kyy#{smK8k$yRa0CTDnQG=KkL?ZxP0t zG{u=`g^qL4+Org89wR_e<7}g`j?We(p>U2O&4WkBtVP&5V!7sesr(^cvs5w9sF=ma z9fyaObj6#;r0}M1PqC}8$95vHyaftw$uG3*Kapoo)&iZqG!)=OgE_gDZ&!+_VD(ZU zdiMXG*RVWWJuvEW`v>31a$dqB41qu^^UheP6)0r!z~SS*8cIDQotkWQU~ zGwB>wa0Z>P6`W3|55_VqX2#IXg2he?Y*C@@R~@>Sg>@aDL8{p z8Z32PhD>*Zg#?`*3eKd{8sjN z(-{tnO)%xzP>l$lZ6H@cA{rL?Fj-^6EmW;FlQ-Yvu+F9yYz667K|fE53|1Q` zwC-*dK2B=P;={nND4nV`bra4Ujy4&o+l3BqtrVuaTG2DuTvJuiX0m#3S4ErYoh{vo z(wNw#u&uqaz?~)G;S~>p)~%mLb!=ysmBzMZ%K>^cr?KI-YStvehles)R0o|WVVOx2 zJP`iDuwlCEAxX8*L~SkUR>6=7u$?`j`BuM3o44FN2{9Qquim&s@>?BXE-@Wo@_3a+zuFtbKTh9bY6;;TRS@#rS!F!D!eoL^e^X(R zGM!x5V5=~aHKX_DusCdiKx?D(=y5!rem1Jhnq`XU9c*;753_Zkn+`PvShtw%HEvWZ zPYU(K)PCn^Z}FRhaLEpjwU)k1PLoX=pPs6SmjUL>2$B2^BukE#|)q4NZ6fF-I-Ng$Yv%%{Nu z(qXx{`REqQeW62-3VK)RP&zCn)8x4QTSceP;V|T--7_jBoBH?xwd{`)`&#*{msAk3 z9+=R`9)TC^@Cx21SP$HVMOXK+6w?yC5*$f3%qdu3>lUaY;-eW!n*Zq$nMB+`uKF>*6$yKp^r^Xd7dK6 zwkBq|_`{y*(q*a0Ba6y#rwDJ=45!QcGxo^ssUYC?5cB~$y6z{k?tg}*INh$QE>k!P z>He0&gxRxD!=}n8%-+F10NT?PWM5o20WVXuK z4Xiv?7+9trtdhOKR0UX56M&v)q8nHztOu~{yv!P)Qz2FqfX={FX5cQB>Qp-GV4auJ z2Zz(cTsbeL4-Th?Z?NKRc4j6>Wo9ZJwwA;*O(*d@*`3Ne9qSJ&ScSYI0X^BB>dEd@ zlij{f)p@;fZmQ6WGF9nCnJV?7Ox1c(ri#5N_KdG!(T!s0UV=*#y@ZbQIM?5_hF2_8 zOfSl`ju++WJ;|oQyh2S)cu}TCyeLmslcDBnY12upi929j)+9P?S7(^wApoYCoj3jm zhnpAsO>;YM{CfgejRC3#Cb86ks`)0-Vbgo5Ha($f3tW|q@#w1f8 z5MVt#q58`t@1DVK!ggY*d2l^3U9YYj*SIUkaZi>q#VFTWRkrDL{s`;+q`>E?-8z`g zVI9mzE48QIXyL8i>j8;pzcU*qcm@2cU~%_16s70EdOz6E&jcBjE>pyI{sxa}?gZyq zl!0}y;rf}C+3`Hgi4-Nyz{~j zBgcE=IauBZLt%LrybQKIY)4oQ=$FIxf{lgk2g}jjnB%Gw-3sr2V*9IJH-XAu-~M{B zb0)sETwBUMS)DYl^pQL5B^mlGi44of*JqReRy$x*pAx%GM$*gMUOW5RNw6+|cZRvi7qpGVIRo2zSgU_RWW1+j?Vq zbmmtTb`PH`U296*(RScYdlt6Hrf;(UZXJ% zx7te!?TE4V?6F(tpRRs9^NFPK?t;~iuPsTca9Y_&gG zQCMOB!4*efFHE&tZn8^Uo7_XI?VH^j?H5+=w5Jp=Qe`jpw|7}5?DWDX&de`a<^Fn& zd#F8QlYPp9+}A5Mm2BQ>|K8k1=_hF8%HMnyC-OjGd&0{ zFA%c_*f~MN&UQ68Gh=k%juG!9>H{@K1lh}c8-!BV`>kl^AWZIC{?_fddNg`L zP*+?9n&Zh38r>nNToCq_IH6AndREY%1id53AJ>uA$D^S%3Kw*RAgJc(9?pR7qnH-`+{a;B++TSCg?3ey9HGVsugrZ&=dS}y2LLF`vLjo%4+Ss?S0o_u{aGqr;t$7wDvnP zSY3b&OV`xYIusW}FSh5s-jQLC!}nM4w`rcwI5O-HI<$pk$S~Yjtqqy0;QJ46RR0&h zjp6K+=O&8(rx{Qu(x@Y+ogAsfw+4h>Y{O3bd>om+Fe}eFSo*&@wPsNNLH*T6d#|1L zJ8_$eP}Sdbr~N97C){cO5QjAwY(j_ZfB&h{b?5_+HR_lN)~qI{O8*lw%W+xV?9B9Z zM*b3-*=c_x^kuP|dKo3xXs3N8F5~UEKD~{SYi6f?2`b|O-r`}{vz1( zGD@z|PW#@--%-dt=jel1>ua>r-b;-@rLUQt_Ln(rW(1o%wPrE`M?mi72IXk5(|+__ zMb6PR5!hiLS$1CUs9$~leAjyH)}Di`u0DTjwNJvztFcXU{SH(G!_LJY?9Q2okTqP6 zs_`qw-|EU&@z<*QqUO@tZ))pnZZd~4?_i7}*ug#p;c6c^&baBxcrzl~>AktwDjHF} zJTeNKo+HYtD$j=XxfHjOvh9_J!g}ow`Rina%!rJ{F2jgdf-|r|ymxhWWbe-=NA`pp zg*~}F!S%$h;GW!bda%CQZzt3r++Drgu8%%&co!Z%n&wcpZnO{{GyRBxbyQcHe zdKG@K`$McfzbEjwzLc9;%{kD1&w|39TvTPqUq?npRr$RL;$_s?NT<$bICX})0@t(T zY!_8+er(Mu>^aqK2^HH{CJhNM#lF`Ig~R#U0o&C%9h_e5ygx{n`8$YR+NBq2zd#;C z%Hk2DdRKMb4^=gtRWa*h!Bl-wc|NSHy5>^0G+&IU{3Z;$nsIUW+E;Qebj2p_AncLfL-bAzLjW=dcJ?4%BS+B^Kz6&ob$~C?C0h`F5Ox6 zr?GKXvFc3(zNKi@e*sRvd7*dC?t@=%j^*`pzH30j^6EAT=exE~Sax$4;BE<9f9?){ zuY{{d^#&K6Fyp#d@O={=ThJe20}?*FXAr`NBy@cFYRJSTOsg6Sx%h-}D-s}^n2;Sh z9P+~x?tW?n;*3n#)c;z!on($gtmArw0^UBezCbkJYcSUhc8bN?eg<9oR6$np85xdhFB?>#nplR?l;-W|VLt0qBNx9QHzu+6I%S&mNd*(VT#-3{3`qL=u`11>_h}S-}2A+Dv`tlE*tea+U zu-qNLwn`sPx1I<~v(_cdw^mhMu&yW=kNps_*6yj7Si7Drux>px%UW>vHZ)R#I@LUO z?wk&@U*0>^vSul_V4)p#XZxqGDcQLzCnoK1JOpWJ6kj4>GDA<83`>M?dWM=bpn&>XQuthf1c z8C16U9)^S*vBZ0jb@3yXsM&MGQd$~ML?1MuzdZ9{_ZjEqX;|s5$D+}vxYc(iQ}NlL zjy<1A5<7i)j?z5xG(0*!U zu@Z~mRcEF1r_osGcMdntV!c|yci<0{shRYanViFOy{bagV;t+HrJC7u{Y|rcQdHAn zdUxkm&BlQJlzE?@m5B{>zhT1nGvVb(gbDBPBz(V$62dW@Ax?H4SF9CUfS7lnJnfOG z*4Pb-x`N~Dvxq)-D{~Mt)>|+24F?tK>WjZ&e)cNpvf6Mn^@oTK&hjsEpKa&%i99GM65PbJ_ga**K|dqE|>={AEbDFZNNUc(Dr;FU!hZ z#1yc}Q}Je~yi6sF{hE^WJ&{ z*r6eQqvFl@+%7F`L3(~}dba19vOnb*@D^K;SC0Nes=enAL(wSw%Iu|NJ9zDbbk3n? zZMEkgT$le-HbA252YU7msgdooOjRug1i0P{X!LVA5bJCU;cRRa zO#iE}SPYAJ4en6~)6K`_u0+O2|O>JDJdL^+g+#OTD| zBv3?W0BjrVxI64(OmlH{uDAv~C#ahX8wGx>4r{67nX9aG#W?V(u-K+n0OtuU)a4N&% zsEQr=jQJ2km=EOqAe=)APN&0oXnzwY99~u%1WhdgvfwFNkOhB63($F1!Rd6UA4|w6 z0BbzFg1J4Wf+a_fA~)=1IBUrI;h5`(!!C7_65nD*Ch26tdWF)<6ax{VixY!>7uw!S z%;f%A0Dk8kTNdcBZ==t<>9T`|$QJ?hjmWDDB^wo<>m#Ou*GGub5nDl*I()3Ys{gQ` zw8Va4O zEdwSiL0(y@V8tzg^;6rhDhO37)+Ccy1979aElSNZ$b77R>I^l$j?ZN2CMg`NDw505 zl%adG!hI{~@*4HAVkMh=R=5=wjYNl)>dWS>Fuel-e8+@s4`{l8mNAWw0F%FN0Gwz? zvFYT(dhHmYHxD*cHdvW$A7nXNhRQ}O6GHX{SZJif9C~S_msv$99e#?&E0lw#zJMmt zVSfKV_TB`(s^a_`Kj)sCaLK|ABtX=t0i%KfNgzPbKmr5>5;d|&1QZZLh_dH~t;*s} zloV6JrCLi3)}^*$wLfj$B@h%)v?x{+S)?u%#Ggg6ielycerGxN+$Ahcu>9ZuJNGkp zo_Xe(^~{+w&oeX6I70O!KwLJz?8bU_R7)=(EJF43b;LzUggG7mH^8E2r_p6S0^7%Q ztpeM}SesuedR=zL)g>j&axH}=tV=-{(S*4T|BMS4%ePb;HggfI?iw23MU;0bye+Yv!NDXV z-T!P)!-v?@Fx~H8=dUa&ExkT-bbtNj_>(yz9r6?f0=mhON24u8SH(j`3~f6ZU;o;7xDNohLsK2T~6@DzInxlTv> zG5DZQ0MQq1?7=_ZnONg8q$hFYwb}_>wGI8!h90z`KiSY$8)~$nf7sC1HpCZCrp&c) z37u&}oODTCCLmds0vjp;)IpSrDs3gS%7z{WB;)=8kc`WXTN2t~LrHkUWm}OemZ4m+ zmbklZh#_r6ZVC98bTu}_7UQ5HZ|RVsk=AV;uPCUcsZg$Iq#7>tgh-|u$fd9-j)9`X zaQLB-nDA9vcJbf^j+3`a%V~DFS))+o$t;sALVPQN&06JUi&-XDgTjrF*#ixUGibOH z6mDKoD00P?nTmgOu@Li)@>5Y%Q@4+NsA$0SfTkPD6J8`TmNe`kO|8IwCnz|PA`Mq_ z!pjqFCynPW=uZp6@LrRjez`M(G;4xWelfuoPqc8^nowFcAzTvRTyPa!eaQqa#0C_b z9c#5UE4#O2wUy5i2Tbrl{>%z$)qi|L3Xl_75&*reJX^nJQ{>C_zm@sTTZeHW zE-&<`aSzPgQIpf|Im1Zh8e<$kR9Ih3s>zD2{>pq4U_$k)UEjsBV=@YmWWLr9YF@lo z0Q6ptyJfwXzlxxw>hH}X>pwgDt$qIKX>n$adr-wXj*Ck(zu~%NDnOR2clB$i zXsnrMKoeGS_50?VRa+K5LoHZHb*cY*v-*Ai+s6Kfr><;$sA41-L?41w|1<#LxU@|0bbwY!J{ZSI)pA=XaN5#i?``t{4TIu|hO} zFFH)qcgs50jzX@L`*rbLgbJ_iycGeWTr*K7B^Q9LVx1&kU(R3h)Y7(Ym!*r2yB=)P$;z& zW&xIGu*5T+{tP4$Q?7mA(l4^exX=w&4J&hjf zgb}{Y^p$HLXYa^ad(T6WW9Deze7p^D{77*GO6PzmHG#}x1Bz+05nm=Q(tSf<46jgo zF`jZ5^*uU}o4^`-rQ!-1q7_&Ce?(HBg3rKFCH1IYuwXqwU0QJu8vk)V7F+lXEg)#R z^V#SQ92!WNOYmO+3lY;*aH=G@5zZi_0xZv9O@wV_%t4nqV%5?^86!^lc%t*u<`|vN zkpV>Vcn(f_aU%&!g80wDc>&gCRK(T8eMP}^-w<#{E!}t&5aeDsr^Aw*F3S#iiihQw zlBS}50NL9~f^rJu!#~R|PXEFE2o{1RI^PIz1RXgGA4#VNEKaA=k!2pKTMp55g8@V= zVL~(bGq8wHhw)LwB%J_ZodRK*0Ll!YL_`y!yEzi1qf+n$n$0c^>&~W<&1090=s=U$ zrDT06$3?+;eMaQ^QuC9eX79ke3zkhs_j?h1C7mAxc$LnG6i8ec-5zcuZ(v$2`^&4a zI21{T#fUQU3ewK56%PW*puowk;Z9Sqqp^}5jm3GOFpPHy7AdkOvdmY?Fq~@!Knj+K zZW>6??Yh7jEEY4khZ+^GO{I=3nO9T_fW7W08X-Za&!wEn- z+!BB?u_}BsfTbh5P!XNQutCZ4q230IWa->4z$@>7!!iP^n*wR^&E*Rdlz`(6^6*XK zTNFg#c&$WV;S)u=93N%389|3{R!}s@tLAaMYVJULjo}-|*DWZX9zAXYIsxi-(pJ!|h?s&ap0e-kSHWt91*@NcoIHWTe&tr%)6Z4cAa+ zI#}O3ES_96{yD(M8t>pA^8)moo%l}@I4=4~Tp1uKPoqpxLigCvLpDU2q6~f6hF-U! z1{>o1MAA{ZC?U(zP+J@707#Y~1CW#uvdonDIByGB1iz%?=tg_28+cV017*M*OSTs- zw{yN4GM$!^+cC9URMA*7%cOjPEf8$(P~IrGmboW5Q2Ev+~){yVVTy6oo^7l zK?|3l38~r*6DH3p4+zYTd8=-(etr4|&L_wT+-^9hi#ClQF~cMJ8g?lk2n>7K$&i@! z5cLyTh`*uu&qA+unmi*f?0mvJ(D1ZemaK{xv4lh_M6$LW3Gv*a(+Ii{$=V`x?N=g6 z;37!Yaxv7bRr&Ib5b1?T)}91@0_f@#9ecc>>yzy)N<>)D^~Dxfhv^2`tDc2M3yE1j zvXB9j5Ab5py%tnHAu;oR3~`w_aWEtSYJ`)h$KMSZ*pVgup(}pCk{hvgy$!dnw~?FH zU5$vXmFB{5SMCaGAQ0eB@yU6HY z4GXE@jja#h3PT-08(>()<)JnIIlN=Zw6mIy=-QQj$iJZYsltKTeN7A#!j6(X-0_=*s8+mR~HHSo0Z4ae+u5c2>Emi>5zF5c=w^`zBhtyZZBCreozF@8^XI^h|aW;(@uvGbRoR^ z<7eQ;ncx>wrWb*CU)=*U8?+q_`74gNZ_-)3J@ zRo%jWHr8o>#Q}N!7DNbHRdox-)VN>an3A~#+2_|(e*F;3v^wo`G#@a9AS;5TVfpVc zfB`OS{GukwlUavdA-mk0kb(a*&(7hVeg}51ulQnDO00jq=i(~4DdK$L)H@G1aDc&(YZ4}(G*n%?(G^22ue-uOx;`$L@ z^(AP={y-93pO)vr=A0LChZc%~=7in=?k?Jk>>yBqI)?m)c)kc)pMd|c(GZ`?KopWv znX%Y@lfV1#QZ`du-5^qj$^|BmoHKUs^ZtT*l8|`LbNnb`Q__0WJG*A&krm_b8eiS8 z{g4T|?R%c%fY7zR>z71TGlEOy z|Fo*NeQlltnTbmSJzOR;{B`br4Zf7BEh`dye}4|`O$~< zL#DTKHNJEHL#~QAK9glrDvKe5GO&TD&{ffDA6FD0fBB+u%Z`1!8ofV%0)B7R?**3h zXz{F?;v@YUt9PRj^S!tK2BoO3@A`W6`kIx{n~=)_qgLH&+$;TiyzBS6`Zahjt@j^} zL67cIy}^6Q_NuqNl?U+xV_VdU{HMp)%=yt*77M`ty{l%8*aV-*$QP zW!LQ}e$x8=u9~>tpc##-E$Bzd-pWS+qmEsmpy9At{Tje-HA$773qV={|Y_)^!((iR&DiX@7{>uNE z$%^&czQh}wf7f_;0lEqDa?Er*@whRX*uw~S z!C@TO;a*PqU1wnA=~?~0Q1%fvjDVuhUymErHe=hF7)>_rYS_1x*R9p<|FCgy)s~%q z_g3BjB@*I7)NH=3e19Pm74NTnGwtrW;!02=O}^vbHrP~+LR88w?Y)_b+4y2N*703y zi07z-H!eF_yy@y47jL*8V=%TLB{9a}4#&UCu+`)F_WSEm`PJi@Bj1L`z06XNBf#c! zIDG)ETvM1f-X7t^c>CH8_szIpp8x^s8~kQ4CQ z`^Gj#@#}>iyL0#+Acy-8S-v5SLRyS&yL0$nAba}{xqTUpQ8|J#YUgka`o2{Ep(x)O zy9OQdACBhTmp-rmP_!>*SJY5Y?Tmr?kkuOtQCaz^=(pKh`3D4`-&J$(AHG!|uy)n2 zqB=LBH&vVuZ_bMR%3`!y;d%@}9rqo;t$xJHVQGo6Zwk9YR2tHeBT{)9Hft8bYwR1t zAjgNuTXivR;@dY9e|)rJ7$q^rE*9eUKOybREg}nVm-YK*qX^;!*w+S~Mt&&$Hzm8g zw{JoOK;})u@eRkG$t)I|Px5&_$x2bjn!D2S;cNV2r-2Vszik!YLX%Ko)e)boanFh& zal5!HHbY)C>)+GrntGiC&#*L|1il1~byeS}L{N+TUCC8DcCJlhvo21osZ1Ni_(=`O zwNB_MXWZsl)d8=ll`BA)lDl@u_3EU+T+*SDl)2+GUNR9ion$@C0 zyI383N;e2SLAZQ$S8>9wB7Q(WLFYt)(8IjH@GzSDwOy4vnLtxdfINoDW54i6g_UKUerP^0}_S8qE~%aLz&rFg3u54h}o z-8km)VX9K0OyMO$vfV}Z-q#57DR3nprAg zkAwpVcdPQUMJ2w4vyqHjDoF{BZF+3K%*2dViK{%LWS-2*!e6hR6OiZmKe9@0_tfdL zCix7vy_%p~%rMuIf`$!XuHJ`-9)(4KwFI!F5QSU#6zqZ!qvHtLvNAX6bBBxf@BdYNI4478eW4pKTtrWi5%GV9$X>~pB z78GH^H+j^D0n$)PhMk0+Q-$qF5?{~I- zr}v9oV55)@Qep%VbCjlRWh532qb8HPc&AVvh@d3vJCp!I?|dHzsHOK_a)_V*iC1o2 za54Shaoz^$Pyy6{- zNZRNCbP=tHMD2ratM!qz)A~pf14&X5Nm6iqazsViOGP9dLc`crFlVEPxI!&%A*7Wn zVF}9+!(emEa9 zZ#ArlLSQv4mTu^*)p!DL!?IR8;C`(G2pooWDwQvcO#DCD7esqkNXxBsM7frb{d%1t!i>bL{c<58qbkSUdX59s0iM;a$Al9GV|HnKfeKPr@GeLpkBMo2m1w zankyg{v?gThX11uqav6i;PKL_@rfTee#A~%4fGfCq}71mTYghdS`G9E`=r%?pMQR_ zPg)K1bl{}bKu<1CS`9EO5QY;LuG(P|MA4!!R46tbmgiaMa;ckoqUdsY3}=dd4QGu6 zA5epW^YqL2m~f0mFjCFf26wlDdADv2Eb$zFFM}m~EnGFh%-|^YD}|@a^y4`TCGW;* zk5Nn1?-hwI^h5wR!?GB3s|B1{OZN_ir(3J=bYE3?PJ*w6W!%mvY8O~co#=FjbzH+p zZ#rx&G<6M~XQYU`8HwOQqeRT_dZzhs$Z&kL9mvMyoP}wB375KGaH5S4ueZTLFCV7g z%U}W0xlMp0K7hjsIU1WxC$Cl)Gfe`yuqYp$e1V^B))E*l@pSls7W4#oizn1hZ8V~1 zV%ExnxN2Z-q7CB-Nd9X>3PobzdO`v0n+DWbC(Hjuyv@EwK~u{bCW zfEAt+0CQm3r5=R)nhy9Bz>nH<2HxNEVMUaO0dTsGN?Vw63$aT;&)7sf#s^^$`YN1V zuxxF*|Bz@p2VgB@_L5oxWPv~)c<{a)KBQ%QK*oqFIBO)x12$BB$OP%iXI8{#c9(ci zMYz{m%oj<)nO%4B(2D5r4lj`UNzO)Q%M#XKa>6K_FkJ3?5tc1Qcbm+S zkF)}oq;yvaIJ1`SBLePOOZNo<_o}74O~6^TbUzVr?^?Rw2)Iuz-BzL~eQQ(TvS>`7 z7Ys>uFQ6yxS`=;yY%BD4UlzI#J=0;)bacoGwk87RhWo z$sMTf4U8khB_zW&%jif_GmcFqslSm;C8=3TN0OScY${3p(P}D5esjn;I+E0UWK&7% zuSio#>W_dUNwlsod<3&#F_O?x+g8W@-ud{lkVGi2aX7nZ7n4lc$*+`V{f@g*C(8N-D#ek4GM1BHDJ{vtcQ%`Ebq4Io&y~4wX!{A8lG%{g zI{B5-9NpyO?er(k(FJ-);Dg}H=A4Mk*U7JR&KP@M}Qd&;QS3rM_ zv~X`!xR??s{mo$v{jqVx(BBt~%;J-U82XdK82Ve{h@n3pju`x6EQCGz^=B^Cuq+#0 zPN(p#*0U<2wJ`ML7iI@C=a-SW>Mx|Dq4Y=5(NOw3$Qa`5$3J`&`onULLYLeIrixp| zpfeP`iUD-VVu*kMkC9Q!_lYxE5@}{a5b5O8@gW@si&GC|46c(P9d4S!36I~x;T8lC zyZ~pb#8Lsyj}l9Vg%tBw0xTh@>AVS>7{t<$uesY*%K-9A$bin<0vyNb;x(`lqcETZ z7E#DuEfe54I%Kp&?p(`ySmHTWvPDo3I&71OsWM=Sq@%;J2*({VqE$KBe&o%ZIQscY zM@&z*>#G1bFAu19k^YZ>Lzx0obGzAj^}EWo5>0xWY+X9k$>0dp^KfU<{K{S+YaW<_ zkJD3dC*>Yc?S&P(tL4L>mmg1*iyYX65+wh{2{_tY&%>SRa6VowDd})Z-pQCd)Uoa; z7VFLmtQ}&BM9kdpm$B$@@}6YOEpo&XOM7RDY5h}@kPc_|AS`weinYJ9#GHS#B&5S> zKL{r}2*u*yS%M+hB?;+}Cjj9z2ccL!JWFs3|CEGu$S{C#wu4YCFGArtLM(Iyv>P3A z6>-Mg1tk1e{N1jzZ2rR8Zu)EI#0B`vahjWS29vvVgVjJjn!j`gli$2l29x8gl;Cza z?@5qOBW#>88y8#1!ga1~g`p`{jF02!#KQ&?XvWl;7a7$I8A%VS&S1^6I&u1q;PzF# z<}hIHl+pVt=-mU$w__jd=dfSE@-@*W!D9TG@HSszh+~gEHYP+kJv6=Sx*0vN#Lvu? z#*n8?(~3{E%8Peei*kO6tCw?%Dm?8U`1NHO)Zk%8exeff8T z4fP__6@RYY{KLJ{)(lUM)d_l#d5N?Y?Ri%?uFf(IDiyK%-Q(%xNy{$1y>$MCFH9@- zJYFC!Zth-C^wQ9=&t)wwyq#$+F6^G3Wi8m;$68Qq#T5H@yu8~p)-@t=*wy91KmRaS zwn#nN)xTY|YfRgM?)`@q467&*nMJ$KZx{WVXN~LJwiUzDnSCw)F6LjU4T%6MeRgH= z@4m0C*~4*{wBK{Lb;i4%P6tbem5p|#B_15Gbi{jKGuB7^TgE>sOtHE>;ySW(nzp$&8}9s%hmO8=nU(6Rv@*W( zlzG?+7K>wzDa5}SeKY>u&`F(ETu{>An%E$ZKxZN}$yjgWwg5Uy;NG@z75FwuI^Ihyp$7oT^mrS!gxX>(mZ9eZlDHxpnr1_D zY^chH?z5pMY>4+)%TyX|=!gwX#E2|Ifx=lx`Wo<$;-J2J@Xt;3vEu#&c=UudHD6022WW4rkxoviSRY!2;SUDGfPYCLwqNG0?^(f z*}`RL;!vPdC3d;oTINK_U1T^pSY9^sM6~|&>Mairij#wUVz`|J54S0;KXnMF)}Phv zBrxnxKgG#G^1>YNoF*^A$-&FfBR>b-=c;^k#EH9*lY^UqzlblD!w9;NlY?_nSA1rJ zjG&8fa?ppyxP&hT42vr0LQW2Hx#KR-ja76=UeYx~>rXFLS0p8jI1w14^(O}*6F@g5 zsC-K6&!MAg{po^z=ttH1gQEa-zA-qBRfls34O^<}urL3$T^!YT)$6(JB5W2WoeA#&-c`_lDhnr!whXja%w>?ZnZ#*PxaM;XBV| z=$74EcCW8rdE?*yI`*Q*Px|j)ec{jl@yXZ$H~sjhF&~||X~5qmt%sJK3vwShl+dYaJK6BBy5FWzJCi^uaZ%seJU!{#?qjNx(xf#^Z4CztxBNM z=b<_-_38*uE)t2s7I)#udxKy4KFRz2_^DZ*y8wRr{w+$1I z9|`R_eFa|i`gQRmv4c8Wp!5q7KN8w=`U#YJS3rgR%ohoievRTsLVM1|0;S%tm*Yo5 zdrpo(>6h<>_A4ivv9TA$UK}enD90O?hn``H*_bm%cXWic3WTAC!8?D0b~(3pY-`5Y z5_-*|zBVx~u+JE66!37*y@0wK&2{QF@Moz5!Q z(YT841C#1#bYltqHF~&8VW`097Vm6h^bi)H(a)}Ptu6<0VsX}qOef%97?zzLgwkO( z+B&uOh%D?hA_O6VFdV8Mfpuzsp`Y0c?JtKM3T23VK7^Ql7A}k!IAJ*BMGuCNqcI^y z(B{_wT257r99{8J9jB_8SCy(5&nMl>GW%tAD{!5cmjz2 zwq}?Ig+iEtu_L8I7@@+6pYCX5GX5oWgAJA25cw+^T4h7`*bp^s$WTsw+Q7yd+wsq~ zkF2d_F&+-Nw^(C^4c%))kJ!*-fMhC6ne)iz>0^;k3duN3se+s0`oeiUHmMpMRos)u zKr2DRS!uXAaeXYcNF+Qd_7a*{ z*rxcmIugK09*?t2bO48W18_6=q7&!F_+f5#hE1?u;HrF+PK2xK-M4q2RADB@6q@95 z!Br(n=@j0RFnufs@DQkvXxzzZL_k#JqA6`yXZY$YBIs1g`3TAzHfxZAZgCCg?)ADt@QpIZQc>pbOE* z@(sez1>IPc9{awaYlc3SGt@KFSqttfGb3m?C_><+pqmm@55avw5ewL_>;Dd#G$<%(=+Ec8;+h|})b~ICu1|6opAY>O%L@>)Q))onva>r| zaQAvDYpHqqJk|$#PF>V#B4RYW2ELAJTDR_!DqR&1M_!H`8Ql!!W-B)jt~__&@cPau zHUr&a%TusoUVt*|Dg-YHIlk+gR+z)9Ij5H z+qeM{U*FQOVfSHZhW!XE=!ZzBZue)qq54&;P-y6n0vY@N*tiF+1-tK29I>W88ZfW> z@6{S&SFSXKZrG*klDp@RI^1brZmaQ0z0P}NSx))Li924eIQa4-cl2Ged~s5)S@P9a z4f%s}yI5Ck={#dbZr^vKE5Dxd%iKjjlAB$h`_7_uzS$QX9&i!%VQ)fK?z+<_S1^4^6+&Sn2>;@czPMuqgH$v%Y+VDA$JmnXW#ac}z=w>YU?0a>;@t8JZm2&DfN-Lm-l z8Rn1=*v2qyZgcet&Sk);+UVBcbcKhncMSR7A);=p5@Nyk3bnJ(AtV-jukdt0GO^%$ zg=Z*+_E;R67M|ZB=~%7JHX9u_mK^a=a>Ntpo2Gp{ogCL5iE_HOkFGenLM!Qjl*?R=aKTW^!dc@Ep zfgVZp2%$$9J#y%gM~^6aMA9RT9;x&Ql(-GK2c2e~bX~dOK9dFO$Uk(I6FAI#QiTIp z?THDN6*!JFyAXQRo1G}H@CFVxCpgYKx79L+cEMtWL@8EC(r2FA>od<04l;L?N1R2A zRpB3Jm<_sQ-oeM;4TpRjz+b_61eO$Zsk9awbk@On2bO5M?+Wxd5ZFeg>!Di%i&#vT z2|9OcI5O}sgGUAFIA+iwGw{&mokS=O0)=6Mcftbo1e~WNNQal!#|S;XQt-fcrBFtu zb9o>bI*2>h(q9aV9dPQ+kg1U^DaE}&QkaO4T07j1q0gN6s0vJ86CHGoKnFRf8 zw6G+I+!jJizpMy(17Wy>gT=t>AE%4cN*9O4$U__kvK-8eu+G#bWM)j5fg)M_jfPbz zdqPsqOVOo61bfusr+W&l8l<*}O@<61lBy#w6dg2@!U=y<(X6KjE*aaGjS_umy`CX7oz&Z=E;Qx~90o z?=SUa@IowKar%`*T|E+AJ(J$^7xet4r*o<2tm}vQr{StBT$E+a$+@_odx7PB*P4@R zdBtWZ)4I9`)B4ucp#`L;*}D1QvX!;;^isd&x*?`sZdkJ7%$Qf|#onb-iMxt|EphFb zl!e|3pM)r7lMrXB5?XIVTWshp8)~$nzuVBKHuO&$`qqYy*ib7JS>_>htN?A8QQ4q?l9PXya-?2?96OhL+k;jSbyrL%*{juDr{* z8*GSswk7UwfMg#31Vq_Ytl`46P=>YwBttvdP+uDwYSWFjp|N(T&xTmbP^t2A;AG0l zfKC_rvUMab(q1C@Vt~Y9I1U|4!wnRMj$z@E=|t@}1J8BJ_KJ%@7SYcb^cM=N8Vs2|0DpejxH;a_fT#x*BwgReF4L1YI-a)`jYsscey6xE^szau$GYc~Cus z+?pE1^}Znrta+pR!DSyo!{m}>Pnywz;wUzKyk3zMQs*Y3*I;;3JLv+V8I@_#D-ccJdO)fL9_oR9l1HsoDsd6@9# z0$$hl{mvg<^!Uo${qghC3V!zc+$;NUTQfEOPq{Nw3txF-$TPV|{Kg$=!#3o`D|vPL z^y|CjKmFTv_x*eKi0-=|&z*6f?}@LTd@6TNhjV^>b|5WmA;zCKo2m z9E|w^;;wzQ(Q7Cx3vDnkF(^-r5MmdwEyU%x-GE282eptk7Yb^_dlAAtzzYd>1ti#e zfM~l1gc(Sr9c6Epk;qz4g9g-d@_~%9QW2cQN{ax>nJ>6T1OP7sL<+o`P^1uJw4Ve~ zbLQWGDAq5ldKuU0msq`|>-5X5Ufy;3rB^TYIz1TZmt7AMN!KCu_Cida_XR*U56pqw zq&;xjPpc?}p45RNM2|NS1kt4J$Ui*SQ%MjVkQ7t$9NY9AZ=*X>^4vy?n41zoYZ-Gp zEn{}*)pRA}DN0#%`#`?j_;w6I^a8XR<;irHumz2A|ArHXPDFGfT=qA@bjh-UWFnjr z36{Z;Vxw_)0=!pZ=}@-DcyxIX2=Vv|i}x=e)$${^YMC+qg?S49J76L9lnCklK%i`C zG)v3KNS3TOW+DXfFAPr@je>;N1!Qztw^q8sx}p%L$%2VmBN0+lEY6bK)VdlrHH%M%lhkxsE}L2x(x%ph zBQ**k3_Bcq8q^jIM`ZRU9$%-+E(P=gIP6C*qh~Gq&{G2LRZEvur5Yib7TOPhs;eiY zuGuLebNH3o|Ih`^&BfX-0Zu<0DIO&mI)+f79_xXLYy3Z(^SvtR0&-AjHlc!fq zDZz51Wbm3H?5j7-wRwJjRS6FZ)g^IFMRy)! zG^2(1F50>l2QE7gwE z5ZMG7;|&}7n+@%?p@TMb8tNcp^Z_K#JC3k%V{K@W4b|AteKtg)w@igHo&?xf;~o6d z7cHh7825p@1ie+_t^vfg=vd==8(LsPx7g5~HuQiE@rE54_az&mG*IORh(k)OK^dT= z``QkT#phen}@|%*m7g)dezfK({D33a({R%8}>@mEau;!xn2w{z!Aq4PlRwya|_gBl6}wSeZ@~R%?p^LQ`{H|k17!1_TCx|r*Ed7{(iQclu`g~3-A8zeNL`Lg%;Gwe z!=l^c8nF$1Oo&-rqwZ&S6Ji$EXu=e;xUM(|NQqfoR|?PUNppSWhU=;)NFNYKH6?Iy zjbR=U1upuz80MKwnTE}5uBO1nM#W(Jpzz=(8L{8*9G0#d2xF%qNci&L6XVle=z?nJ zU)sN!W*ee0zcBt72su}Tc=@4Bf{ia1I|a`ZSY-d-k_~{fbL>g$h;hu}#TXL4MNJ9> z94FXp>44axrUeD4BXqUGlFO#sMZiAcvclW{7N=&CrJX9^RE z57I9T30lMQIdJWTX=!r}0GBZk|3~G2z}x7qA~!RL?FvB~7|?U^eDS0^nNtV!zqrsd zz||7hb+cmHutJ*KC{bszlGW zDc=o9rovgaggAuro8~-6bvgVplwTLxqu*;C)P$gx=2)}h@ENc3vC1@BYR1ddelC*~ zHM2~9*IDmi^GoHGGv4jNfy(!ga@lg0IZ^q7ohOu+AHAk#vlQLZcwn1a&E6^~WGA=G zN$_#p2{sMN%k3sj&1OGRG-ALq`AtUk9p(Vw7M?kt*xXgWgDqW(Cg!i~vE_jU>%fY2 zX5`swuikxn2WG2mX*@SLX9y^Kwz>`Yt$0+)s*AC&{1mfQUdXx{k9L&Gm)wh(<%P^v z^H8=4ER@3tx{%rGS)i*`GdE2t=pxKkUqVNISLMszCFnwCtA7H17wA4ybVy#(HA64O zFZcy;7_q_}qL*Sk!k-7-*FohA=%wh!i71XaVH%n&k3;d?%;KW{M~?h+$>P=xdoT~> z&9J!6Hw8y_>`P7kdo128TEv?~dqF)#DUJxG;Z{};+!P!eN?--`qAb$D1)U5`N!!Z; zL*ayj+{QNU3BrdZ6B2I6t6#Zt9iBf&Zv3B8E0lcOnlV9sQ&b6qR`?xcw< z*A(CzfPVxnGGJn98~`nJE0!TLIKPDA_U z!476S%GD7-f)Qg7*p6hnoc|!0&P-TrD^J!t)9I(6R%w#Rw-@Dzya^WZ=q!PC#-o2J zY*;)Z?}l{}(|<2)7%`E54k4!h*+|4hawWi-GW~pa!%_xLm`L0dBWUwDfR<8(AtzbK zv1nv7SQnWq2UcCZpu$SPwr}4-&*`2gtm!#c(z{(f1JCGXEll-1g}>g`{8X#8C#OZY zuzX!}xNHc`g_R1;7?;E@7VeO3FS+i*4kU4rR!8J_9wZJ^s$kPdg@nrypuliGkk27_ za@vx7;Cz)YYhju7Xn}Zz2{?WQND1!9MDJ||>&0CIH2;^ZP3%QgxHiF8POVLFr-NRbAS~A={t3uln-CtoHt`tg z1Dt5nYZJ^P;@SkCiD90>RB716a$Ukk#Y`(Jg--ZREKfHCQ*A!>Hes7Qx|!Oz+4(!h z7y4*8b%>KI4d)0f68vwm5y4CZR~iD$z%lk9Qr{kGLc?hWR}|=;DPW&)*;dXKg#`FH znR2cu$hbhN7m|?f#)Pkebs7Eff2@@O_41&dkFqLoHdX~HUTl%cC`+ylOROiOW9><% zm~F_J;yWOaGqIh3-z8ik^b;eh1)khh~qh`PUJjD?9t|ZYZVPk zVVV5isqsMJ={&38qs{y36^)$t@%x3UISggd&7Mx3m^5DuaLvxMi76arWYcHOnrlzV z>={{8vim;$dIe@=a<0D|jU`{U@EO@`JO-XNt7D_XfI%=$#*D0osGrC}{IMV0#>^Zh z&j{C&#+`3>fo``dA4dZ*GYXlxajx&zLMH-qkaIY}11U(hvUN6KZYO?1{`Eg(coT0R07g3hP% z<=X9yiNRi^GvKPxXfCP3yl;TK3@)v{TJ}<_|}X_zx#8DXH4w zUH%fHS2sS7vuMWl@2lVHw7&J1jdi}ByBcR2TTn!$ZPg;zZ{P0puATF}!R7Sc zG6iXZJ}>i|%({JJn1R&NhO#H1rrQshoA&Wkn*VT;uibOKP^@P;aCLoa`yTVv@?ZHk znfveJT1oW=v=?@|xBe>go2s{;$B~M4-XRQZt*K=H2!uElbYZW_DOSM+Pox*ypg0NhxI0DE%OeH*WCT(5y0_l%E zleWe%kH|A=J|n|CkIB-o$<5W&8NhW58y!=YVVK>PA&`SpOc@SV3E$u7yIzO&MR*KO zD|KhtN7Hk?^6=z{7%jLbIj&?rReAMj4cLfJ#$Q~Sz>F6dqYaM?O_(=nx?!HpJ5fBk zqkBau|7#QTQ2Bnuskz+sPbiNSa7$%s61c9Z)eeR|)hR(SX zOD98O>Euc*okEGFL(M8kfsW`m;?NCJmIu*UDsUAZT{<2NVZoLwJWKYhg7?5>(Qs9_ zCpvW=s=yL5XQsfsWc355J9;4eE?685VnQU?#d&4DJ*U#*CdgcD3($i zF97a-AallNsSS&LBkVt5KZ9knuyERJ0?<--tLd5Gi7YW(U_PJwLihAfuC`)sURBz? z@L;8N#?3Ey`dg(pUv15wYPIf>ewU|{HD|cx?NNBpiWy#Z>1Ebc_k$oFm!~CsHSWCv zYvM}R8Q>k8dnHyk-6n9^w3^!+Ca=VDEf?oX^c7fwcm)3O^5Ma~X+z)J5GQ+WU}Fsq zZ2YE1i<==k2pn}EN*wvX1cBonP!i%DP!g)Pp2bd8VX-KU_%B^qFaiGbk5gVM=P-AtcxSuTa{1p zkescvZGz36%FC9s%z#whN%es8V9E&^&eFrpT7}}9ZJDX~M|L4bbFrL~TV{4hsPt}8 zSoST;d>#Mc*|AU2ur^JtLF^#`47n`J%*TIldHxreX7Gjop^g;C+Jd~lsD+Er1fzt^Hsb*znJ9e4LUUM6olH)AitFW~L4((sV>I04J1wRF+nu>hVf?qNtF9N6f z3TSxpd!u>*_|3?Rpckbh>d>0q++hS=2&ei1I#a6s5tGD%E&``|1YLQoWcEcL6m%h+ z>Q*FiHs*CR6&;Ep%h!xGhW%om7^nz1%djq!oo} z2~g2Z6({QtB~{f`j8|OMYrdie5r5fD2~XxgDTj*Sy=?`O4@B|r?PCo|=>H?ycX1|n zpKWrdaYhRE(M{zUds)_RheNj}oP`rx4rO#AGa51T4&KC&(KQ&%?BAx>Q%nHW+HPOm}C zrMJ`{t$YC;*MtmXDaB?6vt)L9q78f+@$1p|I8yW7Id$|<+oM7=Sj*1rsxSfOscEjw z6}m;v*6k5R)z7X|NJ%vp(StO0L<2!4^HaEr$s{kPnM}fx$&A6!U^AH?g2L9=@ha(? zTBNbYFy)A>rMmpi?84M&*yiTy0q9fYEp2oRw!L*>!Fhz_2E$B$1n^s+7w1WYkJIni z>4+qJ)SwZ^5s{WE@8TsxnZY_3aa@<+3&Sfm)oGJHGUOg$!H5}q86sDE2Fj36RS4DL zsgME@(q<7t?g#b^STAGqC1a*k0pXB z8r<$fI1HM>uyY(?D|6ZgINvl8pkK(gzOtFvJ1CL*ZB2B1mhJ7|?lYKvlKqD!|8Fg1 zMdFu_b!dhwSd15ZY{t0(&g)R6K)=yZZ59bLXjHXYIsrZfJBz=9*EQw)n;Y)R30OAahK zJ^wsUpOji6Wkrivx%*&29;jRq%g=%WONZ};Wz6nVOW=US2g+3hgfMJB=83At>AX?a zq(F8f9POG^4bnBR;Lhnh0!!*ZF-EYB`GOJcXva85JGxoE|Aj>=biPsKf#QvDG+RhvqU4)6SnzBn&cy!%}*CvwqL4Wi}vl-SU1Wrd?!#z&z z7HXP)9CC!Fl-YJSR}OfgwqQ-!+{%(S`&U?PJe#eVJ?8bFS760?rdsoRTwO6N6E~L6 z8g8}iabbT?X{oiahv%LaSvAhrjRu!(q~!=Mxp#43>*tcaO@q^vRALXBbSoZO7KaTO z_L`F+l?c_;z`nZ{4|%rAm&~!?`a{;m3sAN>ER@3tx)5mt=kzbKJ3EY^iy&=yA6@z@ zl`s35pbL>U@O%0_=%Qs4iheEVnjvlY178z|X-eAgF6a_ezOsA)X+ty5zD?xWw~KN1 zZB|o<+4L=6;_Mqwv$4Q|Q)|v>3`MgCLYqA6hV}CNqaL+edCGGC&AWS<(=Qqa>u)pk zt%5Ffa-AY-BOL3?CLV6nl8PYKpWD#?OK0JDfGcnojtw5*`-9HHQ5b+zYAtydj(2x9 zaTcy^2}*Jk!oB<;uK|!id&~oHphz$?4DUlK7DcxLhtqE_swCU()Jc*!6NlhF0D^@{ zlBeO?N7y(oPs7azQ3q0YAY^nDr{O@Z_S6SXxv|8Okkm%9O%gaT7YOdau7ZX?Rk(l5 z37s2R;XR3`;k3X2k3k=dOVS79+K0*nC~xQ>r2-xG!MNm5A~a|i$OaUG1C3QFh6 zGWyG4!%mhFSp|z^>D&tIj7R@+*syp+J{&?!|D%zJiF_%9nEsa|5fe#<)maS9z=jnA zbi#0U%rB$l0|X#=6$xQx0ifj$#&HIA9NZ?R<)Tbh_`$f`Gc&E}H(N=b;;x=Q$+K~T zt@*=oE^cj$GnE_xHB+h2#my7EtpID>Ebb8*ywEIGcm7?vb-t_}6DA(ns>yXKvXlg}H;I83R6kDpuQ zb6|M_rlq(=rZ`_E%eIi5pjci~Sn2qcFG|pGCLM0H5QimgxpQ%xJ%?xajLM!*s3}fx zgQDT|w<%8WuZqSnQq?H%Q5c335@|?t1YooIwiDY`&Cg`Bvuui0jPQ96J_#4_u^iwc zgRcBIwg#2V-hESr37m^t39f{r0N%f_we6+Al8fBwVK|-~>`%c(&Ot_n7#ql`(XeOb zMOd?D-;b!rFNBM{2k||}$wgAr%C%?{8Wch18^T5Y0r+*Go2%$h3`y4vF0xG36-fyb ziHpof$laj3F{pgUX#{~nWT$YvcpDP5`mFCoAqO1&vz z+#xic%)s;Fh{Zm1Dy{MI?P$gV?_yCUbc6q=@#JJ_JP|iCbQi1$8k-Gnu8v1<;_9wI zD~%`VL@F*Xo#gi0LX9UGK^jkl5A*Se8c%u!G@hJ^B%9*$rXV`ikhHr|0msSVX{L>7 zACqaj1VobABBYqM07u5Qu^L&~|HqLD{Uj%iBP&E3A0J0n0!k-KL;qCRFqVc$Zofpb zbZ&xm#-pFTJuDt@!bD<)^ms&qM_^ly6_Nubz5?aGDcFyKJ0tPwJIZlOth7N#$b4+t zFr%@11^<0!A9SU)Cumg&z42D8r?^F!pl+f)PMl+5qj7u*n3Kn`aOTE(2OGcg9zVyz8C$qntx%lGS!OE! zIYSFJk0~!d5SGcA8Yefw=EOM`&b-3&Iu^%5Zl&4G!in)G{Ae^g%m0W!Va_q!PBeSg z{1SaK^jN!Xdu3+y3FSy;V|L4THWEiN5m<60AFJ;_pY2b47VFX=-b**~P4G5a?<5t5Ej^u8n^AYGqv>->aK-Eb+;-nTU6p(IJ<=K^jR}YQ-jy6OpooKJZ;ikmV}oIluSvLURPB4v{`d~ zsbcGDlP4A3Zr5$R=P8P>BLkwX+bYQ*Rv7?q=mzi!s7>4xj}hd}3cTNiQ{il8sL zV$6^cBS#G!HDto*%L^{QV$9{?0asi;VbH))qlS#Q+Au>SU4Dff<_ZlPJapiQONU*4 zsbNJ78Iq5#B??!>k!++7w`dzy<~t~&z+PJ769L0!PMtMj*o@gYV|W(Tl3Q-xr`(EF zehPp`{PEHk5C0I%%C%;tgHjkVWMH9T7Bi5BPv2a9Bl>qtdCBBiGp9gHNwG)(0Wq^n z=1wlbhGB`~S1Hyv%g1AmV;RMan_x#8C!Y1HX>k+mND4JQZf=QBoQ)jMTwSYX$K%B1 zHKbn-+vZ~YJ&x3{SCxTq+^%_I=c=n5K?x*mJ0CGufk<2uhc%KiG(^b^lx>o)Y}QN^ zI^$7S9=)6i7>> zI{+Yd7_hC{o9CZ4ERh5rxjfT4cvXg*Me~yH8FU&+och>11}`o_aOpUZ$y?SO+e=*_ zZWG{6g0`2+O{8u05>h+8gyguh4J{O0D4|0UjVv^#a7W%*fQw*pHjvJhunFA2w`v;x zGJ13|jSh*m#ERY%I6w%D)(h`GAMh2hIPFMBrQwcVHGP#kLK-7MBMjr^!t(4T-2wq; z+Sw5glrSmym;G1{&P1|E+N=WLGH$?sQ#%I5IBMW>Ec@Oob{>I+C9Ef{{;t>f?VEGnI5Etu+xZh<3&U6_Y5tSlImTU-O% z#QCkkZPIXKRhzhh^=&)@Uv1+a7~2=&=sQ@432-4?X<>6oz4Gk<#TxIT6(#N&g|Bx^#A7CRQ7jikgp}Z?;4Y4!3wFZ{dYj6Z z!+lcJUs@~Q`C!O5>4obBIOSluwLUTTeLM44dYU=v`IV3T1} zV23umi5PA`#SL%nUJrL#!yCd~(6ALQ=?WX(#Q%5|K3#?1D8h>wwMY<5R0OjHL1o%f z)Lznf8sBIrOdHj>75`IqZ)|)Gu5WjJ!)jq*9z{6Us7XpyB68VL)-%k6zlIo96p!_W5QQm)5J-o=G z^zgEVd7_4LFn|{?_J2GeR5z$fU}V6!5L*6G2fYbsO^8OuAN00Wq7UHk(BY3uL+%NC z`K%}+i7>_?JWhn8p2@PF@_F$6iEA9i;fponGfRNCTjL%%$T8(?Sk#<#0~wzbMmdgo z809$T;n{G^!?WR-2TDFE40as)&?X%EhRUI@5JR7%rlU|(Xq`g;YO(sM(OcDuW#xF2 z&{&5Gu`4E{E-A2CvQ8Y_Q&iPeg=Ixsu7*=rwru^xXDO_HqfoOz4f)jYsG6+ZaXiN3 ze0~(M9mf2@&CYkKtmn@ynK`9ot`M*3`Cl^xY~wkbhp~?wYe}0$x!44sVg1Z(g*i^x zq3u&-FL%?Mx83fjJXfzu7nsQjnVE(w>r>Vfa8Cuh0ryg{2XK~xY0V|m zXHD{D6(hxqNgIFJB;VY!1;eI5L{;X)LFltcOmiQsxtjY9+srV`RHCg_&o1$%0sl+9 z30(Ro0A-5Cvw?Bu2t?t6idOLL|hi5;5b%vpk2`^h=1&gj)LNs^65glXPCnonPY^^ z_ZF4!a7Vrh7WpbzCCPj+H5Z^Fr9b)Yiwe17$J`tMdidC*j*c3Mc zl2CfDMOYHHy~96_{>AXK*5h^V?HiB|6^#EIE+299D)%>TXd-C;IS{-p75lk^0=#iR z9DjKslrCjvYY=O9y42tq-6UtF3USFxV#JK-Ho(Wc^A_EBm6AyBD=izA~wr=4Qx<( z*8;)v&I<|fZUy2fZ>}?D&9mcvxbPz}le?kRoaOmLIgZL&ZVcKzs_rgHmYc(53(m zKhfbuf=L052$XTR*D`Jj%RAVqMlsbKAwlmbh3tW&4=N0e`w;A-uu;Z1jB7ar*TS|o zR=MwV6O~Qxld$muwaO#WSwvAf*Vaa_ijzSZL_Z7LJ}78af(-7)pci2~g$1ul5+tiq zFwUlOm?ar+r0N`zbX79wY+8^Cqm$oYVmRm6@vnqW&9naH{nW%zPXAe*|J4SbkF_Tr zp0Aas7AbBHiPfM98EdchFxH_!EM|g_hDcxJwNn!^*5}&8SU-fs+UAJ0M-wvE0qtR| zrKT)9OQ`A<$9lygOxJ5w3Tf<`tx6T%2z9e#>bj|zx^^n2vwnzT*N=JX`l*<@hAO7B zj*PiY)sZoE9aYQ&s+KCIqn`5lzlNv!+W#+}<*H=yy#Ax7sp9@e&r`+ykDjQCdjijt z&+{C765cm-KmNb%{k$_njzrM1f=SDMSZIWyvl^dc%UJdF5*^+Oh*(&J(^271+Tojk zd|igqS&T1bQ2bAU+%LoFsPI7i-yy>hSO2uf%qvXD5sQ~@g$`A zG{Sy7N0;#nKuxV2N*>WT9&IC`%ZmY?61g}R8N>qOgc+D>&kw9N+N+QFT-b|?XPJdV z3q1>6vl3tT%$rhZC3t++oF0}JDoEz$KoiMVR(UbBm%eNHa;!L4XY7*9v0~}Y%duiy z=bG019ILhK9Mf8m<2vtjYa#wmvlivJx+eE^b?un#I(yRcU3cMWbc%5_H@ z&*1ttZtlyZSp!QpO4Dl=$EN>-q}Sn^6|uwDV#O8d>2S?7sPOTwcZ0+AB;5{g2oBei zVmn;L2ltDTa=j+Wn27!$p;Wwq5_$*F*&=i=AkrprBZ3Nj8juX#3`mCVwL|a1dm=+0 z1tdc^1Cl8NQ1^}O02BioEmTEe)`s=t&(L-f$5mqqU2H=m0bxx9ba&g(6L#o7ZRmWI zS;j53q2Jh0Js_FNb{qP{4*k)FFeg;0TxLV%fMi_14c%>r{?UdwEXfl5+lJ0T)n(jX zHZ%l~q`TIJ=GzberO}3qXOiyMHpCWVKatvIWN5aH%dzQ(+PFd+H_gUPw{gpD+-)|F zvt60TS{t|7#%;B6k=Nt{;}ZylDOGM$Yw`@954#3d(7=`Fg83!|Fux=kPbz@T|I2|p4m1JNlI#CFRkA1~*2%ec$~Pj|>{VVA8#G)u4L9E? z6nh8GNYV*2rizIQfhHCI@*@SnHbPkjd>&ZK^e;j)RLd0tmLZoBLuLW1i>y#-eR6yJlg1FiUL5yvF zy^gj6!6|7FN_+z11mO)x55%r#IsK4YhV6X`*xTGY11fz|dy4xAGcz*!WM!qMW@csd z>fH}$aX+Cv;rmFuR=pO!FJaF_c^l5wC*`B7a`^#{zKOMOT1JwG-;GJW3@j+yW9e3huQN_Tk@{x^gt{ z68fC0mP5IOY8Xe(hKnTN%A!(_GJ^Bray2v$u3T2Feih!rs&A?@yp{YsGu}eD)meI% zy0_{L;@xS_!pS@$DuJdsiVDAukkuQ6U$Q9`q zZGs0})y8h}A@Po*sVhOWQWNcOoVv35M)ZTMv?HVO%&Y6Yl|RFCLzmfPv3}K0)!~1W zKaC!2tf{Koe?IMZ!*9@CQJx}MvX9H zz+i(W5ReE8xlBkTH*YO7U?_U7TDAlh2Q z){^1{t!){x)>|!J^ZkBn?|0^%nZ)Dyf6sHi=Z}w>{jRn5+H0@1_S$RT-k1NNic9Q% z@F|`L>IbNSO4)jvEu8Y@qCt{%} z+O5N8b7;3Qn|%kSV}C8pC63yaM^6#AP;)#cr9XMQ>0@J7uKScXJQ6k>^=Zon-Vow# zAvBxrRVWu7fTH2ogOeh;x6-{rO`b@(?P9a+K8Nu|#@HXCU}%>W`oz`sy!Nd}N{)ED zc@n_!co4Z9kDM;W9)s7Q{+OGM-i3Ap5bt|!0K__Peymw`=bfSRABPH!3Ze@%DBhnx z2f#Mukz&X_XR(XTLF2dD2uJ_Bf}$E__fOLU9Qawp{|n#Jlm45EA3^*d2gbhvexg4& zcnr2YFXpo)Oa6kbdledlh{YZ#_HKv`6JHj^oTiPv>+*pN9T5hPT&5UJFefHiLa@g_9gU0@2$~t@FeftW@22gk?&gbc;Ng+Gd)a}#;OS?1sy z6uEGJD|8gt)gIX@(cXdJDI3p5J*sP2&!OO;NSP;`-m@>*6)DRKTL_UP%4=}<90+E^ zF;Frbb$o>Py%E{410_NAJaHPXJc>p74)7S{7`l`i&pu2cAy951*aH&PlWIWMb^2(=SqWCyTg;wph1yVPxu5h z<7{8mD6X^W6>kuUf;s5#s6Uu=gSe<)Hvw2}t~^1(;}%oGEcxBF@+%=WNf zM|uOGeUYVp@2xvGeA?%|b(i~vNP{o@dvEtRU_;MZ-t9H;wGF;VLmofnxViP@%~iPs zLf)IJMti%tG@#Yv?HPk~_*mp}e>dWJarb4u&@)!J%;()+0Wu_T!O5G;Kme|GbJ^%f zSsp`wE*;ohaj7r-F<9!}2Tr;&!tZVPxX;^N@)g6!r z7t!bN8)@-Djf>%{7zgE<+~}g#z~iB*86U#$&gk>@JVhd4_V5?c|6($LFR}!E zLJxLi(>n}$NSjbiTY)am(ZiG<10>kG}U?deHp5nLx-*E{YXQ(kybx6?d|>( z9z)NjX=B@5HKyl)w|g72OXv6Y{D;YYfgertcJr`M=$SNV5>~YNyfLJHC$mq(AJw(S zLHQwOO`sf{Zd^(|vl)uCmqd!e2JiNLP&z+G<6(D<7ErQHIgkh)iU;s4!l7Gz{54U( z+TUHcJM_lq(L9t~f_ORysvIt5Iq75B!}v>AL^l#T{CRYOsO0dA|IueIma z19~vWG&T$TjDv>87!4)pM{EpL2z}`1HK%@L`sfz#dld}fkhl9;NMYl2{K5R=N&I~R zJr6zd#lxY)$A|h{YgdE+Gosf3DB~$R6Xs8tM+e77%JafkvVE&<74sz^;oXr=f20xt zNY@K+oeWc8wr+GFah`TGP6~%(6l{B(=_vijqdT^m2Im8ele?XMsjn*efb zeu@bU$@d+W@hvvq89@-W8*=!U$Xj}YEzjc(c`xM|nU!O_aR1`8{qL(zc{;xCn->YV zBP|klJ&q>ZB6)z#U+1>EifQ2N50R>Txc?ILa*47%bTOVtfJUc>sx9Udz1n|p@l%E? z8yu<1>)Ge+-bqr!BCQ4Cs^Z9bu5i_~$a(Ha2NE+P=XoO8;i_4Ys=~-Dm-nIfAglns zHT=)qP@ff?e$M=s`ICZIp3^da?)+fz9Q-~8nW=?$28d&WxV$U=I`q0&yoKkU!+QA z9caA^`pk-4lof_Z(AoOV&yT)GHzqZk@h<)~W!3pwp@kv0<58sKm691-v<7Ik=96gma$V{xd21x0!(mg@aw^E6@J}E zzCaX;ZyIldgC&CJ&57Xp%L4pz{iPMZo=Bxj$e~Q6JU?uLEcBxz^e@pm{4xEVlSjsq zk@5nYugH~!NZPDbL~uME%Q}(rV*JcN@J~m`5I($X=UcgEa0A<61mK2?bcKDfWuwho zP!^oPOErkLn;{OI_KwVDv$MPpT_wv&ou8t&3QAdPtu#QN+lDRSs?C;l+SQV zCL1)P#rWgh{tW7y7Hxu*pyOC~h+Ydoq}&fvaiL&eLqT*9va?;ZuIQ;m&&^}6yPhp- zDvs0@gy$AVnx=ss9ty*Ar$w4(-~p)_k)~PUxwC-uKJ)^(DnNexl9a@9g3fc})7kJKYiMX49^$zy0n?-{aSV>s`XX2A6)g#&J(1ch@+f`? znKoPS>X9Z-WKI@)m~Ef<)t#joc3+dXz}x)@>zge$nvE*Ldv?B)8~Oq^$^}JZqpiqe zY_yh1%G29jhNSqUsQAosM2@hMVuXf3uu^aLKaoNgD~68)Pd$%=r1+<2!tWM+6xx{{ zdi^u+Lp#|fMtHCh>J@wyN;9Y{SR-O(Z}(?lgAsE|S_VMj|Vyxi%)% zAKnwa11RB72Ab&i@Tf<#<)S6nETK6_%7AfX0l1^iF-o0}ybVPkVLHT- zgO{Q-uVOP_)xgQ=x?|w2s(m(t_~S+xoU}^}!M1 z2kwt9+9l=<;+xMVL!IygG;1+u{8mw8*k1`sFwo%bev{8+1*~b06(*DOFrs+7=Oby4 zD&Fonc+w+_xBCJ~b9C``*J*gnBg!b_edwjQ!`Ow`?iw}&qmJ+gbxS+%W(C?|^bj6@T*3 zmz4+o=aTT~B;SA`N`HrwD4K-r7uY1K`U7%`Ops+BvLN1U!fa9u>2)Y4ay0`@hBD~? z{>asS{NzTi&c#noFUS#ZM`|xufph`V4lh?=8dJ#MBfbwL(hb0HScV>s`RU;})Fc?xKpt+^ zhwv8rQSp4 z4swqH9FkQZnY0o_K{`N2pN_?FGvDM=(QeH6(!4!Sqex_39%8YIW9;+0*vu!%0<1{p z(J#=O)Bq5f?b*ADkq-au-E>%fk#7^7NMv?acoUVlWz%Q)3vS$5`j<>Gve7-CH0*OZ zdpE^ar#IQF)8S3eAiGfeEz4msxrxEWW-bEA6K*Gy|DDIi*z1ka)1fT3KM(#SdIS~} z5k4c|Ce`q!w@Fd>4S%~(ARM71!gqMnhmt0D;Z4UR%?5-wd5|-*NlAV#DMmIiAPjHv zN!l&x97(f1;Z1%?vqj-e1(IefyM2$BD=oHvMs$bUG*wnReYKOACPA|di0 z4zVqf5cv;>*p^6${D(tqOC&`8!?MX736cMBNVF0n|KSkZ61^0>OMj>R>r)U~A58$b z;d|u>0Xl|TFP;a7(_ zhJ&CS!jcl_A6Qa+^H}I@AEzH(GX3CJFzhYt7m((Jg0sy-gAYciGW&(wy;tRBdmpdJ z%YMwWgifP(d0y6`+iCPjWgn_^9gI-+U!MJNEW7)wP^aoNbqB*{ni!VI6ul`D55`{!FluD(AzVB<;)SLLoM-_;5#DV>c^T3?91lif1D@qcDJJ#u9f?YzL3lj3b=~Sw~+WE zAsRAyUdr0mgZH{_(ALuD&?74XOi+@r zjRGX8f04dc`m5ARv6iZ>kLY%~c*k@px`N!Bvn1Yby5y7wn6Wat96aM|ZwFsFNDB%d zw5t)LY3bE6js7QU=)IZUqi9F(?d%@WV~}_Jj8Oc9Q1nhvl$J~-7mzSoQkd8hidtGS zO;=~PRafUb8`-b4x@sDk!dkdZm$fmCf6sDt5*(lnOp+O)y($}Dnvuk zxNAnfa*(x~`d&q*qpnx}jM5k9XeSuYIw~>i$43Wqf8mwh-ivb~hzn&)9R9pAzBcr$ z9bghi-FjYx8f4)%IF!o)47~Pxw^w>*4EA>43+c{C^L9^$L}p-(>-YQ}f_N3bp(Ad9 zuDb=rIS&Ulb-&x&(@iypp5i0^MY~AdQLT72F8A@|MTv9{Z%+f#PC-WI`e68;54;7K z5KPz=smuw_^*P0Au!uY+JQD`iC@4Y9ADc{AR6=Q6iV0%3v!E7G!8Q(}D(|=ML!+7f z3EBzuJ`h<1(e=B+mAR2hzZA?(EyzAXl zzn4z*0eBkm#ld{IG0L0=4fU=OZ3g2ECtx|zy*#ZV{x|OYxPzWj%AP3L1;0gK=5U}f zie01#dj>MLpB6*5lCMW+p#tm~bK;BM0|jC%y83-!j6?AD@SKquOL$Zug&S$ZuY?X( ztC3vi z+^0=zKntmYY5Aj5NX8Y9n_|sw6M`FI8%YE?JQz=tXmTW&8?9%FgGV-g1Rl%5MXc}6 zTC&yKv*#0l&!M>4Iz;jKW#4gWRfg^HN}Ps>hXFJH?G>-bl$oK3c<2`BQJRXQFQJns z#rtxeiAMpD7Y&mg;JZ-5j_7Vi8X+H6sJeo7Y|9?Pe|shF(kYt<9+5pv5dH-_YF68&6TbxxZG)W=2Q>j2|X7I9}M5jp^}r)X!XAmZ4^KqfHR&=jhD|&ikH`KK6*oZ zxGn;}66E6e?$PTL_lu)#9JfvM5KIlIX8`RqjHCD9Jhq+>F`Cxfk#)L#U6ojtM9)YF ztiuw1f&`;(ao;$Tof>7IYNBk@|0r6??3{Vn`q~Cc@ga3L4AIs>ZEQ$|-^hbONd$fs zats)OF9cF*0*n72Bk*kSgHhlsMBt66%#OhSL3@F)?2z>TXA$_{-%X6bxnwjz1djOo z7aX6Vj_>|E7J2J-!#nw-!)Sv#{yq#c@R|J{Fb|&zDzW(cIe3`=S^Q0>tK;t9(y&1W2zg) zxaK13k66Q*-z&#W56J=3gYWg`=Jm>{(?fDw=HPn>-LPvo4Ddr6-bB$?-|yY0VduF7 zNFH7_+0JtV1gtABT*iY=SX|Q6f_~R`{*IEi!{K>7j=o3nYp?I@m4z)>)PJ*d!{su) z7W0)>dN_U4*}u|Ck1Lk_E3NdnO?Fx7nWkOtz$-mlWUWs(6s_Q-rr#ylL~1-=%hPxE zd84nSUrH%Kzm!9we%aI%{jx#-t$x4adLI`m#Vq3a$C+cgCu0)t>Aj5u8&X-lw{bYt z>xA$}&aN+`G^w!TI@a^Ce3>keOvuwkxoT_2>ZP{!URk}=hTePP2fMeL^J|P=f>`6n zf(xi&KL@*-`N1;7;@J!fz1z7hie>iAw*|oA=FOG-yR`y;1+{tWY$QWZx%HgY*uRs1 z;B=rNhi`TNkou|8_<7%}V&{DWrv7sf77z7q-^{u;56311AB2gFo<2U@CcNOpWAIGx z_6_7CcGObN|56g-G9Wz%3lL-S`Cp#z2Q|$!;m28_FI;OgWj+;t@5RISAK!(2 zZ|su>r^IHQc*qYwS``-pfDQ9lsLg%^vCjJ)FZaiVE_c4RAQLPVZ$mbMEg z(YR5_e1+vPt$`%QZ9E&rRM*Lo>z~4J(GIL(yJ$U}_C(5NAlY}A_ql-7!ikfL+m}8M z&C{-VxQmkyvnb#JnWs_4_Fz2F6nT_&z>oFZj$b|7>^;J8 z%E6;Mk8;xh-3V@tllkx5;$WR`2{m%A>p3<`#jn?+*?OC9sRJW7IU{#DWS&;AL z)~4o5R@{4Axd@TS)2x1ZLLN~7>Sndt6hxDW=h4|Qc^*B8uoLn>4{f#O&r1Y6oy0dC zLId9teLNug_=mTL$0fg1AAHA#Qy<}XcOI7WHGm_K2tV!Z&H!bjkdMQ=v?8|5_&4Qw z$O`RrhjwKhe75(3cMp|*22EY?A@tICjDJ2W`MB#94(sS7Ziq~lW}uydxOR9!gW9p} zKj}QSw`V!zzop<`S?sJM)Q1;J0}gFiZEL!^l3p)~D}; zmHeseN<4(0@zw`?x)yH@p5gV;yK)Zho3Jyq(-P;_J37|Sa*8;=2e$WO7iy8LuRhDQ zJ9qEJ>~knD``fy|ZONS`e25o8bE|jr+!9r*Ys561hrmpYnA2cMkwYDNj)9>$+{lm{ z&eRsFKsNuOfKRH03nD+Sa_beQ(`fZ_OvnIbrX?eWATp ztVsab3u3xe(iYaQTMEh-d*qm-(;(0ad&t1~S8vY-9lFwI4Jd!yU9ejk_Yb<2wtqmY z^mZFu7#l94Hb~o{!S0MhtB5-f9uCo6#>r*$Mz96@K)h+&A1BaeL-E^?vu%0TBh7%5 zXP_{g;N-FQTh{>=`IWc~+@4sErvzI(vCHU6Y%x1J97Rok)%J*Ee0rHTH_>-sl=F69 zg52SMhhK$iDKv(9e)B7?@93J6UE$rmvc2xD`!f!Z@ZJx%DxjsEe{rQ_G{y;o+Ff4* zr1zv=*?ot6^FuoV!Dbc1(HJd*QtZ z)mpb68XVf=4(+i0b?dQ1mA1cb{jB8quGe@Xl=W)&!fuX}mAcvl%YO`3CFG;e>JAwb zqbvyYUp>C&u{Pt%2-_tw1xru^stdD4aax(nr&JnyZ2 z-tIzLdMIUDHb583(_JVpx+BRL6GjjCXKzoI&XEsc+WLl|{}Yd>qUPX@Vm2HO8V=q_ zlR+$rhh~Flb>pGc#xUeuU}LzYcZrSRb?e18hSZkY7`{AUxs9QhU2S9XAXiu!Up}UX zop}}PhI@ofc0PT=I$_xP4qBsCU38#m-=XW?MA?Invkjmm%U<{`1dywkd55keEtyoq z+@M3glAr4)_zPz_ExL*8_B#C4-=T1fXIDkKr2k^AGT7e-oLkp_2UmS;;%PG96Y7TeN1iCZBx z;Hd%qu^BF40bD?H-U4)_OMqcVUy9%5fUoxUY^I)^9X_Y)L@gER@LAFE;6eO-EPk8C zYS6t!xM0j48l{hGAJ7$y?n1f$SKVFSe(=BC-Fbn7j_1p}dse)=BhcLZQ%FC25I%hK zy+~oO&#^cnBH_!L9>@xQZKHPe-L5a~oMLuGJ7NQ{JpZpc51z2|_PnN-IrCv4uri*b zHsdG~2=e_LtT>5=`Q?ZApabV?(}Um5fjNq&(#8h}CZce>37Ifu7O#dWTdT)*1e`}C zmGl|1&+)rF#ueq_<2>3!wfb#Xg3o{pf#ZgL%$OZrlqB7siKoWzr{OmM?55!DOs1tI{_msXJp@o7-MlU(u|9_ zfT3ey%*^_N!xQZR6|kpD1?Z)C&kj|gqh&1L#?~o#_>R&)ROyy67Jj?Zg9%2zixvGx zIH0TRNf<-S>>DHDAvs2Q@KG5sFa{n9kt=bouzrYy18feQtA5Ilj>izXH{d2+(eZ}iKVX^p8?8nUL8+ar2A~7HKLRe9u zxBGJV9KBTM?YS6f+SN+JrnBANo=cI&Mca}+!I9wW7@kBRW=}G*NrtH%-X31(!jdBN zme1Rg7(EdRV@+`kT%sS3jImsdj$PUv&<(tb8q7G@Jr?Di4aZ#&G)#tG{1%fL7U4bv zC>CmJJ}0%UK=Gnlz!#}@N3wWR3-<(hV?$qZDvnh1@)ZM!TomVQo&jI3o}FN?Y1Yfn z_CAYy#XUPv{&K5fNZvl^OCOP4~@AU47UI@cC`5=SL>d~{Ie*7o8*JN} z%O`zH7mAbHxCk7zeVwFdTyB|lIc$seWbPAf)5$})Y3+t!3J%Re#N* zM#Q(U3Xoo$SB$@KOe5z-%~6@JM{Yg`076IaXY=oJqv7(cm7V0=O>^l zpdMtn#e-u$C;+e8Fmgx8&Nt zS+Br-R<5erFCXY@YPJm}@$gYNkQE&brzGcPP=h@rq}qeNwR{tl440y_9ep5a{||$N zb0d@)^}ZkcXJo7RfCIt7AIP>L?L0E8wePU8x7dD{FYr`qInM|?7RW3A6WvI@a^$NIu-ld0;KS+ zA$uDvylDn%Ir=zQkanO?9$EJsw)r>fX`%goI7}9?A2ovxWhgS*#`HNj>-mSb`;Yhy zAK7^X$050-ffc`z$Q23ZRd9#o-E#*HWe z?uTK;u*!R5C!WYu1M)x{U{Y%XK@GO7P96*>K&W*ocQa@0sm$%$Q+YD}AKe$OHSH9apJX312UEE*gXPOn5hq zB;bmxyxj!?!Kqfx(MlfJfO@^%#|tps+x<2kOCIPJV4473`t2|!4{R3TKM*2^`UdIy zQzZ}FAi#qH#EIFTNO1-O-tOH3#Bo`!k(NAgivWKrK)3FKB@Yng?f$L+hXy-J9=JmQ zvTM>eEZA1^z}*7i=iozq8Nr5<2ksTX5&?LEGfN)0UjQuv$PAuQ^1y=vs1U&L;K?Nq zJS>380`LYsB@a9%fUyMNk|DJWr*IJ-DY`1iW%_bLx@_T10Vq;_6$N^kExuC-3vB=; zf*WiB4ihj1NN|ZQ!Vdt5geXFSdE8or__Ba0M1nH}3^8&YG!mj13I0$Rhai6{U<#7p zR|M?#cFQ{=LLy~=_Xv2Xw|j%+ra+ndAps8yu84&0HlRBMlo7lj5~5IKyX~47a zOS7iGa~)~Nx(y9E4==ug03vg_9@;>&E~|<(z&nKJR^g$e24)U(=leUv($T*>x|e!; ziXe5UauyCGEkm`szlYxqJ(Z_72=#pYigoDUJ$}@OUbql-9RaJ{#{W~wdOAv)u^Cfk zdg#6;1k~#vq)%~S5J#bV!biGy1bCpqV`Se;2GG3DLLltISn|w z3DJF6!U!MXFa?Hu(O=@xj5jQo6MEenin>A{r>)K5vk%W(zWzB5&8=w&MTg+6AZx1P z`S9%WUdOG8@Jl=2@rC~8-BR}jB9R;>NL@3H;wMtRCkUNvy^DP%-G+gPKgF$1Q@kj|0y#~?Y1DH}lN_!iXT z8!xuo;~U@S!9|MK*)J& z9-o1}Xl@9TJecTn$smhI`Sr;KvMZ4d`umX{@CcK_LN#~u7*89KPsT5| zCOG?y(dE1FMsuASd6p`VFrLMthEdA;Lw! zIEtVB7W0XjGumj)kB3*tp( zu7}fc$pQr2Bw&g?K`Z@WckF#KQa{V1*qV&+3ml3+ad`tfaTb*P#`pv6H9pd|f|~=U>s)8T4P;?q9ajA6(k*$ERyAYxl2O;xF`1^p9JtpacB ztP|8lGspnG)%?}V+g7&YN1j^rQ;U9@tDolTC#6ii{w1qA&}dWVdOzPZL$>)QqFA1_ zZJqv=tAhSTMhqh3;8N6Y3nWf2B_F@j)*NVUZo#);%gX~zO$(b#8)pZaoyw@GpIu#E zTC=dJ`hvj1+WLxsTD+{IeNk}oVzmnL?_AWjk~T(C#tu5#);6qKwldgB!8Jht&`w=T zO^tuGK$G*cW750ZEiRH^y zETcsSSD~M+Lsz40wV4~ssO(s^qN%H6N!z0K{0aWm4iR^1D5a73Z(@1w(Kn`^I1^C( z|5*72n8C`xs9e_Ux)y)Azxa%jGYavQoubKwQzjSr^V`?0Zto!9!M5cS{1aEKSg{U& zCof*PYAt@DRs3Du(Y~a;qoaNC#Li&bqAMm|x~gmC;fU6(FzPx&x?x{HgeE`C|Z{*?V7*I@H8`?M=9MMT<=&ZYF5UC`xaE1@D-IVcTU zz6x$h(r%rO0n&wHx{I%TNOKJ#z2N%QQoZC!q-42c&x@9}b&wNNkvtCRLLJi<;#2B* zw}71?cq*F8$8iUQyFr>eG9p%~e$9iGZr7mFC`?yafOlG0UfLX(UEer= zVQE7{4SZE|b$wlb=s;s*J-%h$Pr0V1Kx4B?OT{$JZ)y(Is`OM$X-h?Qy>g`@=2lk( z>eZlBgdXkG;8aX?T|-N=8j^}=4m33@cPhLw0EXuVDvH$5fsvEcuz``2RmQ-`V&xea zIYng-jGU^54~#rZc?U*LQ&|HeOVo&gkwt|nI~7~r($rjEt46|H22ZO-uqasqb@jE- zr+KKvuvcLWB2YQ6vAQ{6j37|i6bQ^QdT*&~YH4VwZ)^@!*a|O&S%@_a(iRUNxT<5( zs>SVU@J!mK+cl*4dPJ5|X+w2upr(0#LttS`-JH7mdA4!J;nj$PT8j)PN#J6`QWAKY zVJ;4CC@r58s6by!s#L?#(X>q_7eFu5CK*SRHa3>dZ<%H+G8qm^+9Z<^prp+)2~mj> z+7y!!D3L)~1rFM>Dywd;ErqNZ7uMC++1|woE}lHe7L^lRG-)zKMQXJV53waLB1xg9 zC8EKtjkC*a!8>vT+G-2l0Y-FGW((c{2DH?cy93->HoMW5x&sVot1WW}xRklI6L2yJ zXsL3uT^F72HtiAxr8LU{jW;S0SZdnjfI6DwfRYz&NQuBw(;f#@_#R9KmrWg-Ao!Zn z`SmT$PCe>|8Te$VUwh*Oa54TRh~8u`nlfcdg6s_(;GzWK+wiGV5`=HS)9^1r`UXC! zsF439XuzN}W|G#zgC`BQ8_9lMS>IS&+T35yHW=NvYnsZ`hHH0hHtltk)c9J#ZwL>7 zFP8F~cWfO9FXcCH*fs!un%cN^!)>WZ*a@|;aqCle_lu+|uD$J<`};*wAJ^Xb+kTL+ z9)tXGYDpTL==j>ZpZQTLntjQjH}_W>wC&Olq?TrHu}eRgie}wnN7vr{+X3npbGr8K ztpn6;mmZ*QyL3Nwqv|Oz$!qWa!vGS~$bRZY$w|d3^ze=+Qd@)u3vR%VThD|hdBd4TF+^W8fR_CuYl3-Y#pXtQcvvLCW!TbJyoO`N)`-UpxFrXxui2W|hr z+5Emo{`iPvcs3|*wW!`7|MjNSQrvw}e|)6(*?vl4Lk4yI^~b5GIaND!Yb^vs&QkGCI_d(=5JFSY=$MhU81q%D7YwnIOruj5amobV;Tw4@(aD znnf2mY&6Pb4LQU5DXFYnv}*aPj!reC(Bk| zxKg8roFmM-Gs@Nn+a2I@1w1r!ChM4K^?~fLjK&phomZ$KvxKrIW43-QmB*}%GW}R4 zkG_mj{a7xKIT?-1S9PMn6+$;RW43+_$m7WwW%{vF9!F=C>c`pgI3}a9bLp}rn8j7e zvp-|Dd9Ie{Q!>iT^Lg?-Hlx%$&ynX-weV_0czGEsv5cjL)LPywrSc)l#~{Ap)F=Vo zPRP*$bO!}Yp$@6Dm`-;wOS)?!GG&c;9*T9l3+wTay-v9&i4wEdEB9okTxz6bC_V%D z5xgjr<(_q;$y*l7D=Am@TIDV$%$>c|q&#XQ3%M&UKpD4d=!9(SI7k>uE$DETaevnXys|(79y-UX{1wxm0+j7ap47l#(F2u2FyTP&whmy18r(7UszsW zgE_N<%Xo=}V6&xZVLX?P7n3QJ)-+VvQKJ)wIvo^rE1bhEUnID7dOa4Q+h|LLE^F6P+3gu;J_k0^gu}pn=Ou%0dj&Wo0O{LECf!uCg9018PG8qqX%dO@W05lfZ6V z0t+hwO>>&-8`Q=G1~F0xs%O`!4SMy$R8?A21MyW=&#tOys8$=2c$eDBOB=ZCt~Mk# zptNRQ>HMaJ^>qtb*M`IvG|j1QzzTiSoU+nJ;1b%<(p+6r-8>)Qga$O%*Vi;xlTreM z4fPEz4GU`nbuGXoG-z&1&74xS2mdS@#kO~kPcVwW+(2EzlukEUgS8PjHKO6h5}fML zh(K#YeG@dL9gLGyZ9Uev66{Hr5JLe*2RF_VvO!T^Ra!S2XzfXy=(s6qPm+L(nUhm^ zu?pciK~lR9XE8_u+f;gK!wIhml+F#91vV#KENtQI(&{>p(@Sir=$d-0`ROG#C$b#y zfLUF0!kbIy*ruyj*PO_z>SpZkfL<1Qy+T({cYOwRx;TuxU7pf4IYzg7Z4zrPP4$({ z^GactT8S|@w})yt@PTu!#u%!BtC4lhdKXXIWDKXblgt(q=FcN`!ihC|>V}*EAG#77 zX3EpRx0%}x)pI@_sw;bC*NTN^%VnY7a_Ll_MhOhFQ{YXc=7CRK7b~-N+2Y_*+IAJ1fim01%U z4fU;PyKLDam05QhEK6nUZQ;NgZ1$+khEdg2>FoAkz3ehKag#ao{9-`e*-d&Ux-%Yk zWj59UaNYZB$l+p!&#xs6$T#L6jhlkZUVf@CXTI6mAPs=Ks62!c0V(}{sDju2H1%G ze3?Uas?1>S9CT!ZXy|C~6jiU82xx0|MLV{~SFMi;WGw}pgaxMk&~PQ+Cd;L_}6E0?TNncrluUGAHSxF+*j4pKX^mo8hpxP7I{3~`6* zDTGk4$+qPS*Q!i;<@z%*$WoPg9sB=pW018AFU9_4*J_n1-&NWlLoAIU!YuIz)E;cV zti59)Homcqm?^tq2Yn}#jT;$Qy_~(qs5Vw|E8%ZT0GD|))1T!mf}R(0<2sh<79u>B zU{>Q`!NT^HZI>=bM40&!_w`yRKZfsV=U7hgcevii&rnRdB2OG zVk;-8&pAM?_q+qh3_y&@{(#T3tQ^?h4>=vIuyQUl$$*t}sYzB^Ic+96+dAPUh$-_v z&fu!76V|{B{jy! zbMKimj-a7_UmMjpla0>HUf;DwWzPB#>3j*=GfUZw0tx0bWhz?;D_Mk~T@kR1aAOduWuRGNq;2AFL^nHZqT#4s^HwTW6{fb&eG5(CUJAxaETV>bO_ zfLasy#{hL^b1w#{H~V=pK!X}7gK!LRzVamk8r7&oK$AKy5zwrTPXx56oJ7D}bwVOw zo;ooR(5g;K1k6{tiGT~#$%%j>H98S6NsUPaOg1x~SmTP-DTz6zsIiHFsp`~3z*#CU z5im`SO9Ygt@ri&!by^~zF@X6=|D|P1P0D;!GQvGMk2H(P}y9D)s#6nmULz!su2^c7_Kl8CoI;KHdU#jL#}TI1z)1CIbB_iNNyu+S*bzH4%tKqiU=` zos|e}5(cLw0wM6Gn)>oNsw5F!S)|TRf=p7=lOU7Tj3h|0IwuJ-MV*@jnW|N+{ou`dZ+h5di^Y!a}cbatSnK|PlQuE2~3Cjx$(1jd4-`dt!?6tH4a zr=Cwjh>5D-CqZe`YJUQE}MSiPJIoT6Sy1x{73 zrUK7WucZQ~sl%zj67_m2uu#2`3N)SfFG(2jBym6UW)j+Y8tJb|xQ6<9SULDx5){fa zKJf2Jn98EbxVezjM~jMai!~WGMZJ{*o2rhcz|K-{r@*GEf26=l)H}(rNrmd4DX=2- zZVGIYdM^bwS-qbED^?#Q!2+#;@)q>H50l_kftm*OuOy%>V||naY(nS73jDv5!CY25 zmIN&2l8pK|3EF}+Q1wX?5L~HGlVSA@^VMfbzy=->QlBS5E3vSuzDNSrvZZ}Vz`6A` zEw%JYW_>W`bTvYp#YVjj5JSO!^x)HziqM8t+EiRvs5T{`;dTR!b+V~ZT2rL1`!e(- zWzI0fYE39TS(zgY{iBQ3^dqv1Q=p*~ONc0O zR}u!tgw);1Ft}ayA4xzN^>lx|CmGdjFRiPKrEl5FPS5WXj zPvw>o188GAWqT@8f((s)JQZsP&;fkKI&ri>dt)JV05?HXungzTxsn*OC=?I>f0bIM zRQ);?Sf+lH3M^MorUEO}f29HgYDX%tQteCyw!*k}rGoW%ySpDmps^g0jCv{+C7V=F zr^07rftTz4ds0!QwXj*5irSlstSGCAbg>3{+x=bFXs~c zp;UzNC+g)?R8^q0)JDIOgsv%XZmdy5J93QsLN`#y(z!x-k_clG>UIZw%l-Jk~|FrJ~B} z>*v&#HqL2MHzgs2sEhgB|$NTD^jYAytTU~tSUl$iJi%oZaXlG;^($1?q#q&e;`+GCntUzFxU;)fcHt(T%95pZoVXGq zQ+|znQpI_z)^`S%ExH2dp+=m~S_Im>s%z0wfU+k%XoD)TInmxh*y%CYZ0z{pvMGQg z3kY<(eA8~lb!CYtDythY7vi}A13140L6AAx01;!0x)DAX^AGHr8h=1A&QM@r!Nnfi z6%aTNHX%z7H2m3(^_ZpE{($HTEPZe`o9kWiS%HcVmT7@UP2SmPWVo9g!25rofR zPg=E6?|RP(%ok(apbsD55$3m1KX9)WenpyiZ5*U;{)A!$aQDGJ!O*RNayF&5UhXuR zqa6Y&YiVw-=P8{!wNW2haDY+owGQCCssLi(kcOOBKOd(ZnrxE#7y^K07@`euV+>eT z+H7Fg#$b+`LrFl?+Z_W{1m;$k7B8H6D}r*?~r_YJJ^FL#S=%vn@Fdt3dm3x)`T1 z|cQR;4Se;T+8w9zN63 z>_bX?E(^@Y;>NXp>52qkiJ(CiHbWXFBd$|Q8^%gr2iz9WMvc+OJIr0-riDEJf&RQh z_jZHS1PyMZ!C|2m<2N0FeXV3a>nw&h2GJfBayJDQ| zaB#BI!O1S+#J7=k>=r(InR?VX z;%)F#?0Y_c1|TB0{f^pSaMXT4YL_!K%J(Akd$MtL7v~Use_*2uvT*?RGMt_9{gID_ zYB+DiPD4I9ATvgdWL3VGe#cs01ggOI%Enl&uQ_Tx?5Op1XRU8Yt!gAo`~Fgn!Xr)x zO}ywQ{T!S9w;Y6yItaZjgnWE2x$hrLd$b_mVLA&ZlYRdb)!<~Z?_H*Hve$Ls(6{eB zKICSvmxuTH;KvAvAKwQzkb_rXB)Pt0-;Qzc2`L)G`;=*yPYmfZrrnx@&zbi4_@*G= z7t~Rf=BAJ75gFLyUvxz$>_iS_XJ?AJS@JM41FWW5!fOV2O_yYj@{kXo%Nhq6jdC1I^jx|~y zhG$C88Y2(h47?tpt6lm0R*<604u}F?BX*tLw4KsU4%?6F?~~DxR#i{C*V~cR^_X-&OuGXZWJ4vW1T$9 z7DTPH+B#>o^}5uK zE!S+@LS5lBsFk)s2^XuZ%gNCJkz<$D4xMU)TI=L!os*;WPC0(VFeGxk(l8|4U1b;& z?ylAhDGw|1U1NR5N^z$Ga_qM5i&eVGS?P7oN;lhbWFcSJ`Z~%CLjquN#G`VaAz#T^kB8T2gY}^;a%9h#qcid-fDOkVSd}@oz?liV?DyEZ?!NM_`YvF z7OVO$XVrI`sx4~zKdiCh6Y$a&&Jz|Z-#yk8j#%_ZKd}CW7Uj?%-7Cr5jKu)|P}2U4 z#em-@>AVb_o$18uEZ`yjQy}@uLpFT(TNA;>uwR2tzVD}2MY%1Fhn+0_%*oOthNZ>L zOWSdx-uI{w%*t3?v8)rF@-cbzk-wiyQuy00$=u8XRKeq7Mt->+rcIF1Q&u%)q-%RxGUsH-wQ}X#qd6gednM_o z{GO3yp7O9}L`V&&co;uamF0WEI-$ar%8O1e{-C+YSh5Uf*L;7pE<<*=9zk9blt+0; z!uKcZC6Zf=2D*K(ShX>7uQ|yb*5s6j`FyWi?5C|2*uFfrG^EFPkQmJos===w+=eagcMeE+uQgTCiuR{W`T0O{kH9@Yq? z$CsYw!PRlywFjliP_75f!SdkBSkZZz@(qz(Zk&qVLs~5AbEo|Y=@TDAdYUgY?T$*N zPLi?LDkKDCO+Zn4IpT-eC_i{a`=A>~T&b?d@XeXp`5X`+? z29p!hIQ{_D6%3N6lhQaaG*iHk)QB^YoHgpCr)PuI`$&&E zSZlIP;flLnZ-o8X^8{dE--iry4bJ7@qU879cY3Xy?nLMirfo=V{rCHAyvU5}#+FY2<NShPe z@#DQe{W{L^Dsx=-XFRU!Qhs;lSe`mXsGgbkH=q?l^~`Zhx%7%trMx>zWsWCJe^zGx zpG@}CW7)qZ*?AzefGO%Ib0Sk7LqeaRKI1-=Om|H^k$-tgJ>69Z$e3X`MLe44Jx4PI zXcm54?851;PXHDp;_-ByNd(J3K%WHY$vkb#GwK@6!=}KTO$-IhGs+sngPy=N+n8+$ zn9=gcBd?+tWc&{BayKj8wbCxr+fNyRi7xv|fzE5B!zoC*>mHjm&Z*eTa0|ukFG-y{;<|EwC49k71bl z7#YX#bh_Q#u}F&y&bNW1sov4@$UmS?3ru%SW=>ict$#ERri)7f<{|)2;Sw*dLe$`m zQSrM7*2Qj`k#!$(jJ*kD3_xdhTsh!P1Z#x6P0IQ=Gv5Qw0U$49zX30aG+Q(_pG2}< zRPk8eK15nHeX6Oyu4{$vs1@=Sy-qCD@G{79w%^J#ne46{zqets-77bXtz|W!&g0Y8 zy%t+MZY@)+XWUXdrG!}g+D5F=hScD6sqzVulEw^9m&S+`2B%Xj-}QN=(74bz}F%3SX@oE1J7HJ+8TH(&-qq=B|-Kx`GWN1kL5fbe=cYm1#}s zizZF_N)3*sYn^U%(P3F>bs#8`-00vErf6%~WWQBZX%#U$qZ{j1i$<)aq4T1UeSO6g zx_*$gGDiRUK@_Dn$Lj}ug2BVdBuoKY9Lw8H$=?hT{XZEi{TnGg4)d1f?XAlC%^-Fw z{W#x#)bwJ!>vkK0FNi*@_hJNJa5Pu*&zm!HLB;(A*`KN>78IG4uoqTM+Kn1K4>$o_-|~{0P_StB|;fiA8o|9ukiLGVuTkKKCH% zObe<(=_Bx@)R~9zXE^>3f?Of%vYHB6x2y9_>#jnw*S9s9p&)rPDd#<@yE#U&j%$#B1RQ00BUEvteW_10OB>^0skg(P<$7O!T8_0 zV{*bkriZ#}+#WM}TSK)eG!+vpqzme<4lz!Wl$Zb-z;E_ly0n@!f{eC zf2FdHmpu7+4Q^0bITo+ZPJI=e<(rq`T7?$LtEnG2fipDltbF}CTwI8=7HUEU05dcI z{UTuIxJ2hL0OZgBHgguLa7{;t5c%r1>MNh6D;FmV8fM)A z@aeY!b`naTemxQkn79UskB~T<*{0uzr!in`#v@2f|26*X!_zq&D@iJgq{dh+Ehv}= z7z<9k9f;9CF-E*bjCfG`dgO#1t;V05kbC;`AoU?g&Ey2B2Dz^WlxCm4t#z=Pbv>Zc z33U0iwJf|9e?CXH8Gk|HqIQ>3Pnbe!@oYu>>dyXt;NJ)QNGg2RZvaoJ>V8yp@m!@! zKSWh&+ZL1#f=bi2T~d0S{4Op%O@5aay$MEf;zm=@JvMFIVs_ZHZA;a}_t8YVzk-a0 zUjpYtZ+0AzJ5Z6e+PZ%pBuFoo4Q|A*O+rFE8b1?rn7OVUbS-nyg)C(*dX?`nK`--L zW~WD+h3qtYc(kF+PLK94=AuVCVGt7ZXy-6Nk0uFvw2J_l*o2I6moWmh!lO+EkjYAt zV_lnBn6=-|1o`^>>Q5Q0?BG>qzDzza_@-(T` zMfAiQfo=erTv$_ec?(?Q-$cA_R|Rccq2N49^^GCzL3YZMzD*4VBrAQJi@(0~ZEm>z zbQikRA z#U)kgWW{bI7(6UTLOR($k!u5UT|4OS7XV44zMHvd=7*V};roZ0PBsEHKEdoivQ{!X zJ6SW3(#h5_!A^Du6YOM?U?=-EAQOKNxx}q_glP24!Kj1D2S|=}{hftb`zK70pR8dh zoQ-_(!g*4-$OnqQML~yr61vjFcaXuBPy$93O+izR#mlOR6BF2z3e>s#(b)4KKJnY* z!N|-d$VR_C1yI(j{k9+M2^Yp8ccJ{b@1pR}kxl#UbC6}VDP;R?WGlJ|@Xh_euLk_? zRQRm#_fyr(5zr%@!S74~+Zjv%oX+5A0vw#u85GR}HXXK~#QDsffU|Sw#BpjS4T_!n z+&GYQk~;Tnh?SlDB9m)SI=>*oj2z2mUJ5ij_mu{n(7|V311yz%bG$J1F!N0V|5*&q zJ}0f1tY)4Ijj-+eV%U9B>Pe%}*JJRP37=>|fN@hg4wRHCV?d|_mZnupf@|@*^`v;^ zn-Xh1jIysHzjeng7vnnw_FL7hZ(3X!h5M+G;Nx1!JRkNV10FjPzuRL)tc@rpeQ^tr z(ieZiTnynqL@qybT|20gxoG<@F&BG-I|B*!kF$}G0q+ZBuVVHeS)W`4B>Unb=Hh^N z9TV(}4=};LC<*q(=Kz^_6*^a31|ui}b>;>Dha+(oYX7nj{)U9YrY{BnY(+t_rTzxI z%aNh~zBp?%P^KJs+kuAt95zA-UAa;d=xVnj(@EgYy5qOxkDeCtp7@^t+m6;aeq)nH ztFhGp>^a6m{M#jpeHevj3(YeZ;=664yW2%~AYHB_{M#*t_z2}EzKz^*p`jT51*ka% zEj^7N>yD9^K-^T*N0d7icbo?as&Xn4qBy#dOSIx1MXjQ^xy(hyeTNAuZYL8|oFu5Y z*8!RM0~C()FanjLN3H|4*GY;s56eV?HIHV3HJ^h-<lb>`yc@OXN%Jpc(mbw1S-(i*>h-wGVyR2*l%5a$Doqwi0*g?# z0TrK2Dc|v48{}{UKnp04+mN`0iF=UvEfWtS@ir3Ews5nw3kVM zxt0JaDE)8ZXLwB3hPXa- z60>xXq>Tfjjnxp(V$iVeSa~V>iL7ND5Vf$MKr;u@xH$wvD2HBVh&pMe>18le}_>~72LXY$GwXnn(qKK z0m3-_2S~IbG5u#qd>4rV<~|j=%x4(*e%g)9&Rl)W&T=zHLZrk>nd|X1n`IhN<`P{- z^1lUyQ%$- zmh5{4xCO8QG(Qs-hPA_G+zb$1#$EF3n*IQO$D_psWN-)a?x2J+)1SuU=_UBn4&><* zkzlT(eaP`J9%P`1&wFQO!0?h_>f9qB^)J$4rN1H_*7`gWXA?DpbyudLIrlq@P;ST@;wC$~ty0 z>hRXiHSJi+(c2f#f`IM;IkJka*U)nu+ZQJ|wl7Z5TRIcCcd{QOT`gqA_6s4?K8hwFK|%5 zNDO6sJ~_D9#T}&acayU=$)hH4cWf2}^d8x|;}8Fbwl{%~vbx^K-U0nLt1V42#vOfLLuSWpJw-DlWAeP*G8F`C94%Xt6~L zF0Hi+D%Pd`pXc27&fE#Hw!hEkKX7u+J@=e*&pr3t`|j_%0P!8kG2HCr;!_z;fA(t{ z>Wdil6@efG`fda77YJ=OnK}2O^ax5L9s{8wuR0^16=FY*oIv~$Rk`ng$oT+&PN3AE z$w`}4v^gj6$N8|yRO{Ut1XGQ#*ppOynFLeqUm&t6Z>8yW6mK`WXCu=@cOeO;>D?r# z`!a}Z3QL-Pgp#DW9Zu5rbj_I`8_ewU?-pt5OKbQ z)?rnwr)cX=xDs(=w(f#m)FWFZGed=FGQNsQ24f=h0(U5;(+Mq|+&VHe7|9KGUGAJ6 z+3N()c0%cpU=Gk0PvoEnTrF0hnM3Ts^1yZuc|Lf41S*@%obf2NM`=VE2o>4qjF>9~ z#=c63{Z9CGSl~d{LESSB#6v+K1Z^L&bk7MVBdY7*=5< z?F|QFoE#==4mkN2Lq-~^VQ2K}nsD7!W^6Bg)ph+sGi!TUS6zEqS6$DsuDYJ1ue!?2 z?j!R0s%u}l>NtcP4;TdWqFjk2K10#8>liyR6xnR z4D^J6Y#0(;H!H$L+WR4kjQ1B=-d|*SKiTqrvgLiL$PaD>1KQ&mmd7&_JYHydyvX)= ziSf7(FMQ`Cdv9jKY;9A8HDnD~+}KG7o)Q&wGo z5$sFZtt6;R9G&IpID`v}~4>$WT~G_D6DY zt`>_aJ^kMD)CqM3H#Xmvqp8qdgfwZVG~Z}r?DXG=R?o-we+@(aEA{K8i0dKn$`F&j zuYy=dVh@O&BpwCvIf!h^=Nv`p^fYwlZj^dLHK#Q)aSb>*XMl);$lg!E-Y7kcQsK|h zltlS2Ah@FKM+n#>HEOYS7{s@kZ_!2!pEJyg@AO|`efgqzl&(rn>GTu}q7dFroHWJ}I z5N0PfXyJrTIH7%w2LiJziou1xcfg*k9gpq8JOkIc`0w``_cjXQqaOcwjQ=yNE3}iO zZUg0n=E81#vk|Z5&FoFBKv+DB@X<=Vc+_{RUW8g)Y8IhetwrcoS%i9eU%2$$rg&Q# zit?pP6#oh9J-shp`fk^?-j^>?lv?i#n7%u7t@kBN6j`fxuYPMS!guLK_&uyXdP#f2 zTGARs$t=QqttIVwdr5oIENQa;ua{o*IPuEnw|eQ#T_hr<7LP0 zO^Lz&G@L9nad=Dmf|DiS=uo^R)^OTnq>07>PbLK%Epxz=NgZioa?q3M1df(D=*e`^ zXCdE~n}UXPbDRls`_elS9e-qC|27EFRoJ=V$u%E7{D945->u+HhHT&KKwL>;6^Q#u z;C5W+Z4xs`K#!ji(fzSC z9~8}tJc$8KNW3Bv%RPyLn8cgpXYB+32F)`k8O>s=kLt{Vjebf0I(hv=zodU@(!X#j zB1zvLjoFX)?r!m5peJ#l35myaFFc8_n~>N`iO^+`Fj?Rmh*L(q8!wZ?g<9X%UYOy1 zzXWRz%d$2!dXcktUf>$pd7BBvSNv2AVT&t0G3cJukDH=l9le5YIdc z7M4Hf0v;yoizqm|I9|VVneX`a;#8WH55*De@YaS{j7sGOvW4jOg}B$GG>P{`-O3Vf zG|{C!C=IHFDkFkhY|wYuz)!{`*5Ek(I%fNp!X-((%DoAy84$;sVY<%3LzuyXncg z5sGK%eZ_e^qy8zx2hfpwe7oR@TnG3IIw#iwz9hku>MeVM;8}Jdc-s9ea6(;>H97#X z!FMv2g4qfdzlOR0bOGnG1ZA{@UsgVto#D2Z0370kOQxX(5a4x#Q)-;T?-86`NUy^F z=#voBKpZCL8jlD)3nK2ZwCQxyn^!A29N$5iKfX3AuuCD+=AcZQ-bjbHrK&el!K0SX zS`wKttEP%CM)$oVH(K|`_pTSkcz@D7xoOn#9hOorzLVScuAFh{Ej2T$mg14z6}V-{ zYd~(JIuhXhBu*cW_ZsxwAAs7{cQ3Bhf~NBI8mpNe)2kcJ5%q zsc+xIwlW&JB0<&5oafQciBPjL2Qfj(^+$R;;Y-k2HaFiB@upSiYVb`yS@Jk5j}>G* zY=6WK{yXpj)@3A?ilqVewN#1b3R;FsGBHu92MaMWlcy^m)@2-+AA zPN){5jcpX(gCO(5a=0T};5GjNup*t*r=OD)?~ZW_d!YI|zAk^b1eqptfyIE;!JNHqq+_aThD z!*nm}d_`QlLuX-_Xq3)cjX6c}HMzW69+oPd#pj58>;DNqd8PinB*bg$SF13hlfd$= z=Sd7KbVKzU5`63bHbxe_NisFB;`O#V1aNq7#JT(me8L^m^nDt`ZD7SP{8vpcx`;`B z3=NEhpzo;U_Y)ioUa8FN3xfH*5rpJ-YYc1^CGYVayd0IhoVb@#yuSDW3Ff!k4+QgD z2wAH|pzW&>Y_lyluFI8{3y4g=qoS@7WPBAW4XgYz8RRn^N^j%PGaQ%s{0i>Rb|> zCcgq9)8x+(pGon1eE(jJN=}pKD8*^=Aqm-qfRx^aAi-(U4@78dx}BMA;2zrA17<4_ zIcpL(1C4Lvel!rU5H%}FiUG3`6j21og1I@5{%07 zUBVu46Ceba?^Wzd2Z%PFWTivEWWxQK9{GxRbBGff*@UFELtx+7~Kdp zD`~8~f$-<3W^;FWB4+PlFl?DrvgGyN!)xeZCwB1Pfxueyf?NJ6FeIrX1XJf3a6(^0 zG~ONQjkfVF;xLpp@{-0H8{N^U*bss?Mt~DK3DL$j!mVMLdk-_A%)TY55aGqD=oq4Ca0Ryu7N4}FL_?r4|=+zI8v#m4>a!w1At&c!{A=&Wz+_00Oo zU@eDs<}47H8W}mLpMv^ztR?ei)QZ@>Ae=EnP*1~7S$u~DQ`39|$y=0fmT9>ivU*V- zy53C7o6WQwCMV%;mM4+WaN&m#mgAESIKmfVGzj*%Fyay69U$0vXPDCi2S+fEi?bx&UuZ$3s(FO&l=Jiqs15}%H3hw;!XJj1711Hc;8 z6Gn7qH9EeJopa%{WOA>P7m7C}8SELRVL_uWoct6f%P)MP| zH%WQWko$2aVr1lgoU1_O{~Qv`DI9PB@rpIZeTV1cWawB4H|8bqdE!d%XeETMvBUo0 zKOwgt3fXLb>%N%7et9?$IjSA@2hDvozM-c^##%Y#BWYfmv=r+pP|&I0>1vasEyemn z=vrue6ZX34GfVMD7)$3z=1tO%4t5ixz74RYPg!)c9%DS)dW`XG5!BBW_6VBi3VUj< zJXhFDXnTJ&)}q&gjv_G=E=FWmbnws3fOa(T8Hoqgv=|c|=QT{h?OnB0&TVuKUWm~> zpAT-_XxekAW$N!ApIDP9t{}D0Crby0Kl=88X<=hS85)u!CSOua# z1NkgW-Az*ygRfizse<8sL{u@L##Uz4fVx^G?=8#|n zF9Z>u0aNVcUp$us%N(4a$od`F|2Dnwrfw~J?J{Vgr%@e?Vl6Vj37_-~^@c-?4h)?O zLs>aEnDvWydijRITfB|`bim&k;XD_`eUM?D& z5Q;0XvGQ&GXrr0pM& z2!$8Gdld?O8$f(Q;sFq;m>t;^%XuB8;V9)C0WlrKh)+P^a#qgQz`tdUA1%L5q78`l zNWhFfx$pw+{Qi1yhl9Hq+?+xX_keIR0(m&T2XT<~XM=r|^%)?#!aXP40{WZ|e@8vD zm z@nO`qf!8v;-mS$EUdiR~W>x0nxW7@Yxq&SWrxa>Y&tVYlwRz=j3eIC?Ky($sZRJ4)YFka z7#TPdYB!=$K7?OI3(SXqd1B^>+7HQio;=Ef)y6Mx;Qo%cM!g|xly5HbMDO#wp%-B} z;Cds-cPZ!_~2k@;dh-pd|MKP9J7l8k&DZa__?%k$dNYh1}~K27VtN zk0>MqSK>>7c|&A>CTuN~)-dfp3Em7XiT4=@gTyer9dXiw~UIilK3&_nu&uh_w zWbRX}=IZr22q&ZaNS(RAU_CRpB^Z*qXMw3h2GZ)L(yHMR{7?KD9+>T_@ zRzdNjMzxaLxF-U44TRdDK9;svInci&=%0izj5-NnF$sonBM7ONlx;vsmas!4xPyqKG zu$meE7Z6Uy%=2}IFK0b7yb~Cb;r&54VK&Cxxfb=Y41X1>_Zr428GanKFE^^SGn|k1 zHOlaxp>Gnt@u-vV(Ju+#G7#CUmkhreCCTu+NHD`sf(ZW|f9T}^3_~o#Z^C|EkzsgV zYCo9a+fhp|%8kS_q~t?jHkILfz~9bcIvjkQBh7PT?ZK0CV|>Iko3*F1VKNV{HO_L} z+k|yE&OPEssO{W0@5u2M^<;UgO&WA~+0VCi;IB;TC(FBXupsN(+LGmEIeBnM-&)qH z85eo%!u997d`e(o4|~zM*^ytu-5%3G>4svRQj78)4?x-s1sfIC1pHP8XpGSEBY$nq&{3hioSM%$+9&fk%Jr z>@ieGXInu@I(s&V@ZI>s&TfJM$u6Wymah=Ez!^s30ULT2Zi#Akcdrq_L0h;Rm~`^6 z$25moqdfkYG7xf@Wu0IgiO;=zc`#b?U?zlGB4d18ue-(M!RS~X$Sq8xxQktK16>_Cm+z^xS;-UbWrW6h*^)LPMWHy(D`rmhj?@a8$$S4Id-SsJACJf; zLvVJp4}a|qOFf#D(YgafM&<;B5d-l$s=WqcEKO#VAJ(Zs1*d_;bm|!7R|A|k{Lk!Fha2;C;^{I z(A(q3l0YvrxQo%rngpljc=cwSr5fXWgw|4mwVl3lzv6v%xbJ@tS^9>}@N%efk=PhB zFAt@enhOFF=bCNEj@ea6ro$pU4a!cq)kGcp+fmC-=-8TPh9vacA@YW) zKIK3NN(nd4I)#rx{tpkq_NyQm%r87;Gxtt_AKM%c#Di(^%T7gj+c>6xH}O7b#*+-g z*x{|kh?Ks(@qt8Y3EUraCaQIs#V=g+nTs*WN5#FOcLI8S*MoHj6mmC%7+!{Gd~Dcz z!OkWphjpK#RJaYwG*Wm!h#%0C!pA{y+0S|w#EVe1Lxp|lG5bA%&_^J6PlhER`_yA9 zQ9)OoZa5!5a?#Qnymb7Omka6_gZqlMo5Q>}^~1i$*%e*MGiUlG;X``Qn^iMHKb(C; zo)Y$QPrq3s@fP||eY~mVGdOW1$Z+0qn@PM+%^MhWrhO`JJWIxu9JZ7x`l-CSf!i0{ zabXI{yyLh3S1Rxd>2dsO#59mJ)`n{3wR3_xioOOLaZhtfmn8Ghj_(QMC$ zv6BsLj)5-=e*=EE$O-?v1iK9o-R@O+J2PtYbZ$=MjSRqepOM@Zj`tbyD8E^$9=69l zr6e_jlRVtT~ zzf&3J06I6xEV`C=@9mx%)yXCyG^!|#B}rz1WxOubrC{(V$^2l?+!)pB_B>U1mA zHR#vy&)|FpqA?Zw02}3n3wQ<9R9rkYh4QI*%Y!LYOvS}hQ>dJ910%D^uP-dl3;U4e9i zj&DtP#ne%u1kCH9@PT1!1@?Xks`!oqAG#*4c!5C*Rv-pXKMEK?8c+g z*VUEH-*!l6lOfx{j7_Mnha2C+iA-)DeZ>WaH-cM2UuofskfEu<10ZBO_#Oz^4*ng) zAD}8D;~j+8AZ{l-fup7l%uvcD);3WKBVeew0MdH%&A7B-SnwOu*<*(@K@7pr<=iv>OiQB=D`%g5H29It8_HF%vL6s#WB(Zx6 zVH$~8Vq+I_dCvr|_n?gJohiHed9Mr^gx4V-u7WxCJ47Oy-I@ z=27tFcyK!Re9q_Vt!JO&X|8y>2cmW2>7{oYPjki7w%Al^Plk&py-*H2Gqfj_5Y`bB zPsR)dKYj!{a_QnK?0}4{t%)pM-1v@wDtR?=J`@&9y9@5ohnsTy$Cz1jB1^G0Rk>%h zV{9BAbv9WO7&&L@qNUXrR+U%d?HWt**3?Vg=im(YByjL5tGuyR?O98vwI*v)M$Y1n zj%BUJvzDrty;}W31U$*4M0xxr%*EAn5*)uwoY)D~0n+co z==XS8QZEzR6^QS}%aIX}LZm-Mu5dGdB^lxrJP#fMf|m<`u@aK_nfq2^0Up&TRQ1y0 zXHXpiao^Spu*a%ftd|zAH!Xevkt~X=i?`^XiParEY4NrnX;C_81?_4HS|(J_pt-I0 z$6CBvT71m3I1nQ3Df07Ji%oP0Axs#pP12zv==KovXWeHyv`NgrY|LK-5jyX?A!fed z67W*NlMem)M>>QMCbW37w73SUdeAnz$**MqiAT09+gBu(~0q$5SP$6I_2JmjTrF)0MLn4iHU~^{Gl+RgQr9}fD`{)C24HX~cPt5RG+@7Q5 zI{aMG2;bg#s>pdumo6%wwZxOWL2=KNcg1UqEX6G9o{d>FtI|8bS2(tV~Ric?X=IQ7@yeh`UT81{#1&L^~j}5kgpN@1WSvx zGTiH^M+5o~z3$2v@mNKMONw6NqDwgEM-P@xI{!SU{Ya|w^sv>w*om8sn-F&v<6DPI z=jdPt=KEO7eWk8^v4|c*oN)CHm;#G@Njp&|gQjOr>5RrtzvEU6Hpa)5Ehl3Ah&kR^ z&wE`!`&?>oOw?}TTQyx{Je?Yg%NN&_d($GYP5QxmcjI4X(LItrS1ej;CVRl~e}(pV zcW+k`+Sr`(`HQ@eeCs3oyIB2PZ+4HYt;UjvZ&}POU#eFoFCn|ho7HtYvu1nqDe!}s z8Tn8`GdQQ>%{&~Mj>9^~@2Ir=UNV}e7WKzpB+z`~pc*R#zPMp7ue*ymhk1@!=NT`j zcm0OjbI}+(t0ty|JsEA>EvF98bH#OZmt($2V(RZkcn&ql$rbKO>$O0pE0W*a`M2|b z43E`i*u6m7*|k7Mg{J~!EcAewG}2Sswl#!Ph)1~+hWNzLmPascZ8w`md^}+00kDpn zJ=+qF`&+D#H?i_SSY~@y9?5GRS?b3i;S(&c@bMtHE6wY*iV}$?ujVnUUOS{+gwqp{ zy_pG1y)UY?=qyv6hp4)3-r(Cc_9r$Lp0aGmO)~I83tMz zYp0>kE3mGW&o{0eby|0W1AKRBN-u<>P0XM))YdZy7pTE`pq!M;gORy#j3p&yAZh-m*aAv4K0xno(&DKdnitLuG8oh)=G{hE58 z(KdjfN^h0JS+5wVLym&7wGun ze2dm5Z@krEG&8|!6;51W`b*ral5 z_V_9LN6p7y{qx~lV*tOiS#Ta`sF_;OPKK@y5bNqmrkWqRc|)o*qr}|1^f{$VfK~zM z6Y+19u%kfy7z-q910O?CIn95FHiKvj0DSdDNwfwad_-LVG)Ei~Ix9+?EA)UUaiP%X zMosf#vE3THGoqiNUPpg2t93v0=`D!xBQ9?O7}JhugU*vS z+N}Sv{!$P9HEP!E$VCmmYolieWAj3+WW*DvxTS&FVQHXbX;?GIXrNgm-n29MX!?>^ z^XGe=Ol;ngK@*mY)u54Kc#MP{D%O_)FeXH7Ql=_pCjqSCYuLiCKD5u&NC9x9Vb0!g84PY;be<^fU zl=v>82SkY<7W&-i31EK0g*G#Q#|wRKlz5TQ1ER#&3Y`@t-XU~6q3HWy?Ym3NZ-n@q z$yPU9c85)YZMEpKWm*H<4#YGumKh~xP!MJ!ZMQgXH#17R3=yIpk5p!q5o5H#CeoeF zj6Mfidr=(sA~Q-aI*J#?L_GiuA2CCM)`>=VY~t~nO*G466ED(iqANW%@wJ*wbgRcE z-l5s1<740)M;FZz(N_#g89kyTX(P&y7U^J=Fc|A403}3T+6dM?Es4iCwkYyTFw|!+ zO{hql_>eY1A#K_WD5XSVWY%xB}5CF6PG$yjY0853Jd*zsh29{`4&h)v4! z!WLfxfNz>JowFiqScsR^rp2|Emtt7cD?}{CVaa58OK0;%!2vzwdcfJH#l1+nZ*+DKl+i$xjd;_}@IyVFV$ClCwJKIJJ-1}gge7A&Xk-`>BVk8}^=)Ap4iT|Q zNe9Yarun8hrv;8`09X~AnZUa}+OD6Zc>&h*<1t*~?fMeUbFF$fpnv?t&3OQyGm+?g zPxNNs+ccZ#UXM-usAk&+#t5sJ$TJY20WBF@AlQ_y&WxIBJ1TKkCdHed6mK%NyGy%` z<3QdX00x$*aTr*=SE?rxdDXEf6yb>Uv1A?PXMvA+^gn(2}qH@h8VwaJ0cDq}p-C`p4$nR92NqmQ96FnpB%`V*;Dh7(#n6?#5H1=VYmYhq; zo&fkY*NBp~+dWGfm_)?(bVPa>P3&vYKsXjtDY{Y?W#W%($J{ZYICV^#2ky6LsqUZ=s?SR;Xye zgo=0rz;?Qe>4_abDlyrSe5M+t@reO>Qfep1Yhyj;N0shtB`NRl6GcyZ^h?0sdNj`0 zJG}vD(-@VHG2Nx>1JrxYqpA0UM_YQa#Vm-rK>+lbXsC!*r4iGdx4;-ryy6F_`4j*p zBKqakm?pfUaj!chZWo1#MB35nvxpzjY}yH+Pgqrwz3y2H4E5)T;3T5BXFU?z??K&8 zVrCK%qoiHwVO(J^XNsv}BAVkwH)dmLon|b@IdS8~#(2Ea*ylH^ZWsGM)>Wfx^^Z!| zh*A*|`xmp^gYs$8ry?TuDPC!sWnZom3&ljV;&-ajj5RxF)8Yn;jlqO^W0RlL`p;c4 z>Q+~%q{nnpyf&8n^zA_aGACXeTl;sTYsaLgB_9EOr%8VbE|>tY`RWCft;u|#^EGMw zjjNYZ{d-X_C87z;mO$K8Y1~vPO-&b5rFB4;YtmT#C-lD+Q!ziuYQnnF_znj8w_%I5 zsl*|nBPpYRZ}s>M!0&oA@t=i`q!15mt96^OmtxsVw(O-?_EIc+$(B8MrGNCV2in1+ zL=y`&Ny)!zlIY(6bRbzU98yjsHR=b^3;@kmK3zre& zx3PX|BrS(y<}JM+9WhHU<^uJ+VX|HLA0la4jRl~0J6s@wZWBY#R1 zD2~O;2!k}DAdTGz;NE}LbAA@4jGB2d(jLz)I;)UlIhrE zF!w)p%vSv`x?+pRoHtBL7I0>8Hd#`|C{7nvkx{%HJ-8YG^F;ib4!1RJfba2WzI?Z1ClMhk z0#IZj@IhRmByC%}U#yi94ecP+Da11Yn7>3`BPmuRDQu*(G*U|BHIl+cRszsS3h`P1 ztPthvwo`~V0Kg{lT#BuC?BH|a(j>ZZjkqz1=zaj!fc|XyBmi3?qPDuZWMaAjHe24N z$-!u%Mp~Oh^nU=@$g~5%?jh)=cOcn$EnV&?RF=myDsr31D1EjDXPu*Qi+$Fu8&uG!24` z>y*ZIN=>BCLQJzH(vyhB05A{(P4(Ha>WPNMPkt2uuvQc4^p0!rvsfnm?L6m*>tT+^ z*^*7MWK%5JSZpcVMAjKKq}Na6lxYkBiz^kIrmQehund3>60HLGothrRx?_=n#sK-W zpeIpH58_b(s1l6@P=we^@mOT5U{3dEBGE(AN_+;?#HwT2%&&mm34n1TJwHm#upB`f zb5Cb`n*+rB;t!^K@?U^gbW~OE%4tO|xXvny}l&lI>#2!YBQ+>~^wb zJ6W=r@~6nATC%B@Y-~}s?50?8I0OwV#WmXd#@8Unz}^YBt%%3T7zPg zbg8kA$WWsU(zI&j?R8#57{$0?Xbpr-`g}#+B9Aq6OE-IKT~xX z0BK01hg)l(4(Gu(%9$vR1MsW}@g!YMRP3>hD8CxC!{hOzKTmr!zx(s_S=z*2;C|gS zZR@?KWdk1pf8)`_*Fhe!xDSY`%xL2BG+{3V($?bF=@vk1CjddE6VGXqJ{;2|5u0I; zi0_mpiiy|^*~GMK4Gcf`Gs|aA)wULBi> zpW=E{*Y3Vjq;~dH|(~r->6KL=3h)(D$LehX5F8BDw(s#tV=#LNE=|v}Uyc(pUv)VoUWp z=-?DZ?>mPEWgBf%gW0XyKVKMp{^iF9+AS(IG}uoh4zGy4>Dwgnt# zP1p>)DVq^DWi!;KYywF;O@_c2#A0P^fiz~UCCr*3R(>1%tZmYMTsC%ywGCZ-U%FXL z#4qD;)g%5Gn;o=C^eKRB;!8uqHjRA?NwRUT*`jDxKin(_kOGNO0BqNY#sgquI&n2X zWJs(8K!#{NfHK4{0Yv7m{2#Zm(Mui^>>SjW*!xK&L+LD+TwIt#V8wsYU5wO$M)FUlfy-S>lZQ`47 z%CIB`CVCcgQM}J^J-H7%7qiE{&P3?Z$*+L|dg#vpYLo@l(7Q8Hmmjrx4q%yk0g7j) zbBHse6M$dyXyX>^yMTx0h_vWt$B0^?KI}>A?WqxNh7=9*)?K5KxVg2Iu(?fC0>e_W zw#G*3r+wl_aJ~cRMz2Q)ZUrQ|V9B5jOU7!^$S_Jq!cGC!e+58biP)s<3sCkJfE92* zij1OJftG=$m?@jUQ?7}?8*wY}Dg*cW0Kg*Z2fz`9OWa@RNPr)K`94!bh<*T2gqY82 zW1}1(_MIyt#)a3QbqIj%G|@i+2^;6HpwfCkBc@UQGo(*yWgs_F~YcdVSd(tOo+Ag5yHA(b30Di=GGsrlm>&xNJQUJ7wRyOwTeK0=I^+fzO4fjZl zD-2~%0LPXw+vCy1{}#VW7^h|ciV$lbONgd=Y+~(C2@$(Y>3G*m7_}T}J2OhW3xJ&i zqE|gOG2H`O5QfIixHj;pBLJC2M5iHXeCCb@TLpkLzJWCUfHXdUH0^>kZGkjFq0w*9 zdD+U7VA{lYRZJ4acU4R(CF~YhR(eDmS;3A;BP-xoR^q!3wDP|vGCyi`IY1mTolWr0 zlIRh&B;qX_2@Zl0um^R_7RtUL<5*+@%BjKLnJI75$dpa~n6gP6Q_g`o znl)vUDyD3=^Ao``O=Imat%5WSf;4S`G|hlCEm-r_nuK=kPqZJ`irGv-re{dDZ+31YoDZW^EQ$5fN*-Yh-@>z)tHyn#a%Q)Oob2cLqC78h|>)JpdR+erP7F zNn4U^NCx876Pu`ZTHJgavLm}H3rPeJ{T}VOAAq97gEgBd+hY??)@-6F9-DZlW)nT_v58;R zY}4E_6z>&Q5z%fTOH6GYioXJI4iRfZS+QLo8h;dkfgsu?WHAvX!8L~XWf9$#xU%5| z9sR8mTegV^nCjPIs)M#p)LY1y$A?gx1QtCeZrmshr-@1t(K$jE6H(Ig_y~&ga&+(` z!2GZU2g3aLRgFyWph9$>kTEv~qnNF0iAD%nOf*_^jTwG0?_*8uf&%#eh>R zk+}qLYUAWCm72yqA@^!Pqc+I;25?FnWPS@cwGDE=lbXhDkbBzjCXAV+;E-L1$YJ>* zV%)hCYU0nGP)2+q>_CKw9ioWo7)98Xe`paR`a==p7e$OG)`ltxhPO(C1EOq%LARg! zGWA$6T#*|GTC};ISo2+$>xYgnSNUi{2_O(Z2Y|z@L>VTSbsVyR+9n{jy1DZ?3 zWCE9{m5@b5jVyJ6Aluq+wi1C{uCIF3_ z)4?buV#^2sEpUR+0`U*RE+Wz$Dkahb5O$GdjX`0 z-vHonxqsC0e*Cr$75vViD3z!{+OF>kKCaW^b|g|~1DboupV=kKVs~Nb><5cQ+SEF< zx(HTviBvVfvcO`EuwoWiq$gU(_N5!FAwWcInL7-|17uFXGz}59dns&yBw{O+HmyV7SoKg z(n0VVuMB5^*AE~oLroJa0~!V} zh^mAvA)=%;lIM)Za~l9QOq_MTM6}aX;MU_bZJg}q$wHl?<3%l!+7qIlS}H$?^8o-N zM6{5wNX1Q*nAR|%Ok>vES{L(WP?Xg)Y>%3$*Ynj#B+gzVbHM3_#l?^;ZBgn}~|>rm33Pv@z~AO#!Rvq%qhz24LYJ8VRshhE0&>JHoJV5WNbp zt68SOCKisvF)xdZms~6u9^Jk8!om758aA_>G#$an5gi6_F`#M%fHd(wfKef>dluXM zq*YHfKBqwMMSiN(KLPg7PV)K>C7l`zR+1w;^{&Uh!R%|eQuO^ozMfL z#Esp$1-vK#gF~cSi!B~Z>{Di%VOl=(n@#-I6L%qqD*o8L~E@A$CUHo*6JG%>&1hGt8F__Ys;5Pz)MM4J(JvQ1mpdDdDuTind( zmH>fP=L2jW%a;ODoGNEapb94|jWoHJ0b0juaPpFsWNrksvMX>ple}F37fnJG9G0E} zBsp7>Q8ez`?Xw$i1L8_7@m1rV5<8cP&e=*V^Fv9kkfYis-5z<18_BYK8KAlLN;-fd z;}vhyL~Re8eNG&P!7Txj`vF0ow?zj?H-kSoK+P2f3mvqttS8B#3L=!0cpvmpsTOl2 z*&Sofw7MO>90p+gTw;C}h=*u*13w}3W|#OW0J4DSZI4a-q0qG{#9w-R+jP3-B@=t5 zQ)$|>k!;yWwQM9C8!I5Y3SeEs;?=B90C+683ut)8j|L6VB+*a+CCo1$<%>NYKic!R zM)l;q48Y1p^arn+UjU*g*v8TV6kicmNxU|;k>R&^&VVfE1MwWx;E8{t1%RMav)do+ z9{3yR699@4x5P0i#E5zU$R-}B+4(>_HA(a+!0#*z5dTT&%>m+X0Wi|H3|H;|Ac=kr zpgrPyG@GdJ6wM|c34rw7K)W<)I=dcS_$2@VCepnrF}=a98@v5+KT8(F0Xl`1#qw=l z+@TW7p?PtKN-T%w(ThjKiy|WJ5JIGXZ^gVgC8lvlCex9h2w2>y|0YUy^Y6nMJWGDC;9gw!Ak5J-fg7_Puv!cYUFCu?Hl(>h`=SGQ#2|X}M ze1Xt|qQrBA9vmgE6M9IL_&TA7Mv1oxJuFK6pwQV-;yps=M2Y_>bZ(UReWCNB#3zIv z9wp|tocvBWc3gWJ%0H6i|G$j_+k8il!v9O?+d;jjbOW!*0UjoFR+P9%=mAmUN}Wh@k-lxF(&VzhWz(@023RIpRW*&(o2SxYf$qb zfMZDfh)5O@X(f!B{_$f%tuB^sIGuspUZQDJpAFtc0Qk1is|IOm(;$6sBaM+L7XgqU zL{p`@DvfxqW?u$$izaUadPI}P<{lI?XC!*@Hh4$07}4JVe2D?^7n3xL-FM*yD! z%x@?N>X~}OH}CGOLZcfMcFh2M!=?H0?U&6^w+3(x;93A**J*yOLGzWKe6OXg_XqGk z0q`A`e7~gmbwHVKu4Fr=j=JV|Hu${(eETHd@JPAa0S^N90L;58jeI_Mlrt}kGe|T0N(^>ek)POHzsC+$2Sj}-x1J!3!8bHn&I<3 zYJ682`Mm)H0iyv$0KOm2{LJgms=!-g@y!dq%*(%wym_D3o)$Ry1u(zoTk5xR@l`j^ z0#Z&xn}8fZK42tZG@uB;w+ERYUp~aQc^SQ)sOt~-F?qgh=cnY$E&JVD=@;xg2+Y^o zdH^BV(iWa_@$JRTEvXM7$buscQenLL2k^Ma=zXbRQ!1s&z zQ?Sbq;Co6k0p`cLlK}Ht6T|-wGJM0uD8Q|NJ%Bd>2LW#bjsW6Po?w8dGj;%H?%`s0Oq{_<}C;26$eKC?nZKr>&?^i=Fxehw*o#~4&cM` zX|Q2_d_@$QwE8 zCBc3(0H5SGKR(Ah53m40zsy6sl(GGp_#fo>K(F~-=Gmb>ANn;v%B%s@18lojosPYW zGaP5;nYc&+Fi&C{J%zflfC2#JDlNHdL7V3>jeMym*O*V)4*?$o_%NyY?LQl*?ErrR zbnlKe5ReZj0$c$wKRzJEr;zw`*Yf~AJa!{s<~i^gV17qDIr8~jl=<;_y-5IhS_#-Z zYiH{DbWkmT4+Av-b^|D5e#c6Pc~-=(|2t&(h)lQtAZMOb+3DFa`kz6k zvX8dCv_Ee70PtxN^E1z!mOF+D+Xuig0Pmqr8Gw8O@Mi7(fX@JY#=`u} zJ>{m}@cH1yn*g~{9PJrfrk=N5(;wbFeF*RlfNh#z%~0gQFl>7Py#VI|1_AN`;{g`} zE&|L1{0{IqpaHN4un+JDz?%T`!1?&ZwAMfGY<3czs-dC0$Z@)6XWuX6)9&ZiW6UO!eusYvp;Y0!GPXPY}d=6-aYr>rX z=EvI@E(5FutOr~T_&Hz;fR~odb>*F)=a15tZkGV_x+ZTlFh6tY-pCt1FWLSlJ=(Yi za6RDH0CTT}(dT8$7Uv_c0C|9!fXBw7uK-?zF~1_nl>lY~<^p&zl6pqo$eAmJ;iCoCKIl z7lzOC{HFslC+JiBhX2ilI07ufz9GPzpypX-^BX!5#|wZX0G?(wKc4k`0l@Q_Jk4o- zuNEV>0X*Br6F$uWJn3S7Hjif|s!CxSkXZ(pVx$uJJSVZUQ9X}wc`$1Ze~l)2{JJm? zu-5?0k4Lf>0QgN?9_5-JKMndTz;?iGfI9*A0?cnrCmvrN_F+}=ecS3Z{Plsxfu`e2 zPtU-IOEdK68J&#Un(7REIBV9TjQN9y4h}6JJTSC){*ub&=MKo2zhus$+PUQpG%PZ% zoKds1BC>o|bvf2re8@>#OvjfTvF?hE^m%Z?sfoh8LRLUpj&zCv|R-HxbwrI}l%S~sXmb5-jywS8r}I-Jy?9;iE@c3*M4(^u*1 zrvItW#i}m%8&#LCuJT1{{n_pNWvLr{73ycJk6-0>bMx+8)_+Ql3J2qE$GL|FqYU3eiv2`Vp<4TvmFrV7-Xf2cOIt zo>RFnCr>S}x5)J|Zh;{SA66?1rqpg2BNii@1f^)hRoZY$nOc^9J46P+FC>2}_h{}~ zX-C}BF0Cw}rrYVtlNIaL<5&0x_|z-@O&7p}6$OXXV^`#=SN##yqMimGy`n5$xm_yv z`M2FUBtLI_?S|QESpk}8Tm3Vu5pT3iBOBE^|M7+e;zNCK_kwHG^oZ*3Zc>YPsCEr% zWxblUBO_;b_PqYX^K$Z}OUeGe`0yH%ri1R=0^PR`W$Kb0bMrzIRJXDr=c<}W_S&_D zwQBw*m9`1KXF{tXEbSBo)f21h)ti`OwVURv3v*Rgt}3YytK|i2*RLxaUbSw#yWT%I zRrSEiQc*u_!?1NQRNx=y+pUtfsh+uNTCSR2um0e;J3dq^-1Hgnb7N?dJ54R$rzSM0 z*BrNPo|=19P2C6g^KvQ+v*(Sy!ENVHZ#S-V+=TNVP-m6pshRkwt$J^jTNdyBgF998 z9U**~`=-@9hK1e3d0`AGx-mhWR-xW<{G)to^ikDnn_H;*q^pwj%DlBFzVwf3?;caV z>(!mBw^6PJ?8047`mFUyo;p2wEyqdO2o#7wm zQ%|mTkE*wwfAT&|(N52?*iWo>(^cIz_GU}GH}m(Yv$m-xeC}}{R}>%CvE~2HdZ$9wVU^x7 z|1kTrc5SU1T(2fnsOmEH3`{+}T6@!chZ+ip#z$`b8J5j?Zs+W1v~sii>aZxVYQE|1 zMQUZmd1_>ZYJsV;Z~mMo=eRHVGu!Rjwae{z%XXFGwzYYxwOiIMs@C}`(!3QDt*d(e z30}j$sxED6;kv?goKCskvKtq9dtBx89hE5i5$xS-k!Jo3{r~jJa#62N=eGG)Y>gAQ zl34L0=*L>D=?NRgd+UyKYj{`CZM$Esi2Q3AtoVZ4g6hxCHuXVWWH;9H1K5~_hfPqA z1q#+lby?6|iD5sWo=4s8RTXM4_8XpA=Ek+l~98JY#HOMo68$!>t{Mm0YdZ zr|$4!NUvP&Zo&ro-qjWA^oaWH3U}ZAsv+nW+^>2a_xJA*Ri|w#yz+}ewH~w0?Q~GR z7sTW#4DC`6qp5$RskOfJ`=aXTs-vn(B>lbGNdwni=2l>ng+9J@g?j)CTJ{0ewn4Qx zT0Tvku}$6U+eA;-s^@(5^Gu)ABbVpqsIMsxDqsK0wV{NLpdb=c(}(D~F#^_tJ$+gFQl98@d(J$>p* zzuTa81hAFcv%I44%ft7(7rs4~Y1CrdTDQIGam8aH+MIATU(@ndJjo_EBA*6Z^Mq-HuZM1bZ<{CJ+=!ntODI}a|f-O-ygT9G0D7* zS>sKpI?!mBPlYSgwODMv#BR{B6$kXb2h!!yX2*AMjn-TI&sXKDjXvxwt*SVruEr>{ zjl1~gY5p0)KNqWAbp?%+30vC#DT`iGTbV;UkVERCT&@j2tSb1=d9>Y!CBe%Zb#(a- zb&Jd0r@t*feo*}@h>SfojndSI0k?oTcN@C=PP6!?lO0KztGQDP-F9!)=KW@E-j!<~ zcq%?M*IgM!Vw%a>(VLtRv-9)&@~FG4viw4`x%?@^r>+Etuo4(c1Yg?VB3Z0zXFFH@a!Rb{%$*rz6@s~$Vl^aj-foA5FjjdNhBdXGE8)3%E;=2B-cR>1r$AhZOZNN^o`_xO(DMPP5 zgmyw@YI3gXm#!*~s?#~9*lg}t;7T{@=&#$3e;>c_i|ov4UKD2P{l_%DD>GC2qteRM zoQOKJo`2hvspNVUiKvu)4eDiVAkoXp&<3@8HFjv+yx(Lj#^$E*#yJzVPo9#oz5nK8 zs%7q>?BP?@_-)uHSTN?`7lrQ?-XB$q8)jcHCNDgpU)HdUtyAyMldbGis~gm_=uAu~6(@?e236Lxs1kU8`Dd zyI}V6!t&~i$7V!xHXj?Rs&}|kRP%kR<$>GAL{E%=uW;?S!YBiwI$&8&13a?&=z?Dl z7_+4?V{G*${j#z#a(h*$ z2kJ>I9O>f<@w-4>SfD}`Wk%%PZLW-L$&?6lbM3uRF&Dx7TC2P>*H%GBvTDNw#3ui!bSauSl+8kZ0$ruIZ|@ zOudQ&PW76Nh4tD(n{ zGGDoQZph8JZ?hY^|Gv#zq;t!$;m1y}`uP>xn(WsHewc6Xw(XX)qjIX(y(iTf^_3yD zs6cf(An`gFT`$I_m8o-b)fBx-F4GgHg%0vE9pn~e>Z{Ak)K#iNeRFxi2?Xvog$61j z+zKpo)8g}YL+C=4iha*|w_UkROm{j5?Ir%t8Q_&Zn0~bDv!Wn z{ynWswW?Ru5!G&Ax14R2)B8=69#sVOdW-FGt?JdFE{Pnjt*uoLUXDGax0TD|leO-x z{(+qrjvh08%!u1QEnGjWaQppgMy~3n`&uH4FqSqtrb=|nxaW?gQaMUfeRN%^uIp2# zetkLC2S(uUXrf!rBRnl}2{gEW>(A>Tp4Ho)4QNnB^$#5mpI=yuN6YW`XLsK4l4|L; zo$$QBPrGron=Y|B28_&9BowYLN6W)_%nR*8L)F_e#U5b zK&9I)wEq4ZxQh6Ka&SWjf-aAF18!UVO%4`ra1W^kvR%e8nmz(LQ#&z7J8@>2TG5~u zM^sn0UXB5<-vU)tAN=ymlV$pxfo6~!R9&>Oxn)!HewK|R_}US*>uT3M5G^cKkup_V zufD8tBN21lz8gyZ^=@ys4g@wBw6QH%c$=GtwV*O@LSfc90PHP?T_io=W zyeJP%4A+0c**JwN`LGA$oR0mb1H;!cRk5YlCk+ldI!^bj)`2>R{k+L#s^@ zDwz7a)SPYp%=REcsv9-|dFtE-w>FfwK;5=_pMPwJ->5n_g5#m%IJ{irll>2$3d>jo z*+lR-Lz>J)Ne&+5UzZ0r$vkjO&YQhV6-0KaE`Xk!B3FYatKijnS3aDR7b;x)1UMZs zf(L>V{k>BAXD(2u?T{^hUQWi8wJwsl-aY2;o_fMfb(ek3$?j7l*`EJ5{NoPC-y|8A zWcMiO*0P7%*3Av7)7-SpyIffm)Qo+oQ|kY`m^|XeyVR*;r!pQ1hulj?G@cvZZ*%`2&K(s$*&A$bo;hhieClKIlY(-W;i9bgQ%Wwg?<(!JCdL!Q4AJ46+4%XFFRaMmGRm`a@tH_rd*;Z7B@sp-b zo-nbvVxHXaHbq9(%pY1>Ri!x_>MQEXOM|7>+{)_mnz85;TXhvP%4!-=x&D@ds3~V&Wqp*VhN@uYaJ~7iYIVcxVR(n5 zqORUlY^oaC5DeB-t9?dI-R#n!v5lW!KWX&r`k7X3X*u4+n3-;&7d2&g+rd=^x{zTC zjH;MlKYunFR$X3ES5arx*2q14Yr1joW*uO%7Rg&1!?dm$4OLZm|D-Hvm6nxN)Yn_( zbqKmfsXka5)F|fF)zr3itXSS((2l5BS5aCu74Oa%KN1Tx#=J|R=3wP)M4@zct*Ko` zXGC>vLsZPixs8^xlg!vy!TGgXw;J!gM z0+j|EG~hW6<&`zjQ%9V*vxUX@d`#wv^>nq(z28L-NZjgBWcmZW8Aa<<<;|YdwY*Q7*3!nkdhyte9I{Q>T*!%_=Bu7f+0* z&T&)ccztV1StgeH*B(2qs;a58W;m0^)G&8eB?940e>Wz%HM3_kz?H5#0mqfPlzz04 z4rN=qNakdRD6}0j!*g@bN$op)%!JcYGx`tdpO!ixEq!3xpn>VBeJkeGR@7k@RR>F} zPLnsD67la4er(HL;7#y&TJXkI)E{w}zs$_(>1~Y5@0k=gxkpcL&W4_z9ADg}z+ndE z%bWCP4_>pVFC};WP`(jGk%a-Fyg^NsD9FpNRM9}wtI5B!yqmTQcYI&(NC6CE1r zyM*l+3({elr9SNqMn%XE%43kG;c1{j$=ODXJtC=syz&UEusCpPUcc$JmPx| z;)}L;(KCz@YD++`Oe$B#6@LU_es-a30p_AJt_g8loXF<;#yK=XN;{FA;%GyCXpJ)L!9?A*Gy!d|ZZY>pdxSeFsk$6x1Z>=HM+$A+AZIh%4`!FrJAD~d|t zz^{u+4)Sfe@_zPJ}UWE$aP-F@V{aofgMo`H~qw3(-+J+ScP`zGUeveULDu%89S z+{4O(xi_Mx$6bHc!uF!w7Vm=V;u}42Uzs4txDWMBAj`nIw8* zo~+sC43*F0GtXybJMq|xzxqp$YP%*x)#vsd$?>_zlzf3{i^g=SIg;b1$+B)` zId$9vyVEvvOlck8vySMv=J@L5K$A%En3bJ)d`kmt*-ksNk)8+cWZfB!*hh~?0nSA2mj67*$6EMk>dc4PDRfwtIyr~9eu@U; zo7~h7*XpD=ET#!)hFPBT+AY>OzEN%KILf*G-wHqShl-r<=zl8G@*`iL>cmFIEyp(! zzjGx*_{%KKVogJypnFWj>^}l=FLrXu877Non#)0?!=rTA9C8X3xBEk z(C@Y>HSU8>92Wden`F}#(^PXFj5+J(%32lED6C+yBL3>sY3maFh36k)*Zg=-^ty{R ze3LmE^!zf^7uOP%H2W*pUm`Y-UU%OXbxwFT+FyY$?!I;o;x2EOMB7|{@{L$ecH-}c zXn$zmbx{uTd~q*DB~AO>V|^DUa5m--j-lxDXZ%HRQ6+}^hP6wfJ;hGEq8G z=ij;Q^2e1&C3Bn=N@Itnj%+(qx6NbuS_rS}H+CLh)yc@h)!hG2CWjk)`H~2qJ2%i* zT^GlizR3cJ_4bsu6GuV2mALIpl;bORVkh7J(8nFiw%EljZWpci%c6&NXosOtzZy%o zMmL3}!2HN}4NP!j*)|8`_O+{Lc2uf>=WF@YKMr5+N#*nWk06ct(zecB9JMFK4i6hO zZc(vKZXW11QNU3@2_I^0*&>7b$w?i`d)c=vYW*ooieo$cQ-Ti*R0 z$2cU+k9@xKM2%bf^L+|B-0sv+=!?6ogM_oa>qkE6xfC9wW0n#(CTi=BIT01Jj^~C{ zZH^_M?wkk4by!@!IRRiX#H<^I6M#F`+4$?*+3o7WdhMKn^0B5mnB#M=8jv@^@h_kB z91xY3PjupRM0?say$*Eq7a<*pvM)qBy8K$CkB8k{pvytj)tuUt9z=Qu{v}yY;`bP1 zeFnd08tqkTZ&3S;+HPvSFg#jzAZadW7IGw6f24LhsM2T;QhOY9nbFo#dj)j4(cYo9 zlllHd4fh(XDw8h}3&M0zSF1Ou%us)j9OPZC^FS4b#(=b?<3ZZXdTR5i-2u`F?E%S9 zCRsh=-Lkzv)kaGOX}+PP%RvREwpvh)$#)e<>kWfyjrJD5Vdna+P6{Erh}@CzpFqRzZ*bK{6HGDhd>o3eyc&+(&s=kP1%jqUZeIk zNL#v>*57FD?sdKN1kE&FhJdt=$snzFKFDbcNZa=U=n7L}Ge~2Kui0^E21x6z2Wd;^ zfwYcBYAw|6qIMss(s+Ieq@F*cbvH=89M!|M_9e{$X}wJ#tv3YH5_eMjGqq=^?Ez_R zr{GkjWzPU<*#?kWH<9GrsM%VC2b2vUw zVMc2pNWEl&)XV+U9;P;-m)n9%L0X~=q$TiYF6LHVlC>11eR~6>b)1-lj~|-ahJv*0 zaFCXrg4-@yVl8Nn$#?xxcqpc!4?tQr{%AdYCRzPKY7K&dCf_}@J_*t~UIb|!Z&Uk# zw2Ri_WVgh{q-h{6+v^y&jx#`YrnVPA+N%8^ZT(Bf>Lp~7H5GST=bC&EfV6$vK=X|D zIY`_04QUTZYm3KKzFH3hsTQDi1}Tl!JZhszMYL8^tEc9{SzYV!krF{pZPd;nrO}#4 zZ4{}9*0~^!(2pSP`O&yNrP}QvjnzXSZNYZZ4v@BBa&J6Y$;9e;kmeiT$1QsaNVU7E zJxJ|Qkb3!m*8QNXjK97ox-<#2z-ZTzo&~Arzk}4v9+0;Ah?87vGDxj6K)Q0((K?sb zCDa}OU1n6`UC(78^*0No`GVBuQ~L^}EjYZdOSglx z?0VAApleK93Qu$Q2h||eZam$kYtL}oavMm!+y&AWJW1^tYLE1D^Q{1BKJS@s9fLsH zw>v@F(p@A^e^)yUq_y<|sh4x8T|n&?YRjlS4bnO`(7Kt{&p}#m*R$L@d?1}U1F2<# zwBC^*Em2O2FyF19Dig_jK{}frrgasqTS4mO8(Mz^X&t#~?no~teGJkP-+{)Uj;_`Z zAT3dw?#`w;Ahqr$eGAfj0|vO!xC*2*_U|Aqu>qv{exSCGTAzV#3(f#(iRY<(2GS$G zSB6VDAg!a8bRS5|J_OR*J_PCNV-Irc@PRa6gxYP??gDAq7is;B*4?!B!p%yJS_(-0 zO`~=nwTD3JZx^kn40cPL0a9xjNd4VM>qE5eq;(&yztMVprdu`_q-`kxspmh?x&<`X z%%S6lxM#3jkW&JrC8|N1?+NDn4W#Y6823cg`aEc!@%IC@!RNYK0Z2WM2C3(AYO6r% zuWOd;Z!t*yO+L>pdnriEUI)^8zXNGL&-w28s2@oE-44=x8!m9YYzC>9E3)0Pe+Fs3 z-PHDjw9N-WTEd^>){zC$I^F~fHn{X0nWRphz(t^(CraxHlPr2f|D zyZH_bbMu`#+_h$a)bkLKdj1Neo|hN6B_0Q<=UyY+5=VoyL>@?Mn+MXeTRPTTWU@>uQje*b7={qTxYyEpa$r)bmjw zr}dykCf^UV?xWQ=+AWa?(h|2(+W|sWtZV-wNd;O*7rbbRaUgBWEn{8lGLTxIr1lK8 ze^L9M+5wQ()}_ex(gUPkUI3}J$AxZft3cP9zHI<$t2TqQ#J@p0sy)WJWs^XfZ!ERR z)E)*k8h=lLbbPyycgy|()MTs?Y6mB}{^BRO^&SDzI+CefLTx&=Z>a5|mQ;c-NicN` zoa}nZ1Zj`LAZ@`)P@T!w3evc=T!iO<80|sO^@di0S`2*z3K=>Gy1`KT#rP@)L*qa< z8ajLmzS6^>MX<16?|T=fOTazr8ZpEwOcoOSM?#wS7$>^>+c* z5~Xae0>vQJjv42cC?mZN(zqOnxTwFC=#iGlnCeop$Gta_0xB~jlL{&~6aZBi>WbfR zi8sIB$8R0MPeGVa&{BHh%XbV-Buyv%g|wQqj`RlU7{pY)d_+1b(bdi(6_G9`Eg=m& z!YwhHG@CS^)J$4M+CthxvXfkY38cBnu9kd^OM{PfX((xPimQ!1-lcldMVK$z-PXj+ZY147`YY*4(pu6#Nbi$=A$1$-wmFG(BB?*= zTv7pP0%G(tk)t;L1zm(wo$eG@R5zT7oMyE%7+%d(v;D zfy3Q=>DXdui7e7^(w*4*sC5%*JLzN6H>45RC~JwOq(|ie}6G% z^)$8TK_y0ejn=nGJ4s)H)XUc(E%6Jj@z?;X=LFJ`q!UOdfz(Sn2t$Ha$%7?Sn?|ap zwSn4gq$f!0N%G_f_4ffaxk^>f0g$#YgEWNJ;UF!04M^ksSJG@0R4-3~)VhK64z2Hl zG%jC*@IT@#-|w$kq%1ARonr|*h`>~J|V!jCT-A(I*q!pxRKw8@iAoct@t^Xu_ zMEZ)fhx8Ljy~w=>ja3hjYR7@Jr2*2JqyfyA4brm1sm&ral9rP01!;+gsXb3^9kuP$ zKBo3PwV$bVM*!5HAEd4CL+w;*S)>WH;zP<#i6ChaNuEfcp6{miHK_~koM?o4l8z>w zOzIEPRt*55IA;4$T8Gm*1*El=G2e}}K1$k5dY$<`1Zi8oAbrPt|6#tki`;xZQW8lX zbKt}eq%BRS^&CWQ8_8_%Y)Z}X|wT>;+lLIcneS@mTTJWiqGVhYk0JOxsJ>zHo~X*)?CYN2I6B^@FiHqG^y4AOjK zNte(X0ckXzCT(WE4?r4&&q?2s_L2^fyrph!2_Wr93P`=2OzKY>Ov(ajiF|5fK-&6o zv|dW{GzTYnm@gJ?aU zluK(NwFw|CJDJuBTB}L*v@W2w2&83~kp2YHXl$nTE=Z&HGqo<|Zod8?wVp#71yaw| zAdT8wYFB|Y24Py4lI~!>CrBGXT4Fo%eMtI*)^9*s?_QFp!fokUAhn(k(l(DKO`-KN zkjCInS|22>BK@88CP+PdXSgjr5~MvpfpjVY$)sW_qt_G=> z`$=m+I_57>+d}OvYCn>Em$_d2AZq{qxK(qp7&NUxIqN&1ZRZ_)u$zbo8co(s}CMv^9gbYwPC+eYmjYONrR>9-(_ z)o;w#wa)e8Cnb~mkWMEJBxR9uKx@F0HN9{!Psex+Q$1!$Df_Nz~3H4Wu=n+9+zbkRG6Q z1!*;{o2YFgy-RB=wI4|PY3j(&+x3+B>9ur0#QE&&QGmkS-@(3DTA}gR~#Fkp4n?5Tq@A3ZyOggxVgEdO1Yx zu(@u&WRR9UmvjM0XZB^(t_Eoft|u)a-9fsS^jDC2UJcS#y+G}A(tl{(Pwm)wZrMSk z^GU-=MWo53nINq#0@9v;MmlP~>-jX0_Gl<+6see0L8>Or1!>=|0+pB<7N&J6>2A`4 zAT99-NJ~6N>ju*6q<@k=B7Fu@FW-Z-m;0!laHVVQ2U6=mYU4=dv|dK-dQupq?Yj%4 z5xSrBIB69~+p-p1wyciKO#LlS!A6>PcbJJ)~72ZRztMZRsl@ZRr-~dz-YA z`MzSlf61&XB*$2{*K1A)*g|2lFNUd4aE+Ne$-9TCl(pLQmr2YLXX(eejNL#Q0q;+he z_A%*OT8~}imN*ThaUMf$97yY(4$^vOQd>wZM7o)DAL%jDYLK??S&({umDaaNACNu= zX^Gt+EwPVQ`&zeEJxE88@ExsAoBM#&%UK|e%h}YXknk0;j`a#^OGx+9`Vh5ONUwsl zeeZ!ZR-cl-A?*QaTMmM>E!`Vk?J$sfIUb~5P9dE|$^faCp&<1#g4)H@N~v8*Z6UP~ z=`LFTLhVJ;M$)IGgQR1d+_v;1odeQVGA1*w<6Q~L)h$oO446J1(w`dTtn@9YCnPWxa@ud9{-7aKI;gOwjdd#);`ouCk-TJfwYcn zkd`Q-buwu>X(sd4Qkze@mUKNxJ>Nxomh?L5BalYub87oYM}=K4XOPY%jR9$YXObF7 zS2N$WAnn`DwBAL!pY$;Et)lik>1EQZAnn^O(jii>8(r&Zq!FY`NwpyD`5bE3kXC?n zzC2IbMEZpEEvZ+;EpY=#+jj@GU8HY78nqvpZy!h_l(5*HO-F$=-*F(d4g{&^!PJH` zUlD0C=~CvKNv)Q&h;#$#7Sb}1*7h*9RitNVeU;i+cxSAdvQLC`kJ| zid0OR%zV?ST}}#;=7Y4&5z?ciwWPO5yFg>iasC^%!Ao2(=Yq6-qd?leV$vm~>CAUI zwIHdPw3u`|X*o#S{5Z8Wq!(!Y2eo%dAJY0Gsn<=ezX7CtkoIF7Nc(Xyshm{Fe09_o zlA1x<(z{5{leUsRCH)A}=>9^@d$X%$fb=NKCKZxONb^Bj?^2Mq{%_P)fwXVyX?>0K zHt9X)`yQnJexlap7T0r6($S<8kk)ZBwf>|FNCl(|NfSX@+e~V;q&c)+Pi+b5Hd-Gg zy-I2&9RO+jx-4ZsNJo=WKu$lX^(PG`Wr4KK7m{j7O{C?ddqC>>1=4m}KLP1H@ZRcr zJ{qK>KbSNYRBXr#-mc^S2bnC}VFbEKD;?_H3V{eapx%=aVd zH&WbfZmWDCZF3UobkaalCP?cTL2VqVgw{%Gb)`4UOTkWK(;n+K9EB+VdQO}ZAOEw~w^Ex3zx53LVVTSa;nq_u4V>3n&U+D>Zm z%iMguKstx|kotkN-gIhtAoW}TD$yAR(tM?)%Sbh#5|eKpwMC>GNPh&W=le+ONbiuo zAhm)@jOYCzZ9&`}E_DN`HIdpeq*RdB)*qx18bYm*`6@`&q`9O8AoX$+X(j0u(z_t7 zV<)vQNxnN>FUNv(6iy>$fV6K@sa2D10ci_v2Wfx*3eplQNvoM}JLwaUwrV%EU#MAk zxt;^098xK%9;9C8Q@ftpqtu=QY2RKYy$#Zq4p{D5hmuBv)LKDW3ex^A18ILB0Tr2f z@HDMksO_NkB}iNPEww|`y4>x0K8;jPT0*)Pq+TAP_8hgf)ZU=Bms*!UxxGvxokYS@ zxSakDq;@{FTxv5x+ViVuT?Ep&+)sL&w3GC2khcCOYN>yA%bo?AVj_7CNMnBit)oF& zwuIW{%+~!TY4&~2Be;^rWPSB18I-$ zrnZr^jn?-;>g6Ml_UJoWeBE>!6mOX)#MjB6=MQS81BRvAr@m)#nHPV-)ADQpO2iIWz1JYZ9elwNOzMSB&{GlL)uFEf^?9S@K?8QM}joYCy>%e=aEK%G#YcMT?f)$ z-UQNKuA#P$+D4Gpu>+)DKBBgl)aM~LUm8d~p9@mY+0;f+D*_c*a(8PwNIlP@b_Xf% zVb|Y8ke0Xzq~mcDwR@QFQIOXA6s?;{|D-kk5!YWYkhb}Fkd{4#)^kY1X>Fj^1k$p9 zq;(msZ<9V_zVDdtXIg!ax@}1YX$yu?n*h=}rqNnS>mNur(E1FuO&~4%7Ofx9`ft(! zTF-dQ9gjj#p&6r@q{1Gqbz_FRd-yrirEWu9nscs8UEx7@8Hper!B*R)WN6dyPaguJ zR{5=()UKM0w`$TG)mo_CNNpFjgiwrNQDtSr_$h1xV~@^$u_ZyvSBsI8>-Bei|h zvf|vb*&uD-+thYYON@8(C4n^G6l&9`EuglL+74u93ZLQNj^ zqy2rGTE8x?mIl(YS=6$rJw)v>YR^!6f!YpgA5!~~+CFOiFio^AX&|k)oZ2jEE2%w2 zZ8x=lQR~-@{y^%lkXjM78>ua!_87I5)HYLlo!aNrc2oP2+CFNTUbih-AZ^P+YE9JS zn{G7*uT%S++HPvz?ry#WP=O_@=yGcJP%FT(s{Z7t)qKmSEvL4d+P|n}`rNWvAT2wO z+5&1@sl83DJi#qH3#4VAqV^26l*8P7sUXc)LTw7QS=6ei-B0ZyY6qxUJzanDO}83@ z5^Bq--9znjYP+d<{chO=khU+6S^>3UY9-Xlsm-Dmq&AOQ6SWp>}tLJXH-^I zV5H^e;30fZkSz~A)93E>FH>E9H#lfpsa8Bzr_O$G0b_|N-uY))e{-_6DKA3VgMZ=& zix+-AkY6a)rtF81jFkib8()^y9ro;YdCove)|s|ac~Dk*qm>FM^60O&JXcAccFL_# zEX>ZfJgcF|gSpz2*P+NGw%Qaq&&b2A+LW&7j6AZcO*sil8sglh$OH^~D&v=oC4YesxOP({M>v{)@JPb(kplSHo3q>C7)28&o z2+PBK+LZoK?IeQfijxO~R zl&$TQqj08?$J(^jWzKZ%lwruT3p<#$Jf%>UU?+cCanZ_TDB10lIwW*Cebo8E zv__tGE{vtWKA6-nCKmE!;zg+a&xdHC{9quF=hCMv>psM%{g3PvY^iu^pFaw*NWZ z$%Ca8dG<({VtxiWd2n(^p3`FNB4j&xq#^P4Jy>CzV)Bi4@`youG&M%4jZtI|<^E`? zTdBCK*5fhC+8E{C80FtFiY?(ZKd$FvW0bREl!6##T8tu3Flg`jh8X3qG0M|1${R6? zJl~+b=U-!#B$)!{$L-h2F-k^^GCoErk5Pg#N@I+2UyQOUMtMC(`8-BB7^567)3#l| z2FEA`F-mESGB-w95~Dm2qdXs@?1)i*ic#dr5AECBCq@|(qfBb2)F9QrykdI8%&C>~ z7+{A>r%$h|nB%7KaAy}w>q_yE=z2HVK2=p&UEx~rEMQBQ#K4tTUg@ec>PlxO9rhO^To46~QqL zv!kEHTyH#SEwDzLZx^_kN3nmZTIF%DMfqk(g(%e5qGmzG86_+7*Jni;{l zrF9jZWME6$`HNDc+UE4j^)j|0h-Xrdue`D%swEdTRMgFP9uOTRBcP6$TZ88&qvCc`-S?5a=&XEQ7@+a>QX$EK04Iwcjp0t%Z>&PPF`KwG3bmOEu|#%SMhu-7=`{S(WiiAS8CF?U)oBse z5L+a-rgnZzqeRS~7bB0WC@n9loL5m5>!zr#q8^Vyk1CQ^fzv=uC##e$w6Vu=JAGJP z&1~oK@UcEMr0v(z!l^?mtIK1(4lkTKp?Z3!COkC0wx+%!x1l~*GrO}{fN4T`d|jED zgTqS8f_NmoIS8ZedG*2nYB$EQcwBsGu(GB)wmkfs)%Cyl|F3pqZ1eyB|9L%cVBS=B zu2;^%r(35Y^c{u#@dG+&<0o|#^t`So;tq=|4($B8x|--?GWxU~HB&G&>LIT*SlV7M zsBAY+kyDhRH8nWetD~}F`j(Z}SCq}JjS}g1SXJrF=)(X_>$Jk0^78ySI5N!I9pwn? zcJxVq(p2q;JGF<^)H%~%r%K0eBW!Z^Y&+{|Hpp`9id-{p_)rydYpO9G!I&c#nf0vG z(aY@8Dx89&8atz|B6{WOq+n51X?3Y{Sj?`NU0)Hs6wIiqX*XtN6_r&{-VxK>hPpZg zX<}u0MNM9vOrI$GjMC}Rk!~9TtPvwH>9|3YlU*G~45x;6XRU(LdYW+XMU|j06C4D6 zc4>6O(NSj^>lh-O)!T zrcEL)JH$~H(QCgipdR zH~M9!w&?ij9Wo=g`xPBKxo`46yF=E_1rw(@q<6MVGieh@$3N%1_1~^0&Am2rVaXX) zKi5pCwiz|(cV^Upfdeu*qx5#yu$L|CJkt(O%#12J%d%3??S7A$3?^SH?n6dLMJ=(v z|2H!#`u?GK+JS#n5{{^!Y%4pvoq5;)p`fDpYaP}xCQy5e~iDu?d#o!L;8rj zEbB4HpUg&+FB6@M`uP(4`2$e`(BvC}w-%y)Dv7YDsQh>u(y3tl-p5d4VM9O(-vrh;#~G6Yx3(uU@Z%dCLC-^r9PBXo@9X+$?|I0q-dJ<1sO_GWua*mIp^_uPhmi%}nn zJOTy<|h=sZ%8GIv+BTc^3Lqg~2aJ8;jQM?i~*a(HF?J%g7XBd^g)` zktYp3m)8u8XG-&1{-)(R9|Fje8mo6~hWlWGi0S!!Qe5EU*AyFtq_9>VLgTtOB zX7EFs{A)bvPzy2P@YG|O7*E|~CPLDp$kL;PLP>$}(nUst!^jOXIs9wVBA%Z1&+!?7 zu&2@IdEV!FQl>^r{x6}8>vku$Ax^B0(Ww-|oPl}A~+A=AA-Pehj zS1A(CmJ2Z@9@FWSf{6Os^&F=2u_jF2TH-g5fSg+lm|4+UQ|kXdT8nYh7z^dvj<%x{~5wgN%)vY?*M4 zpV*DN>=uvAt`d7kB)nSJ{&%dU??zAyQp&UwMCK> z#}F{D^(<5yS%X$tm=EYnzHM)^H-rcZ=~9s|SsE8IGrkzfBqY5U{t|R$ibf^{Q_Is0S|PMTXO7(we(KL= zW~E%eXr0W%$O|V(+P|j3!df9~PGNZY^&&;GdM?@^b1&jKAzqdv&$T|!bI6e3^Q;PI z1VWzkLtR6=QCT8_?W}G|$c%!>Yk$`+ccVvEpz}SUVbTMvQ&>f#bB6vcUNLXb|AbK9 zAS;wF-S=S1d1c-udv!!nGW(Fd0fUorr@haYa)U4BTIsu4s-_I`gf8*;n}5JSLyTFf z;J*;lu^7wL|7y9KW#+9eSE0S_=1&%8OD*cELZD}1_7z7wLn9g4P|72oT8vCUj5=+q zkW59gBpwo`jf`X8i03Fh8K#9c%dFenb~5beZ@S&=SCDgO=m+P7m|<^Tw@VI&OpHZp zGuE1sk_oPmES!VwBZ&8caq0H5uod-4S+cVb4lu zgY?4FW{v~{MS7}~xs`ESX~{cgAO8K+lC!TR=O>u<d52wA0&i;oitZOtQK|&bpq^SuN;bQs^C=O>y9{rr+S|mzE2EYq=2T0IBI9{{7mL zbFd}nSL3?)m_x{N04KSY3lAVL=)>UO@$NC+TZ((fqXtYx1hplpw@g`_Fk6l`{(E~` z@_O6m#5>&6GF;X{FG_U5zqpo3U0No^Ni!ppWV4F}Y}}zpR-FA#JhmFa)s`=acm;2@ zki`?q2*}AP^dFqt*L{bU_wJ5=U0a5CZyDYd-g@9)x0XpgS|)W1{YMTFsVW)ZNx;#N z3abzQye*S_Et9A?O?rNjY$UgJCPCV26W2c8u=9AZsWNhH=qr=sa0N zQKP@?zIP`kNN&LfRJ%3qb35bd<;j z2l*2*iphL&TcgD$CPTp zk<~dR*ME9`PQ{ukV^N3$GXrhT4DFCra)*pqB1lTlX46Tr3rl#Kyj8P3DuccZy7)YWeTEO~Odg`;t0 z<3?M@zPQ(0*xME z=-AM9XkJ`9VgTY$fd_p}u-Dn^v7wQsnR0)WvO};E&Ipwp^fymz+jeE+fRyc47XB5W zKr)WjBwG?VN|SJu_CVgoms8DAI%A2(6RS+17}d&&q6qb6hV~$;SrSuBL&VfGjxkL} zfHkydYG@NfJ0ls*a^&HZg&<><4IM;|)adxON_-atveBZ#P*x!Qkh8x>W!S}aMcoCs zJbxaceh%CB@D%s59GeZ)V#1(T?Q)$Sxlympmz(hjCk1e{dUadkU(-VdC6XkU&7N@5 zZT4&NF#3}IBw_R=Ep93LCA3YJ=KxE z`-Of8%@mA*T;pV;HF=TYcIcIL-}bh5BakVfeX^az#Z2VtL(O}!(%>rPR0;lqz%*Qu zgm&VZp@G*T%ye_M3m{SKTwEM5VeiMVqd&zS*H!RE?WqT?i0vtRCle5D z^RMapJ3aNUnREcNE>WhK_848Yx1*z&Nr^ts9WWG2XE9Ub{cDCFlsgu6GJy~xdn2rg z=&Q8KIm(N**K(Codq6sk`iuR|V^E~ED}HsnUg--*avx4M`o-u>R%k1nX3O!r-rYd{ z0v}2C7R;oi=0lO;;u6zH-ZgN~n?FI4lW$Ta%N)*f{h|9&xvi3fYe=0Y$d$eqYgkd} zXOxiXB-2W!Q(nl-vI1l;#G(95^n{Ux@>w~y-Bncfr&urDNpqtvn@IuA8B8%}&LrTb z3g*lf=cMKH+#-<+bwyV__>D?2uNpma1ZT(T)OivY18AHt;}%~=I8-aG^Wa71v$_2C z;xJCqkirx_kMfX~DO7~l6f>vHKh1HwjhYK1h$y`=}-nw<42n!_5d^(%%q*B)b)>ZD?Cd(a*BT z7X8>V>F1V7W?NsduchFpma+R<#{Se&w7;cjZ_A|pEtB@bC!&peC1xB)#-YK<_G|VQ zyA|$I;2Vp$y?|(a-vP}dE`Wk-R0tN0v0=PO322M;SCM_F*J0KEPmL_$POsMJ;Ppy=6OOTUKGGU zB+7NYM-Jx1&}47uq649e_F-5OF)V{*#nj6VbDe?_D?wU@wH&V;#&TyE*P3DMa6JhuH>dxigCp?%bnu)-2PaIPI5{`~mWh)m1W(`O3CPxF zxBQA!{FuJhoJtlQ95XR}Krlgar4PWJaV%z=(C%#HLJ16(mcW(D27l8kSVL*y(FvQf zaSH`UaDGB4*Bj1H^sm?)%1uDBajh+PYkT9W5AwD{ZraSJ1WY8kCzRk{u}K^3ZyJv( z{MV=Bw>HJ!G}f?bPE)R<4@mbn4F;#L4S52l3!&UZ=~1H7zEEzGB+*4<4Udw2vy4_Q z&JE9_WO$TW_g4aCoBR-7-&+vq_1r>?#m+9zpfmob^8&q|!n+QbelwO};wF873HILF z9b4YRXnwH#Cb^FZ?6tGYT4dkxsw;PO<<0G6yx}FeKRj$JWH&E9S0-ZPdVA3?3!yjM zzH^5gibs+5UmwD6XH<%uQE8I9pP~&&4`zjSVDy}^Gb4SXGty=ZCr|JZosSm>HGx$(_8VzN+2@S-nP$P3zQqaUjK>-iJ{znk*vhfj?h(U9jZv{ zSjAj9ck6vVaV8$5bj6RM9j0kg5sr9obY)V7REK|k{VOmFLRa;(-$iBiCaE){txoBv zzj+j{!dq+gvfk?sdpI|#4U^k2vkm2fN2f@NzDCdd^tG)oA`m#A$hsrje2Xe zU+3rw=bOnUpSunJ!E5$2as*5iObGu$u86X*P9}yM5-?*!zxr3akDGt5;RfmAo_OC9 z5zI^9>)a1U^Kf;BeT*lR62Khw>O@ET;uqio3D>Rp3HJ6Od#?FsxIs#a;{>b>;jxLR z$<#6h*G`*k|B4-Wds8m?z&_FeN#Td>cQqru;F zJ&u+0%+lw>(8%#nCC7t|;{*#!m;dSPfPY24Cz2uiqOADZe&KxFeYHay{lJNWOEfBBv#vy-5xaOU<7NJ73LB`ZT9nv4u3}@^|CrBq{ z^ktumvELD%lZdOfAEfsFcst)2etmz^)Zh8|qf=%IWaEl_$oCk3_zO?)V${QzSn!FZ zOx`Oh@UM^y!aO7cNM?n{B>gPHH`D1>1g+ojP(L6pM4^1cEmNaXD^o zQ1FZpl4Gn2H*?`_iF3W3B=a2`sZhuHUWGu;^U9^AwiUg}#$vX?=@I5Ku8c8-w`}`m z$bYU`ZH`|#(qsS%%{}<6aK0yeaRP$lU-7FP2|D^a(6t2g9G9Ll9Qjsglk|AgHY|4M zN_V5Dirl10lDMPlrXc*JukTg z%R_Y@yk>>76GP5Q-umz_aDmo^_OzZY-psLT?vh~u5?im7V|9D$(P&`o`>k0xjI?S77{7aGuph>t-C3jSIZu`x@qLs^5B=2~6(@^dx%7~?)-FTaLx5Rq4 z6qLP}^sEt8VtBFdNVb)N~ zkzgSL(pub)b;jxk(-m1`f7te`8SRwt@V15545qk{0hOUge~rgloSweJGLXCo9nf>_ zJy_zgHlU|T`i|trZ3q1;zQ=eZ+dtskhCigZdNg8DZ2Fh@`^!j4%xT6fBg3Q4J2=a< zJFGBT@GR?@{g0?ILjx1G?Qgvl6VW-pp>b$Ra%+{G6|v-pzCm`G9I36}$gzm%ppS`o zm7_hO^?2D*wZET+bxmR*ZyKhcv#H@8i}ssM$9Z!GF4`}#2;$Xj0?%k(8=M-R|q?HB5bJ+n{uizqxGz2Tq8ni1~X{B46jJkQg72wQ|Jy+h`CgNI|| zpCoUsNp881W`(az7&0%R;j8pR>EC|ypm+`s?f1=N(##*+Kb&cI|F0O$tZn|FAsKtF z5;)L(*oMZJi=B-jx>LJucS_?v8=VgLn+9Qz_7X&hT`WOF2wquUZ za7i+5rbHU81aoh!U;5g}lNMqSxy4F>f;$u;Im2a&izzrK^L}q=9sVrCeskOIhM%7G zqLHWV5AEFkTj&vMw;9{aP%FZG#zXicgR@ZVB^-3tw%wuq*g`yH2Y+hZ-`oGkk8$C! z{fkhm7V_b4Y3K&0c$U=nsjNZn`Qdl#`_a^w)mGmY6zjCUIc@c!kW-%)&zAaT{SWFp z9l^+!x^Vv;*~LlY23xNGM;=)8tK8!DH@}X90HMZTULkz`rf#U#9b*5|^&I1+YrR_= zd?qQ|w54mC)nye(C+kC!4NsXl<6Z|`j0x($J`=yqb%4L=H9=jUK2cRJT2}*2xolpRNODtl7AAyPs>0sp zR~wEF7va?0kSN=Dn9nWp`XkREzD`jYog-w{1_QxRtz13K3)RXy-3vmsN#Umg3*jqN zD{INDaJHGNV`TqWo0NX&MVWcBo=WB>lhb5#`>_YL_^-PgnVkLeKOmU>v%e`IX!g)e z9{_PoFGD_aNXZes!8xYQ{^23Jp~%cSXFt<%vVVgHnaO^7>n1FJ=9p=Hm~<9t^?^f& z(qC=;%)ET_IwHB{Qc%9{cdZN77ml&SdPnv3WMZ@G|4oINixDEX|3uLRTVIY=?8xN!)>TlnT}3!4rypva zA?N1*;YkP1YePgKqd|vSAK3T*)GUdvG)tN%&64Ixvyz-62^if%IeesfLA=VmT@Z46 z>9j4&-+UzwjMk}WTd1{l*M9R7FfU75Z^SF!z^jeJO5b|8Oh~<6e+vC-Zc4xfVO}^l zG31Wj|K@%giZ{OOx!7zC1vW&zp)jGk-u?7-D(=Ii&M+UevMf0x_Dhwa?w2ZiSNT04 zJvE4LZfU>=N>gj9tLCRVMN?-qR8=8SH>0$yA{C#hy1d>RQ9Y-$sacgkSwh$n{{3-KIc=} zfO0jdXUFN?%)5c`ns~S@FBYLin_DhPg>z~F=f_S6YBA)xU=f3Y8o!Ds74li z&au8i^2omdXAbC})_?Gs^)(H3Wff=5sHr(~UZ#GEBOjlBk)JqE7koexFWnld>nmqg zSCk_{K`Y)9kF%`Di(hee*Romo_+J-K*LwM;0%X3*{#J^{b*rC+Pu-`sD+z~HHPthX zmpHF7g?P`Grp|8SDLB8jLMk@ac0S@geN4q(s-^{KiPJ=r?ACymW}-dufkl!%u8THD z+HY*>XN&O^@zo9DzyXpxRa#)on(k}5;?-8fHpT1l+;|F(sO}Q>VL654^Bpc8Hz6PU z&2FMk$LC8e&mZO6#kx(9Mp>S_|01~BZsScOEYFI6xVC`k@9-F zJT?xyQ&UaRh?4xmVPnUQ&MBTcVa%v8V<(O2#4=(`UVce>;rOA}!fV&I*fAy5KHAt9 zhJMGMVam6xUGjT&Q@&;4O}}H$v=%K{xGdI)&!-MV=N2t_`JPUV85tSYwaYd?)TwdM zph4EPe|o(WKUz-AUc3deGU3*gbFmPQ=vMNxdjJAj4{0x%QdZ9-+g= zw(z-F8_H#7W?D@vcdYExSOTk0FO5tK1b$#(jtVz!A z)*GERLr(fIy&8(QdNg6_^>jJemakp);f!*seKwX%%Qw^N($}Evn{IVE&0w6b)ar7& z!FVe{N_IKJmL;-B891>^fBOsZQe7sWb*{I%q}j5tTRu0PZtNZ(K5kwwU&_#BfIStJ zc@Ntut_GUi2{_M5TN1=&mkfKExPK1ZugefS0~@HrYQ%7^DQWp?@og``V1?Bs%NRYr zp_RevX^76`RboB!J9Jub`8#lYO{&K5Jw(*|e z8?MP5lT7pt)#OlzKE~OXnQ2O z)ED9W1|jSzqbh>`BAnW6s6R`PC9qw_*uq{<*UT4?!OYD3F=I#Pk9HHo@R9#KOOL<& zVUxyBB}!NK8Y0<*mN|B&)CQ6K2h8y_sXlRudOPbpI%~hKdBckdQx0v0F+ZjN$pizi7!dQ zx0H21Ga2bXFBHJH>sa0U_eHW_FMO*#8pDoeb5ooHS-M{ z)3H`e#TQUauL>M+UxqeV-O(|7 z`O&zFK28S7zD!~icawFT43mAC1S{?)PfAt8Y|Fk}0wzBxWpz$!qDf7+>?*M>msCvy znqrclB6%FXUDdK@OMl~TNAvWP-PNRfU@17+OwMkmw%JIZf>?Tu?>8ld>8UCC4$hM$26lI2O~mmz(snW70M9e2~TljlhBo+h~n=2Pk~#|fdTv_3esu4b-f`;Fx; zSo)+Q=P8)UCmBh;lR?%qnH)L<9o7V_x%OmR?p4V#WiK!6g*DF%!DKT8GqD!v7))+I z1{axrUj?%n15LhRk{E-FjrAyul8%9G`P5KH+ zn=z>{>1L#LOlFw0%<=*>MIv2mlx4_)v!cv+4RnWlS z&-HuT$N4_fmlLqim^f?l3X?>f?>E+`C28imrhh|PO`7y~O8ut|@eFoAR_mw6sai4~!O5C3_$|&S;L*8L|k&s()a$mL3%L`@mZ{y{csm09k`Qa^e55qQ zJ&ZLdY2>$TpGp5&(yJw%VA4+_tsy?lq~mTXOx=V2pNnxzK5> zGqc@f%4ud5cay27nDucC?qpilS12q|8*7T5gLeWXYMN?5N~2a}tdC0CMD0S8{->l( z)W(@~E7BUZ@g^O2)095*5Fv@!#YU0$m)(eQEoh6_+&Hfg=C+U6 zJQI@(@W%@#Vw!9*NknYEu|6b86ERJ1Mp`3wrPEL+Vs6rzn40_$xpggA5ce&b-|ZN5 z$%OC^#(SEi5yGpDuX;%#gqr#rQX0Z*jP-L#n-DHE>3xzmAzWnA2{_GY2(LBixSL8+ zi*PVJ>4fnHqn;rrqmJ8$wlF>%CvWV?^`5=_OX;dPcRk!bj1RXD<0GakQ;^eyQIl_* zB*OTpu_hnqhEdZ~kk&9h<}}s`qnmUlo||+g-rw}_MPZ5B3RCoFNg-;QItgz;Y1CF4 z>tsors6AoQ^CfMfw#uZJA+1q+(xfr*ba$}YB>w?(pCwKNUouj>*~)b|`)dSch1?Y< z@1rd+6R{tHpb^~FK7za2NAMF9qZT+e5!B>1lSBkRHP-JXX(pnk4?n?;;Ac+5od~)~ zCxUL$iQpF|f+wS}E|6cE1@ixp_a@*`71`f#ci&FDKub3eAZU~b0aTVGYywFjWFxBt zvJfN)DyxDbbO6~y(#oA{G*KCyQ3=jC|6yiOaT!I#F@O?qT)^?~5LZ;xM9{$<7&YJT zS9Ndo4GI3=dB5lTp67kueo{H7PMtb+>eQ+I-tL)*)1sdVQNLmg7L~D=$V;bjH;dGN zGcGLJBI15L>>(}sxrp~eTw3(Fh|>@Ifq$E2#jgZ)BDicnJgYm?id{8c&wVJYxQ@Oe z{IILmW}fM)wV7x98t0j%5G<@HqtA&btQZifu2|cOGCl@z>4)9K#!t;NcGR+>9gUT} zxrfHyoR7@1H%AHK*CQ^i+Ee4S^E;-)s=b8hJ&eJsGWIX>y6|!L7O4X+v8@^{;$s;X ze%eRG3lNu9y+Fh{KsF#d2gtsHvJo7%Mb*q5_RB1dceOj+?Ad$Z)zYF_Z7rJB)}oU{ zwVs4vVNn@9E~2n#wn!b;&$g(H-;B7lXpW_*<(GEU8X#pf1a4`4G~See>=-=%wqmuw9fOvh_9{$O}y|C=aa zh&WckLBVC%a}1GJe0AQ-7K9`E08!E~A>un|H!ywatfjMp*TDSoUUr7ragsP+5)%Y* zogiL2%OWNU;_octwUTqVAnqq|q02o&l>WJ3nd)+n6wwS=cVK#&GdlDX6ralRVcDu# z;uHxpzL(Cvj?6Z3)^!W;J)}66DHLf#20GK0;64|}bM7f3?Snx`n}eMfuQpxosiNeQ zSgZ|ezyue6Im(Ntzy1ZIKq{?vqxU(KpYSngrI+D(zh{sz1#BTuhkI~S8Pp?P!}eO# zVXxZA5g?1fH|%2z8FAc7VlK}z$WHtTt#l`N{$a_AK#P$c4^^H7{Y#7PPDCEBM^AMn zzHVvhMYD?HJL46r#P==g1z~EOYXqmNw;_gn?u4+@h_9~4wS)Cd&GJiWv40S@;A53y z^n2iTdX8|2KMIF{=kza!dSGM{&Y1c?#OOBBw4OR0zR3em+c(>Nv8{WDC?OUl?2JIh z2lk?G%My0jC0r)XNx{i979mP}-1|>#y-z)AYtc+rkBy(|)Ex&H#g4G?@E)K65* z>v7aS@fox_HM-+0o{F#yM*I;~S6YkAZEZB-5oER)yjmUl4!q_7XkMO-pUZWuuQqmH z9Pug4dlc+{MaA6@jKUZt9q3{)I&yH64s>yZ4k|GqZZ_e0(9~?T58147LPOCZlz*j@+5GGix%7D z`MAXhj|nb!iO_N@hUf=ia`aVXxHO$;i7<6^JSJjk>k?t>G!QNoy|pxg>BR*;XhHZ{`!_iU^8iqf7Mq6{4{FY;<4of0Z!He+9gX|?)xP!?+e`z$Wr8Wp&gUAg?3C{7TPghKk#C}<$h2I zQk|jAw~4zeM7tEiE?ePM?g!q(XeRAaVcX?042H60D(qg+U(|eg1aB?a1+W5GZh5Vb zD*!tZkS(}8f&=+^m@{Mxt`NM#5g#a@^AZ)lC4w{YR8s9L9rr51xmM7wByKeGIg7ha$ejWS%et zjeNs!AhAFm0dfgb$BselBw}N)1d==g$Q&Tch^zwg0FZIjKyY9(u2#Upaa#l|9=Bb< zvT?fvEKfQBIEL3b@dI711uXj!?N*=(2SNK5l3ZhWF*F;b4NQGhdzGnMK)ZM(6uJ*Y z5i3S4IS1r$|{EF$KkV7CHVCrAB;jBIjd5VP` zwF~*&F61q+l4=*i1iKJF@}6Sab6O$Au#nhMb|J|i@t(xJTf5gTBp0cdB!DQ2G!YXu zDTM!JlhvvT6Yxnqfo2+rndWum7sHS>Vb7-5_af66gDCc6T=G-CN+o> z8fbMsLd*aG!hlv69f=jdM3|_A#zq^Y$R2+pg7YXWIpWty>;)yjj~bK%_~fed2DA(f zn}b}S!nkFk#U>z5`ZbDvAL-+-0PVMu=JSYF49I0qlvXFyi_uoN`a)8yZ-px{4yx6q zMqb#@m6(cJhppTDxBY&<&ccH!qi6Sz=0R^BWnFmwk!^uK9ZZ1Z0xb0fQqR9FSkv@4a5=@V2dk zR78k!{OCmFM9SgR-ER#KwnN9(0Qc{>KneEmoy<< z{p(m-7It&eGWt47q#Mf`oh4C3m9TID(l-1xup;@afhDa)TsqJvMQiou8ZnHyve|eY z{8WctCGwqJ6=B}63iJ@c0$1(k9-#N=qUjgv-Q3+H12_ut#JRe384nT`yndiLJ+J^9 z=pu+<9KSZ%%cbe#x+F!AcAgaxe7e`&r3+HJxRKHc&+q8`Rp!n;+*(&bk08Cv`6@eq z7up8_U2SRSBh891t*hIe(}Q{Zmq3AdPyz$dRNa(7QBZeFAXH$c9+p6%QIsXnO6%DJ zWhY}3+N-B~P#;R}9U-a~J&GeY|cYVU^kx+21M>=4X*{VKrIg z081!S5glk1X+;M)QjzykhbS;#<`9L{%ZIrq^s%iXZ8A8V0h=IadQOivN)BZmXy0MR zMz^b*I}vF7MF8X~>oQ$2=o2`emx_8u<_rydg|is65l zRWs!m6Ghd)o(3M&-_kYRscTM;WZ^>@PNF1bDiRz{lCqp6JL@Er;L27h5%gZVxA;7T z{~lMJPIv}EbJgu$PvlYz0Ov6h+238y2w#D7yQUEE0T{u^LuNj~LkY;EK9*FUEme16 z&acal>{n0GJmBwaQy~5OuoR4s;g2OH;E)n%Cq+`)N(qEzpfp6FUzC$JRnlS!Z$@yt zrV_9!P%JhQ6Mqbp1xb9c@^)Q;;C4+Tu=I)|1dY;D3F8qWfk*cD)Ds_z;C2-e&|+l! z8qhMBQYZyd#9q`jjlhy#Ojs(jWf1-z0n#%loj658y2E(I$RR$g)-(j@OJGSXBjooT zL6K}iKGp<@*=%9rCIVWRz|uGS6X2GUmtbQt@QI?t0=g5l~M8{=_rcQUUox<;>oJNS`fIcB*Wcn}UCZ zAUhQ(XwZ_d6xFF5iUk}}(1p&DA}MX9s7^&GwX%9qPW@&|S}fsg1XPP)4nimNGOJH9 zDjukmjD{7iQa2x9|w`F8Eh9t*ofeE zl@L&}=Bij#Uju};27OA{NUAFQGL9=nwn73+S}`HZ#<;h0J(0g6V1V2y21rJBi_{hF zdLpmLh^L;&AsNx?iBM}RpH|NZ-}tf!Uh#$UUBZNjdPZUp;B*93T&Un^-(tJ=rO@#z zsXBqBdKqCY3W8BG2;W4IBZ<47_z?uyo51qHj0_ZGHI3@`Y;%gT`#o`bo#-KL`~6}h zEk}ScT{90A&*Z?;S&xETTcIaT%NyFs{LrW3GPkvqf6O>-R+sf7gJBOrH% z%5CewX9|zVTI+;AAh=zn1T_)D7&_tI2%2k&yPn942r#qGk(u~3toS$_%mS=KkZGQJ z;=e_JoeADTAe*!3;m8h}k1$`R=Mz#C>4a9k{0{O39Qg_z`2vo7YLsSGBV~E2JCXJ( z0?LXd{1O4v76FUxXu5qAY0nF`sRXr_M8bmzsC-mpe{Vf;s}@m&3lQuy;0VE zly!ey7D4c)ETW9Chs;^V)+TNhQAW5&rFrU!HzGhPfmI3BKWTZZwPzDrPLu6uscc&t zI^u^yn?i!`1Ui)<6_QcEa<;Wqg6g1GLu!AaKoNy*m#8h1scR6NeUhFnb4+87KZ_h( zlZek>P~KArI%ah_0XtLZ1|C;JJ>gdfk(fj{iwhibbxtaSNU?L#LmoiDSV`~*0y?a2 zby&9MXEK%GluRwNQt2^4q23gNN(6Lg_CTo_oA?QlUP$ngOlOksov;)7EUcbQI2r+tB$j2w$0DG~2|hz0+rI#N<2(d7F!^za^w}a& zd#t;${^?gw$tD6SWs%@*UY@B)IckyMkP~po!II!?ITop{9JNfK9IM)@pOH37Ry&q( z5ds>EfUHq2p1G}X^}`Z;@&NqnmpHIrJyWRU#ax-&WUkLgTPV0RQIHm-^uDJk0D0ir@I%a3+HUj~< z2&jt~ChVqRdS3+RJWj6~kAQ|Hu=0f0<6}XbDAG#_W+6add!fxP@<*9Ua1a4qHoVaO z34{n?ol=5}Wo_++HVt;ONS#V>4+3(xUug5`dOj`A9!HpmV`bo}gw+Ukhb3+xp#B8; zcv_rn#ei!ht~#tkq|X)^?ywa66oRwEE(}Y73i9KS5^zYdI;=yA>aY$es>4!BgRGwF z4W!*7X|aTVMZkDVKvth?Ddy9qVm|FxPYNrDNi5t+*i}?VxdI$i5ax&?`~d;GWP%FR z6T9an^>f1&RBGgcfzsg}b|J8dU5FB20+#85t&qSfshIE`As+qE2k~qX(fJ%^P@OLb z?iEr9fhDAj@GlSo)iVe`N3c5|@h=h3-~?8KXOx9&qBU`ZGtf$n4pirRG2&`I%`xIG6BRKmZo#i9~EN$y? zC8DK*R7!9If}`uv*>9Jr1P>y#>3YwA@PbSy_y+=V+g*?5IxSKQ2?D5Chh2|vTznyG ztrMpDrP_qE5ag1}Q&0RR1Z;FY_0Iu$4FRT79nK*LKWn4XVO05Xqz4@7s*^DN6{(2w z&Oae;DHj!1uC9>EQ5iAN;!u_N3Ixn21dk#>wL(WRN+gS*C}b_Cn-K23<2Gg;8}qd67bb26gb;a;B33zosrfR0nSE{DbOMUOHJj$ z|T0ya!1u8ZX&iP38jbk`DVV@BgtB0vFKC%!b21Ix4h z2!Ai|pn&fIw;P@KhX|T$si%H;H)xN*OdSaFInq_5I|>Ro(jiiQm_7tC$W$#vnkH$n zgpml)oxm!7ww-+sXa_~|RDw4II^}DCp9HGbrF@sos&EwHG?83LKpAlARrM~^ts4T$ za;U1*qMFPK$0?)Z5TA#jW9JhKQonk}Gzfs>ltr#^I1X#k83Bz*5GBw;f??90<&FZ? zc*6o#A;32Ic7;j%t)vy&w5^CgiU8*)7$8L|4`SOsBa){Oyolg%7q)JTNL8Z}UxoQZ z3egFZyGtDi=OBmy7M+gx0t7K4tO9a70+sy};BJZQF9E)VfSnk@pdRF3v8H}CkXsQz zx9j03*T-_dlR9LKLOzOw=nRKwAB&&}(mRk5po}w8Mz%vnwnIk1AtT!rQ}D&@@xa5g4i1RYTqr6BE`E|N~R-#!yUl%?BpYz^!<)fgevm`ad_fR4OIj-gqI z%}21Ai7%5J>)IX=@uere<%3G(8evbo2FjKuoR46)H1Qh{#FY6y zkgpKv9(KtNK|Ts)e)svri6qJsD=H3YKYl+&ay}@nOJBsib1T+}I3~*xP3)VYIQc_2O;R?Z9NMKn( zjWa7iv&7CJyiUl%Va}sKtg7!^Z!0kg90dqyUxH}@EhKmw?5J$9Lxo~H7v+A6fOIuM zkk(b^Q3F1W))@f?Ah=MVMFbZ~DgkwZATw?pH_2?OiAhV4v{*uFj$t4c$2e-ud>-glt)mEEK!BYI_y#h1$r5L+ zmFyv4V0mb90*dZvU&=H~{2apTq!m&t04ZxqY*Ik5TpyVkl-PitI$z#)$b|w zJ%l#rETTwc68+YePZRb=K>sDMidPQ9=iDl>_445c=yHU?MU2%M1#KSIE) z{S80_-m(O_d@|rF3nzRH0TQ0L1dl=>IOp;QknIN{p(q+$X_AxRb%B=JnH(B0kJKQc zp70rwzm(vg2%2m8`g$VoOL|zFgnDXon-DyW;I9Z+udS~qa!Atc0%=UU&Mfg$1ZZAJ zaTSu4;0*+j%b4wHSvfUR{tIdGczu%uMwnDyP%5@l{pgX39k^z(+Els zgsw!cm2_vep@LLIFb9FE+R1z$^-q$f6Mlk#Ci@q_&yu|0roOlcL_oF$g#SXoY58@r znClUsHCyhmtl$E|BNA7uvil*aSqLto;674VSq|VgLRisi2>L(>n?_+TAV4kw<#oYv zW8Lh?esyzja74mCWI6%M^5IlziR)rq04#^wx~vaNl~qfqCwvA0%Nc@yB1m5V@`0p> ztC>*GYW`7ZR!Zy5Z;Rb=>#t#2zDaxOFC;M%@TGUDtIZRu{~J& zB(MT6s|5Ve!X2h9bC_1O-#3t3+)osJ1HgIxg@^#*RS0OxCjdT^ZSaU_@URlBPY zP+)*?vBaYZZ$>~}2sTKvPPkd(0hjgZh61OFvWs>Ce2T!T5Z)llE@}c8iCk#QA^?_y zq89)xlT-qV4!A1Vf*5t`@XSI0&1@Iw=oHZqJU|qZP)|4n0pbYq5pZp@zMcpT0s40U z(jE!*gk6PBr38GDRd-2x9(A zh)Sp@lwuR>uO94jZ9(Ap5jzC010oP7{F}fN>kk0V8cKSiYBb7|G7^N0do3A+l!qQq zaZ*HrLqyn3U%3o>JE8HEQskf}SbsC~F^PT!@S{XE$m)s!hMoWv4b-mO>yY%IkW@My z{8CaWC4DZkmwpQ%C6z`hNu|+Bl4{a7AZe_SR1}s}6qZ!PFF=rziaIGtMHebbs+r%1 zq%RP-qyhLAp%d}SbB3K6 zDrDF>iQC!wTD+*F&FZKxP$wgmr0Wwd7{sa@Z;Ag2 z0mT!%f&ih#2Fjsk4z2jc_{Wk{08#0>;%(rfBY~3|vCOd6<;yWlAJXEbeT%93IUpw(PUH-nb;~c9m%$W|9iQxyoMBhyy8Fq**~&E zya9=PE}c)s^F;~1OVBmUDxTH8AOc$mgieu2Lx@J0jlgGr?GGOg{4;vu6A0qB)T{*i z(WHhh*svhjpOd)Fz8#mPwFtZfw?DiW;(ba30xz+6`7;A2^|KIoHL?PMcY5|`2hLfq z?j?`Lc@TOF0*`j>4^Pmp#^kdIfroYWCkdOp@d#HU@R+3-VIPCFakKfjFFSw@2R9*H zMA{#YHSE#+IskeV2Nu4;&$(nPg59%ies-#<2zD>B>Fh%55bQo<)7eQnqO%+9MX>$e z=BLwtiC}xVO{ZITM5p8O`xId;5OZ*-Y#LW`S!xpeNEDPc%4}uaWpNL&qpP1QP;X)A_J*1DEyi<7lZxns0W z^X?v;_q#{5-X6S*e7&ArrGIv1@%&{A3Q8(p7Ann8N=YgxNz`MeYn{t>EJyJou3e{h z*ZP!A*XEUJm+SMYv?A0KMNi4q61Qu!YpVt0SDIfhs~$Q%sbXB67Nc(o=4V$A$)BE+ zx9Zak`T1AXdB#S0l6vM()^5qo&(6y$O?hzsDwrex@hcW5<zz zndXV>T`*+&&=hS}vKG5hn;p~!L+dJSYOWTKq6>4i;oJ2-!GcMl`A<;();iCnwDP0b z)j2ui=l*3jirJbyzBxZTC1u(RZ|3}dT+Tx|k7r(Aos%+6JAW72T+p=6Tfms3b=pF{ z=krVRYqZYE+Vb3)<8tz|7iZ<@SLT8K=v8Bo{UI$ksEt05qvdVUCWtop+xlE>p9}iz z2D0C^{WL3`A{0V}$J@<56=ks5^D?g=A3t~gxG9M1ldFkpoj0Pi|JoftcW(YTebk=| zhR#n)${(lA*5{$d^etzN_XJNpe#KMOd6PJ*Q$KDwbGKl{c6E+aos~&Y>-y2TWU>s}0n1gWnFxpLx@W z%n=2i;ZdH!J@d2msAZz$F*jzVj;kA5k%oeAOI>#*9Eo}LWUUXYFgI7bu#EpN+P)|F z-8+wt%l9NidB*nKnwM8RenJuK@#xa!x1x0Pnn@Fe<_)czJ8{VPv75&w-JNugc73we ztF|B~UYif|=5DqVv}kaW`{d+9{zi_?~2p{Wx%vZ zJz0W!0)2k?zlI-u)_hyESWkjmdu;ti{m+_jUP^h2HnJ=)DesZIoD__G=q0l^YUk_Q zAJMu8wVRT)Zo{P{>$M%s;zyiqItx|^4|ph8>~N>KkkwGr1+un zp12-4@drut;EjKPb7t2|v@ZHE?Y{L}v@!awyzyiIvO>RvIrR8n%y*qOv`o7nxw?1; zxxbZ))^(6$5^3Z4PiR}Bum0qpN%fwD9{MF;Rgml%_R9*sL?&T}NqUo~te4&|JE3*u zkbIIq;lFcNZIZUfr4Iv-o0<}ec25$Ny{-d*9_?@I_3cEco+sxKow|Co3A+H`5y41( zyr+LR{bTL?Tlo*jU+D*h`ohR(snD*@?|*aW!jz;uecAK+b2(K>@j`ED z=CiVjsIZiy-kuc~yq%Qy>_Smz;hg8prBBjFYS(Si0-j6V+WZ4r0ByT+qt;&!=6-_? zvAs@@9+IHlP<9*3uzEl+vRXTTqqZz}n$}s5z3;TU!q85--Xeo$2)nUsz!X}SjoJfi z^zNR7ZdE&~lEy!L*$eZv$+>#eQcQdG?3koe6ZtGSpTad?qTrS9iC3&JCPuM_C51Yyz z$+q-BpB`U-Qc+RCp4sJCeNx_X?GmtQ-FIm>CTrb?Y4@+*r484&)S->HV=g|RJ>k`3 z^{XmUw7$vD=fo$?uYmWayDzWu4C+yt=jqo|dwlg4?U=^4_u~6RIUIPe7LiqSBX1%8 zMQW?IYcIOs2^g+>dotYG!ep)YFzxDK{dmlJ!P9IYcjT_f=d>Tzlxc5kweecHC)-_- zl7f;`W+9LPI$@OCq74jUaplSFRxo&iRya?K-NNW(5xr{-=7ZpBEo!6I>wq>?-{l$E z*CK(iQl@wZ-rLObzQd_l=$G}grr}@MfCRxHe!)awQ~66wOXpkP>F1JP;wZn? zZkCn(x@%`$E5&ln8?M!KwgYW#! zgO1A`sipmbt@*4pzx}`CykoS59ptrbZGYu`$9Yq=*&W$BGi+-7A2YKgM{$+n3wJ103{D_>}v|GJZ5i2_Ho49{s z?U zvA;*OBiZR)7fkQ4V%py|&@;~}IID}6a}K-xz617&U2s|?K0I?S0R|naJn3D1o~+Io z*!FexW_C%J2-&`k#^nrPr0X=WL|{>_!8o8AF0kFeMhNWh3VT~&UEvZkZ;HZ-6?TKd zp2Xu5BZZW|DeR!a-UK#Eq<)~V&s6F+z($MIeel661a>zHl~_9NXC<~zVNc?oR?>bS zYh!=9#Ky+-v#|^M+t?X}MdP?l*63P=%?Bp!(hQ6}KFYNmMwU8{#^IIBkpxWg-Gu|X zv4ZdSz+~z+U@|os$9CgH>NP`bd4BFZIhw}JHr7U}v>VO`O>lGamU zD;2h0VcQh;n8FS!?2y8aD(o|bY4LWubyZj&g~b7rHi%c)CCXOGiVstm3+Bfo0&nBL z)cGS|Fc)Y=IM9VbfYm7MHwrtVuoDV9rLYLy&f5obos=>~VIL?g3Wt9(l`oS@jIW7G zY`VhcDr}F!K2um!7duC+!iFd;Utwhmo1?G^7$^pdT7C&k+TbTe>vF!G+8-F45!Ogl z*aU^~{W_Ui1Wd}iMq#(8)OCusNzrN)?OsKDK+*n7(VkRTgTh`?e6K6on~L_nqJ6Ar zUnttwiiQh4tLEK+S+!KORA913S1N3t;tMKlqr&PG_G@4=@52h)ty1?W+TRuJkfOb< zXdftAi=ut0Xr~knUn^;8-(6w7fk_Q6QM7@ImY`^(6m5c{WhmNIV1q>K^Q|{&p$)*K zzuc+#wkT|;;%ijcTMGMBVaI_<{mv+i?`z32`T&!uaf)`CqK#Cvv5JT5+A2$>E&?WPwOaB0N?{Kxz9$v7S7C1`?4Q7-E}tsQg>|&l zGy<4R4JaDE($u2GD%t==OHi~?ik7NqnTl4ZXjdz2k-~0Pd}|b~QqgW#v^qt5K+zsj zv>m{t)&8bZKL94J_NC(cNnyS5bc(F`K!uG`Sf;{qfl0eeSJ*O@x>C`q6m65D-K}W% zDH>nzk>zevv?mp9kHTJ8*qe&)14TQgX#Y~QZxyXo(Y!rv?fDaX(i#JRNe!|Ttwiz7 zQP?`gSEH~86t-Pqj{}nyYEW2AznS*b#NZJL8HbBuXSF}-zHcruU zfXOzWrcze|leN4}@$sc1S=tW8_kzM+Qy5?4k-B^gOy>AnVLphJsoj9d)EGtMD09gj#7?Icyz@#pb z*e^(|r@{s(>~df-$5@43t5TOJY@NcY6yF_+cDJH!QMBJH+M|m0q@wLr*sCh_4PdfW zk1CoQyBJx^05GX(UxkeYW?5We(-byeVT*vtysH)VuuA=tqCKT(dlhy_VgIf8jw;$G zigr@bzEd=A#-)A{z@!HJX>nPjfhu*9qLnJXxe8ma`0h~Hg9>{@VNU>)W$aNHpH!E$ z&lTSpg|({G&e*?6P5I-25*w(n!N8=H(TbL&XjzJur)Z^$Hbc>_2PWHhrAp<4`O+HO z6d!+MN|tt5@f}szzZBN0FfaC;GDi=E4Fx9ak)p6Pm0F-^GZeN^VK*v1{(_;DvQE(q zMY}`Mexqnx6zvgUvcAu$)MF~O7dD)-<^zC9?XOhWbYQaF8x>Ziu=^DDh{B#z*vkrQ zQrP>zq%J=wS`X~SWf^=5USb&v%K;|!o2IZERO%8%yH#O#D(pUmJ*2QdD{QyIUIPYo zFs{9+Xnd|+mK%W+0*PIyutJ5+0w%3?qr%oI>%2x{O33f@l zT49TU$ud>~!yop}hQjVpslQRQEsFLhMSB#Ol)M|5^qlteJPDMv8NeV2`ps4}{$_}zRVr+=!v3tVT?#v>upsGcfh3o zMc~manc7uhJ%Gv77)2YPuwe?jLSc)6Ny#?@lX)vus;N@%RH=M~OqTnwqCKK$PXm+k zcB$0;D)kMO$_LA2X`iaplPdLFmFfkPEUgnTnWMX+T?kB;)>owtR;gF0)FhRfr&3E) z>U5R5P^I3eXe$(L129=ywMwm3srRYWLkeqB7@wV${`W6n_=CUX;k40`r?C4Jc35FQ zDy$C<*JO_23d;Z{CFd$yxuRXGX!k2@kHS7u*lC4%F1O3*qOd51U8Jyq3X4Q-Ff5`* z*s@#teWEZd&0O&!6;qj&TC8YgidL&=_bA#SMSD}xd~RD_0GPB!wxZ=LTD79_#!&J# zDB6pP_M@Wl**?ja3{2{rs%R?}ZH=NmrD!`9?WCf8t7!ZlXeqB8m@H#~qAgOi6N+|H z(S~^Kya~W$-j#~BM$tAY+U<(wi?H(sfXTeW<}F+_7uMwG=TTdI_qfEg63JY_) zVqF?+)X}E~MBbwc9>MSj{O9dxnDRU*N8uu2%725xTg))!3s87B8Ky*_MBX@tDHnml zd&Dqh6ezqM3{wg~sl~oMOqmM`Z}GyEwV==xVajGuc;iM2Dud6XExL{JY7ba4gW= zO)RqAXRXC^9#S;-o>A=>K-gsQ=z=E}|JxPiy4NDXg&=1`dj`<|U{N~@p2GmNX4}u> z7Ec$DHTS1&6Rp^8iwDjL9t@HleE8k}{NP9&JR@Ny4A^IV-n4jJF5AaGYezZNj?zil z(asg!jxwwrg}-DhKX$Ik?I=syQEqKV+0u^kY#YiE#D>k8du_%1SqpERcax1@bM3WD z=PtKnc;?zhuUUG{jq~R&v!iWeix%F9C$Ob7{5+y-m~hUxRjXFn)OkyV`B`-JliO#}&ys^5H<$9ylB4Kn$x(DANB*RD zdwtHLD>-M;&yu6$D}B^YhD$xql0$y$xu14Fb!{hf{By>3YP(+{K39VE8?$!uS-*#B zliU4Bsh!Z~S2}HC#$2@gO}986S^EFqy@dJN{2-ms4lfR<-=7l%=a1qELijiEM6}({ z-U+JX_vxe*$M4Yz!Y}>koM348D{X?>!LP7M`qH`A1m{jY>xbt$ObY*sTzq1}h*-xb zaa6*XE5?i-J8E=n?5Ko9qzq4Ba$-Wl=#e7z#92Qcow0zT(Q$h)F# zxxDYZ=T^6Coh6Ss1mBq9&aAFapwL<_f*c>gH+F=Bg15dAyY|7e`4Up$FKsLsguFYz zx5+AZ9P*{Q64K0!IImgD6*@3|!%AOd(DTi{#x$5bkv zwl(eLs(R6f_NhE`fsnKcSu~wOu{ljI10k?ZIx%{k>nSoR|U^}5~2lRH+iaAzh^H2p=CSbvixWNje=Sp2*+uLSb`O8`T##EXhmOwCnXaR_D3E+8&&AR)Mwsbdx?*d|$*L1^ zp@x-{sa|??%P81kUahfr=Rd#fRKNi(dd-A!{EncqUFQF78TRMG#% zAXPCav7u(}DU3|}SRiDyFA$QBH$nNM$khDZzgt^(qB5<=57az0ko+~f2NBR8=nYjT z3e7Uz)TlSvF&`0 z6dF{f)MOP~juQ(S&4#llb|EP|E1%V|y0SGNht~tblZ&QQomgq!qML4Wy3f4XYpmU7 z-V!ioK5VSrYVKrybJohxJO1i>h-x(@2QZ>|Y4gGa(X;%UE@#Rly{2Hh=y_3Q!2xI@ z1|dM6WKkoGO+K^W7$-ur;3$B%^{!eZVQAoBDcWTclB5vbD7RJ{8w3vqRHMsBPa|u@d>XZ{*uD>D-6a|c%zLazC&AzSWQW5)tOE!=9#|D4QK~+ z_8B#$f>dNiNzxm^?3!tUlp5w5Wul2|rU>$7Va|)kzFrYG_PdJMs#9+N=6zM@Sbz=NZeiU*?*!MH=|Rl*-QnMC zWxX*y2-l)j&GeOR6IR*@RU3dIt&5#WaC5!fmf{7ar_Cc<&T=alQktnkms3{@Ww-0U zl_%!VZQVxbDa_U8L@!+5TL{Im*2I685!w#AkOcqV=db<*12K83k!bPQseAp^FCeuh z)oVntMZL!69d>3@py;dBITVmCM*F{UZhMwfe`C6D2@V8nRxfHy4;11kxF!_+Q)_Eu zdh8M`7#h>#VzDo4OuuwTcY+~HMiL~Pyp&*MtPn6}D`YmNC)Z-WZA?$)8E<2HMxZ}I z_Uuat@&mXZY)mg~z~-$ny*NQ9D2v5KNn?8X2F#j`>9Y%Q^!Uvm%;#wi<8C%#V>(rH zi3%mh$vW*9>Us8u`anz9{?G*g=LtI)$(G&0y1ypWKrwLMn$T{ES?(Hok9DLmhSh=f09>{-GZc#we%Q|@X$&1h7Glz9jlId;r)FY2B7z@uWEpc_`qcfN3jPl8%j;gT(6Pl ztJyr8e2Ez9eTI*-shCA+zt++*W@rsk(Kv4OfB*|PSoPu2sy$gi?OONw9-dXs5#-aO zMh#n{YJZxru2qhpg&NE>uRrrElf!J35sc#sMHVH}YjSmr#nEOBjlxmc%=JNEj_Iag zXq}QOW1P*1 zZforKZwj<$C7W)ud8?kMf!+SUr zL#WHz2>lGyf7><^xEXquw{O;d=yB|a{)ng%&1z)U6D}~1iFSh zBjbp(MzEZ>yu9?j1nkMZ@+-;nz+lKXscTl+z=f=D&j z`pit-tO%I1GUO^E^p2UT`>P|7%j{(o%`r>8M$rPZR5ywinWa9XXo*=Ai({t6W>IwL z4SzLH0=ODHW@H`{tHBduHP|dxgC|W7M~s?+cQK}LCCH^;v$}=U?OQ#2iB3?SZBsgFfJ?^;XfBFsoV{e&jqug)14;kl~nb8Jjbexol z^~Ww$*LD1TY&^N*YF_gNmRlRxymH%VPVyP)v;B`v3e?_rV_Zrv z_lIVI-`UzN6DZ(m2zHr)n$^)}Zn;?$Fba-To{~IKfB60uqi81RETZj&Ec(iS?23A|PoRMG39z(pIzBm|@B zL;MkQyI`)D-l*E^F^Xa^zF~*BPWKpBXP8$8%ymAVUX?Wa?`gmZSLNE1?5pNf-AKns zc~TxF8mqlV9w-6RBMu3V)}%-ItLLMa_;1??)sTyQx-s*Zm>Q!f1>G8PERJy)Jpi0o z$HkbL$Dmm(Xl!-S2!NtnBRR^@&C1K1M?D`NcY>;5N3_QS2l;XN&V-7lL3&4bM$x6l>LEtKNweUDkv`JMOE7_VGIPp}f@3v#V~m2M{_0mD(0^M3{&%=8;L$fm z__J%wK}{OtgsMCbV0glTu?|KTJ^z?h@k&a`3RLYYHrF=Gp?EJ&0}h`t_E7r+=9OM^ zg?{*yx%Nb3x;WP{(oY&i-x{k=nd6PTA1hCb23=ontUc+krYHGt<3l=?r`cqDmB1AY zfC=q24=+ggLnlEIM-C8ZkIChZBi=P)!7LjM!xePq3A25$>o+)BTBotiai4K?^&3T? z$+0vK*u2^{>yut`eR3EnXfTxSYIz-N7_3$P29h|>1znup;(wXXP49&mADSYRDfG#Z&tnW;f^PPOH3oWzceW1pwEL7&uiJ3nb9 z)0psFGMX#YT2Xxb26IJ5==)%XnbmfP%ThyJ7KgY#Vp#PuKb>f5abqMTK$dQ1#iAiX zchj5J=Z9K@eX7>$o(di=@zkdI&u6gUVnW4dIG{2o>Q#FJSYO!(S*haK&DiVTbeIyJ z6pDRc(e?NM(LUz#d}!B)!%D?B*!l>OgK(NH5+HKzQ#h<#+t$!!_87$mH4Z9vCB$z zqOY2nPjQx|dDNxJdthkf88CWURL$g-?RA`*%?TCDw%epuW=BkS-6L!*_^d(vIC~FLrp$lYj9=f1ivu24YL9}bz`6#Pc<-~mC zulB=J+vlcj=@l&}*`b!>O47b?oCBxcc{yj51s@|xE=Pry=mQy~7lPh$3D{uCnk%EQ zaNxbs4vbOOcIhR^Ua`WyH|k{F8&zDRMib|S5pIewnyG=110c>gu{7YS+G;K?gm%a^ z-f}c48n4?K#Yy4T#%EQ#B>;vLDuz91$}gj=eJ96e}6CE5o+7>fX{B9@1t; zi=-q zG#W>mr-G9f=7RyInaz|_RSkO0w8G~3-$=i1v$Cc%(NJEnT4UH)p#GVLW_ z1IV6FqxT#QblQ(-7NP>l1Y*wg?K!G<+HYp!B4d58mTw?$UTsyQyJ}w`X>Gt?{SgRF zxT3kIDc#$Yt{>TJX4Z-)J5X-L)~0mdk-bfS#}>OWljg#bj2`N00{_cRCHFNQH1(#E z?M(-pX6|U3`66J+0Y=_!n#qMzfK3Dc@QHgdO5E9)+4fFMT!9%Cht9tKI>us*ie~3! z7m7!J!h}KS<$zDq)X~0jS8nu|oqaJ|ZT|ae0NfY$Vzeo*s+)6=din*2}S z%NFxLeVb^nk3@UzMO3sG5w;f_Yj2Hr#-5`Z>V~Uo(WgT1V7KYNBLxgtCt|g4oUTd! zpvhgeN3Uv#ZYpbTn)qW=*@?!~lfr6+-!`V6BG#DtBf;3y75{*qHF>S(THbW8L4(+h zW1VlnVA9VlV^;m!gS)fp=Rh_~PSj+)eX7aT6B=B9(k&qwIgbkH78V1${F z+;m~n3|=M3b}tvjh@)Ay7nE;Pgwc4siqZn!Yn=WE=IsGMsqq6@cf8mq*|8M=}#JbVk^OQ8# zBscx1o?=#J78Av@e$BM*ODe4 zRSPv#bd`^bkoR*sI##O%%|^*F&TW{*Fy_4rG6yiPdREMN^)5yq4rg4B=va?gw-Ite z!j71^;rc!lDuymA?j;nNw*$e1=^W%XOfdFK4RJqV;AFAtD7kUeSj90B$ChRlEspa9 zQLLDLISf(}t|(Pqw}F7J^u2%6L13zBu>Tr+H%0kFocYF@l;#ipjG2i71OI6y?qVgV z>;B_a_IN-`zA0_!SOM9O>eR7xv*1nC98+4$BD-XmN{tpauXwCSJaUJM7`#%(8S#3K z@3$QZkMHKRfH^rzuH;ZZ*=1QfIV;=#btxBgGksVMyo?KK^JxxtX4Xn`9j{o!=Sx{D zp&zQ`<;m0r^2`v2R8J7qz&ZktJ^|pwQfyGxvO0b=gxpOhJGLgAtF7m`(xYmw{H3i4 zJ3U8-j+n&O#MldKaXshX^cV1|23_tl&+Fj%uP?#lzwIvkx7YIFXTa_U71oXg;3;kR z0WhxT#j|0;XR%Tf&x4^|_y8Cdc^JplQNgBPBe(S&*iUFfOs!ndTY9y8_7==9_tzka z&4+k8>~+xFEVsIe1_TJ8(yX!#Nf$Yoia%=s`Z-@+xD zbFD8OV=s8E<(hmxtAqRT+gUf<(z(rByk?Hi*t`a!W*wFkd+)kMV8%#mwC^a25 z7n^*4^#q_z?xqOc3%JMh9Qm*@vzC@_n&@q6IP!7RD@P{k00)mu^u7P_J2 zUukLBE?47v6S4QderHlZCU8}?;r-KE8X5ghPwMM`dRok$qtSal3UoRI{9^I{B4pb0 zk$$9NL({9B4jGyE)D#sqm27Hyy{Y7OYpvE)@<7uoO(k0qo%wLn%W5sR11r4A(M>a- zYMQyT>F-S?ySaqpI%_aPr46&2$j(iC_$eEqdzty% z21p2&o~s7P=K3FNK&G}eD1&rVVr+W(xs5}0|3}eeYAd>28mFc-?pc=GT>0P9KpgUE znbOo}nW=f9Mdy>Mp;mwOe)Ivh0#`!fiubPV$dCC0Tc?u$+@vd$g|Idas08{AaXGqo z=WXa2&9A?K-siA9&M(l>#ghFgB(=-MzB*wR_}nkcM?4FfdGYrPH+=BBsrC)uDO&1#bL~-oXd_VL zr2pv#|6`c}16!nblS*Rz)wJb0%`Az*E#TNg{woh*#tR)>*FW)lGxJE*ez$lYO$?gy zDJE@ZjJEdOq>8AD53ofxQ=`v1*}?OQFu#A(osbKLMi*ODoi*(f1c7+cAp^{7?L zHAq8)h>OMkhtVJ$`9Qdvjn|!o8<_h%ac*?PIAo>Ims3 zGxLy9@Cs&rd+q_0H-)%e!2H?%ws4|6Oqv*;e2$m}ugJrs!P1B=JR@r}p`0i8?{zp( zsu6R-@mrxk?+bC8**y6Wv@bYw=a zHjW@Xsq6`87RRNUlW`u&qyH$xk^uu|kq^Mm6>Ebk6Px))bOIh|@bGC9kG$=z$x5x-A7^|g z@2v5}Pv&>VqPQXEqPS>Cj733g<&nG@TqK;FDqSi@-9>1PMR5sW(~Yl@DS+pu@MK|Z zbBtA?hv_J&!aypI$2bg;L)bG)y69}Rr?-|}X~pIHnIVQu&U^pID0vT0(_*wCNe84DO- zw&pe1;flr|BO1R}HucH&t^Z!z^>;E4SIWd%`k-i@SPs}f3$)x^y}&G*gG)>^eYUY5 z2OePdKlTIs0XOuahrr~2dXN9Hy{L7ju3?8NpCZLJNGOiQ(g~g+P}lS&0O&Z24D`FV zg{`@S%{b3bPE1W(dmJ^t3q5_9Zr~1Hv*b? z4!hV+ojnyc@(h~m5nHyH&RTxN5bAtCP44WBzvKNhzQ|}!@tUiBShO#T!DaA!=>cOi zpL2fi!7}_eo?n9h=IUspW&sg#Qf~Z}+t21*T)s-O$id-cI$pOhmx_TY4QSJOW{3is zCV89oG#zbv`N#s@Mo?tagB1D>7U`iN5%C{uddy$~#Y47|hLwF<;A|$}_aW+mr!B*o z-~ZZQ-3QBJnS_VwA`ro<{I%nq`5&wJzc;$x%m-(;ypU#cpQXlJg9LtKOKKBS8 z209%;(#2f%V=ezMld#?w#EZD($5MYM{~c(0dC!M>rvqkg^f&%Mh?U{`A1Q}$&WF7O zm;d*O<^Oi<1LP*)8-KUV-Te2awZ*aa6lZM?Zhx27rSWP)Iu;L@_I+qwZitS+nqsH) zZVSr7kyDfV$a#hrPskns`}-e)WIsF0cgv9SUWkp^^x%v9AL9S_A_CYpynpb>sAz7v z>>PNekvTA};-N-~Wt*XZ#PZEhl*9_nP_)E~%}|WQ%JAf^#LCT(*idG~%{D`qO4=MV z#CO>sd4U;9kk}$KG*V(q%+MH#1h#8#T2REe!ILm9-X<2JwmW=K>D+a5ENFBx<* zR46f@Db{f)22X&NNg5sjEteRc0i7)|Je$dDKk&txp#>7dW1!qmgNElomq-i`f(9jq zCqY+A43C1Ykr4=MKu8UEz*1LAF1-LWw{eQh}J>Do+D3Mr0TUYsIVg~xpx32#M z_5W{a9C5VMX0Isci>B9FyjUXH17r0USdYlz@c1#VH%;*(g&~G(xv~F0c}xH3OVWAH z-qQctqH`N+{&fkQoqLmQm?5RR^EnQ>x!Q;SZ*Aa|-Rw#0%epP$1{o_ndvmEu(l`Eq*2h2~Xw9||wioR3Wo-%auw zI5GB`Gk-j|55l%`M~cd0k1R;F_Q&OEZJi>%Cda?Ea>It_D>t}aVBq_5q`O`It>6B1 z&jjY(mGg>#qws(3TxUEP{%H3b=r{vG}U^qLv+G z5fKy=Ujac;P*GG|Kz`qI&b`k(v(&$S@ag29?>YD0bI;w^2TcWPy_=Sz=^xzIUi{EM zgfoxi=-&AeX4(yU3q1m%ET%o6J?d5t+oj5Zy?cXK>jl3gv!CNCXFc}H zO%cWay-|tpS|H{_KtV>)5jElb|M}gRPWE>7#WwZzr(>PTbWfyD_4j7_Q>kRSFBa`c zCX(r7DwdA)#gn~7oJhLMiA55r?np^#=8$w>GT9U9-E0eGR7bM6GZF9Ti|5pcC;DP( zXTY72j=p4iAd={hIpx!_-e@eH>5KHmoYE#W5=?RUsYoK$2QSfdd?1#N_ad@hK*sOm|kW6?-oL`7o*@s3y`nd#F`h@@kgSRcto1|so9q&*Q+$^O1%=RiCf zOZLRzce9H3Lf?2)yc?<`l1SL`GM|x+kxZs9o=8N~k&Une60@N|<0WJDW#jhR0@RCa0Glqq?%Qcy4AG zE(tQZZQIQ7bT&JIhi%3t^jEb+E}fki$xinTO>c*vq1hpz^xO@77z<9EyOydh!%9aBL3#ChL#eUVmJ&rQqAfCzv#xK=~%-7#wLCIeu83&_9Esa>C5` z3E-L{%is(y9~|G_8ltZn0y zL$k{5DjOahnpU2fvG->OL4UwiOYO8ZZ*F2{Z2LrZgbF)oFaL4Rn;D&)o~S-;Q^v*$xHmK=oxE$e;PED(c zJnCTz-t86bNL3aU=F!J$*_LLKT}G-fTj=GKU3DoQar;lo#w0UwoQtJsakR_*b=o(KjT=*S0qlf9U_cOGk{|9q^|1uC%eb0|vUu*xUg} zNLriR0RxSo$ws=)JPa*4tHc>plq?6DOH@7>(P?s^jwCry(nShVJ{ZyIaiFYs87VmS zu2E1doQQ13ILMigd3X!5Un*Z7+=~D5Os|7!TD59bp6xXbxGB&024B4@&-fZ{!+&|! z*LZVNBmJM31DYkAX32%GzKkJwt~ARaxm3;89I4xhOuO29{((z%dZ|UoN+tj}Od#^2KqMT4J?Aw3;4JDbB73W|3@GT{olpp7R_OTL7 zlpf8zwb&;WIL_nqZ+Q62#cXgRntf?0-w50I{z|cLsx8L%SBu#cHTS?|7t_v65cJ1xOY=o=*-cgci`@OT6O;(nm4?J5UXmBH%eQk-rsXZ~iO9W0i zYseFcRV!q{X!U&+O*>w$#+5ER* zno`!nl75VbNsmejuB_E{EZh}a5yHx{wXW~up-um{(A$@t#6Fd8N`KV3Y#lQ#U;EhX zOe#CgGelK(GAml{Yu_`Qb-<@ET;ZpK3T3Cd?nkgbUwX&T%sHxTJ%{Y~bqN_^vf9@! zWIK~}zKD<=Oa^`F@kzWrT^8kVL%uE{V@xjgwF}wFl%R{P)Cr<30U7PJMIUdm@{dsb?LmaB?a; zJv2KuIibosUl*+tFH}3VmgTa+EwOacsk4S@kSzmU)Zvl6Ei@g#Jam^gX)A&8XE zQ4l(ZhG!?IRr#iyPz0*iqIp_Z5xXv+RP8dfP8D6$QmI;Md@8yLrm|fTH)UH~{@SPE zui`X9t7{jb1*_OV&wtbf=CCNiFV9!>5)iCSQ$VMaU?_lBmd_a!Zko9DwaX}&eyUXs zfgM9rs$$dE5oK#FHIx3p7~e8XZK@$|~Q91o~@#1|5ATkw(>GsOZ?t)cDXI zt~0)MKcKk2LNZ%cAdYHsUSAmx<1jvy-aa<0DmT0i6;)ttL{%mzaw{-9HjDMR%APYh z+Oc7jFR~>Y%Oc54@uHp&>c8pC70%zmZGX)+~WUSr9OOv1F zOo7MLO3ug145`r=7$2IM9o#lIJ}wKOgWJZ3w$G@_KH|0pc8yJpOzz4;>y4BLZMAcN zD>suRy91L`L&IaUQ1Lx<#p{f~*6FeBqq7rPbO4oS5_DEz`_PUZL#pz=?gz|5SikyZ{-+Q$t&xN~TnjJ1`PQKkZ8GlQdJBV!ZWRpkgFvxJPui{XrB z3Ej=;^yJhOW7`NjH!w3ggqA{8j=nRX)ZW18*z6$sz*$v!HhmH9LK~2RS9uO)^QE=Z zSUIWO(E}Z?;OwuQBz%7WD|kCq<@@L(an}U6lc}60;#xG}zO8GpC&5iPman79jf0*2 ziA1I&9gFqq21w&**?PMYy7|#qrkj?!r9IJ5H?5oZ>Qx7gwe$2h5zA!I-%y#?IM(9h zTX+e+-U)NF8s8F&ssnkNaf{0MUTMyCF!A0LX090TwYS61UTGlnc%8|P{*2n2r)W>I zKNB0&9BGcUpPU7-P@mb*mrSXBc?x347mIiGs=axs!Ttcu*B$Tbj;7*jZ-MR{TSp{C zn>A{0egYzijgifn!DR0s#kDs-1(^-;)L>sEv!Okb1}`rS{n&Y+b?&`;^AdoannYim zLdsJxl}z=g276+?{ov#!XrMo_A%gVaKNl5>tK2vu?#PnZK&&@!Z9ps~uoMDkjtH(x zf-^gW5!;kXW{^|Tr#ge`Ne%#aCQ*EFK>|fQ*;k4Vs^*-2K!>z^Qu-0EZ++r`kW*Sfk8M%XxJ-E6oA;j>gwXUC^>0_ z#q?A#6ER%7m)tC7>dY)=q){LGbe0xyg(Z1fz-mwS^(A{mKytODfL;J9$zydTXAAhu zsZbtjiMq$I;WmRkpqaVxS>=1pLnYtIQNF);dSF4z%HVe)8I#)1ApcC0iyB$5>(Rkj z)@~q+X!KoX`6GV;!IqcJDJ+v_lAV1UBWMA{$TlA7z&<5y)uN1uiEUPjb}W1Q1~Qv_ zJG32bULU5wv>(b_z*zFCz7L~^K7a4N!_aY0(C0_|DRRp=$bY(Y;}df`(4Fv(SPUU{Gh&s+ije(sG8Z`at!?5OhhQ9qr?6;oBIhSO;vg?-56-0alcYzEs#s_OI(pyh$g z+|(2{p=NS(o2vAg;P`7lgwbeKW*6Mmf!r1`e_00OIaSq1tU3oPGCnmr#H;~g1syC$ z=$nWasyz@G@~s@m2AkyZ_Nz?QUCs;agV+!hcc^S-L88YOI<#(4L25}Qmjs%mT( z80#I31U|(B{2aog8t)t%AE&T^@3;|ow+Vc5YLBX#d;n0w0mXK!s`vRb$V3gMvqK}i z4uJq>SAo%|87U04IV*Q|0^JnQ-+-}=u#1dvhJj77QB`|L{H#D12K*=xw)h980FMyd zKe5%xIF}4K8sHBVRegwR&Uozu7~oZ%Pc6>@3;{<*vJ4&A5yhPb2o(?Dp*R;0%IBIpqz)XKO!2 z_4%VTxPCscQ)jL1b3fs)^CYP1YI47Q_%QMr`@F-mw$L@i@Vl5p1K+_cA4xz-{v;(Q zRLrrxUP}V?uEVuT*L@yC@CHrVLe~?z(slUA)R@uza|E@z4xg2V57~OtJ3!U};e!&Y z>hnaecO5>hs=i1|DpA+r+qE<1I((~kcDfE9(#|eds2*}vU!qlzZdZt=TvfMFcYv+d znhIFZzxPr!2-W0FRW)5wpKBaixN+bqX;rH<%R|G%G!Lm-MYb=;?5S!sx%`+tRjnac zbzsM&ta()N9I&pIqhCwW2Ln+1L{d8xfY$6<9Dvg7S`vWH>^h=$oND{Jw~*F)bP;r# zK~hu$wXz6QPo8O zb;~59s+))e+V?|NUWaXZZp3juqql>WiSoBsZP;wh*+9D<^w~g%9_HCVRF48|Af{&@ zHqfbuaW>GU$8R>!tp{#45Z6OB8#qnL@XQ7_=y911B$SNBY@kQac5I+m1@euMR5kfP zO4a5Ar>nYrAg$)-0~xg-ALvsH^MQU9%m)V4qI_VZIxHX9qz=yqHmguRuthD-2b$E9 ze4tq!kq@+}`h1{OEzJj3sc=59S{<1WtWgd5K$|)$A6To7&IcORvV0&N!z8R%Ezd_| z$fi_G9g~l?V|O=$Ezg)bHlNWKX;&-qA(2~|5Ax!hIxZiK(E+85IzAtzacMi&BRAlH z+6nnA9tj&>V?K{n#3_ev)s)Y`o_v3%n;6acj7+R2P78*;swJO+-TX`+4h?q4RBJv5 zvun(5R^@{o$)28wTAdH##9_ztIoCR-a-ib&-WE!P3rz4tXVx!fTif@ zqF!Wquz&|RnZQy4%<@nHD;2?#g?hLEjrV3SSXGY{z}+}KqkdQbrXpRj{*-#O0FGkv zf%7zv6~I{1SC1E96atosdesvJ44JI`r~u`;){_Mw`~PtP2(_LnfO`9T$POKtTBp@d z3YZ&GIGISNHr3O`oF1I6jHeRVb}PZ7<#6@WVn!+f{Ab0u%=n)zW;Chiios^}^J1_? z{h}CbRnHfLtJE)x!PV;jiorGNSH)nPdZ8Fxt6nSy8`Vq2psu{XF5qxWl51yPE?`Ge zDI5cqbH=X}@KVW*ST6ZZ0gBAiZQySUIGs%`IIUh#N1IyJ?~1Th>i0$1YV}$Xwnn{P zgte(Z6k%)C9}BVOM)jv6tVz95gf*)_7hx^xFGX0Zdb0qFZHjgDqwf8+0Pl_^QtEF7 zAg|s1y#UOh@?sC`twNaA68}*EMra*M{j&hYq3NXhR{;pE)V~X{WNNc|y8ukl0Xy|h z0osYxWc8l{u!mCmZUH!uO!W6qtE3l2?RHog+*s_BskzNU`H{}&qGE;=tVpJ{u~A)I zz}6?m=|p@a(WEZ`T$UAcB{JlzXiSupB2e3WC>3A9yRT>@RDt|@`8Rv#~cu2G*T zfwrknmO$4keMZXGH$rz0BIqGMRUnR|;_2Aw>eB@1~;K_-CGPxe|ujE zMl9Wdk&L>(n8iDD4;15FSYoBkjt7fbksg#;Dk|!sVrH~Gk>fvH%r}dxw4?P%F&o~U z5zM2JTEfQH;hmbsz=mN5veRNYBvDkb1Ht4>x7#n$V9+ zGG!e5R7oD4QTa(pj(r5>>5}Z+NVg_kUjI-y=DL^IuSY*M{g2%~3EFBO7a z{c-i{0x-?NzFde(u&)%t6zp#bK??S_1t1-aQu}0M$8KIC{ZR}=*FU7&W&w#q1 z6bA(`r7kSRN#PK*x~LR~M_v~faC&0VIQmN-K3-D5+qiL~y0if6!Hqd}SpkRw-_f7o zzV7luR^JqXmT)>EQ3}!H=!_&i86mxju`jKLs+G2HOF^=7MY^g=nM~hi(sr|(` z?n`14_G@hZn$!v`GA<-W% z;BIJ-;s#-VPhYaD3-=K}aS%2~`^kea5$UxBtk`KZFZfgenn}cBDfQ_B6jQh+bzL#o ztgbHvso17twDqk%Q;OG#`GCoj&x!yh@^mwgSAOXnhU~CrhKF#}6i4_D`IL*+#`%iT zhU^~34n6K-tSeX3b*Sp<6TEA%bdDu|k*{u|^<)5hcBty++u*inXj?zz!HvuemO50O+jTF| zBrkr}xahvulJdHkYegH5c_k)y;WFl|s_S%-TFSo=q11J;H;d%ru1ucXX->HfTJDI! z1Z_DF(qyFz6}!AH>be5n>OJ^bI;ZLq9NW^<=dgXo(e=3gLeY8h{nhnyY~ew)mQhtb z-~T)K571@RCN;l`tS3~nntuox)?!|Zntv!!WlXiI`PJmDTvd@R{|P5=F5`qKhdMuS z6Clf~T#G$u;(FtVYyN5M+(_f|9#ymdCTQnPXzHpvK!v+E_C^N>l~r>~241-|)!agv z4@u&wnp+0Ju&g!s4R=R7Sonu~ZQ∓b@1d`Qe9IHp{YDtLvj#2m5&H4%^35#)lD5 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