// ensure the given spritesheet is loaded static void Sprites::LoadSheetIfNeeded(int sheetno) { if (!spritesheet[sheetno]) { char pbm_name[MAXPATHLEN]; #if 1 char *s = sheetfiles.StringAt(sheetno); if (!strncmp(s, "..", 2)) { sprintf(pbm_name, "%s", s + 2); } else { sprintf(pbm_name, "%s/%s", data_dir, s); } #else sprintf(pbm_name, "%s/%s", data_dir, sheetfiles.StringAt(sheetno)); #endif spritesheet[sheetno] = new NXSurface; spritesheet[sheetno]->LoadImage(pbm_name, true); // fix the blue dash in the middle of the starpoof effect on that one frame, // I'm pretty sure this is a glitch. if (!settings->emulate_bugs) { if (sheetno == 3) // Caret.pbm spritesheet[sheetno]->FillRect(40, 58, 41, 58, 0, 0, 0); } } }
// ensure the given spritesheet is loaded static void Sprites::LoadSheetIfNeeded(int sheetno) { if (!spritesheet[sheetno]) { char pbm_name[1024]; retro_create_path_string(pbm_name, sizeof(pbm_name), data_dir, sheetfiles.StringAt(sheetno)); NX_LOG("LoadSheetIfNeeded: %s\n", pbm_name); #ifdef _WIN32 for (unsigned i = 0; i < sizeof(pbm_name); i++) { if (pbm_name[i] == '/') pbm_name[i] = '\\'; } #endif spritesheet[sheetno] = new NXSurface; spritesheet[sheetno]->LoadImage(pbm_name, true); // fix the blue dash in the middle of the starpoof effect on that one frame, // I'm pretty sure this is a glitch. if (!settings->emulate_bugs) { if (sheetno == 3) // Caret.pbm spritesheet[sheetno]->FillRect(40, 58, 41, 58, 0, 0, 0); } } }