- fix compilation issue on psp

- attempt at reducing loading times on the PSP: I merged a few graphics files together, removed some unused calls from the initialization functions, and moved some other ones to have a more lazy approach. The PSP version remains fairly slow in some parts (especially loading, but also entering the shop, or starting a new game), so I will try to reduce file access as much as possible in the days to come. Not a release blocker IMO though, but I4d sure love if it were faster.
- uppercased "Track1.mp3" to be in line with the actual filename. Most likely this had been broken forever on case-sensitive OSes
- I removed costly calls from the textscroller. I believe it wasn't very useful in its previous state. Now it's only "advertising" for unlockable stuff, which I think is ok (and allows to refresh it every time the menu is loaded)
- As a counterpart, added a "% complete" progress bar in the menu, something I wanted to add a while ago.
This commit is contained in:
wagic.the.homebrew
2011-12-11 13:48:24 +00:00
parent f8f5c24304
commit c9fd53808f
17 changed files with 135 additions and 107 deletions

View File

@@ -336,26 +336,34 @@ AIPlayer * AIPlayerFactory::createAIPlayerTest(GameObserver *observer, MTGAllCar
int AIPlayer::getTotalAIDecks()
{
if (totalAIDecks != -1)
return totalAIDecks;
totalAIDecks = 0;
bool found = true;
while (found)
{
found = false;
char buffer[512];
sprintf(buffer, "ai/baka/deck%i.txt", totalAIDecks + 1);
if (JFileSystem::GetInstance()->FileExists(buffer))
{
found = true;
totalAIDecks++;
}
}
if (totalAIDecks == -1)
totalAIDecks = countTotalDecks(0,0,1);
return totalAIDecks;
}
int AIPlayer::countTotalDecks(int lower, int higher, int current) {
char buffer[512];
sprintf(buffer, "ai/baka/deck%i.txt", current);
if (JFileSystem::GetInstance()->FileExists(buffer))
{
if (higher == current + 1)
return current;
int newlower = current;
int newcurrent = higher ? (higher + newlower)/2 : current * 2;
return countTotalDecks(newlower, higher, newcurrent);
} else {
if (!lower)
return 0;
if (lower == current - 1)
return lower;
int newhigher = current;
int newcurrent = (lower + newhigher) / 2;
return countTotalDecks(lower, newhigher, newcurrent);
}
}
void AIPlayer::invalidateTotalAIDecks()
{
totalAIDecks = -1;