/*++ Load all the loaded sprites. --*/ VOID PAL_LoadBattleSprites(void) { int i, l, x, y, s; FILE *fp; PAL_FreeBattleSprites(); fp = UTIL_OpenRequiredFile("abc.mkf"); // // Load battle sprites for players // for (i = 0; i <= gpGlobals->wMaxPartyMemberIndex; i++) { s = PAL_GetPlayerBattleSprite(gpGlobals->rgParty[i].wPlayerRole); l = PAL_MKFGetDecompressedSize(s, gpGlobals->f.fpF); if (l <= 0) { continue; } g_Battle.rgPlayer[i].lpSprite = UTIL_calloc(l, 1); PAL_MKFDecompressChunk(g_Battle.rgPlayer[i].lpSprite, l, s, gpGlobals->f.fpF); // // Set the default position for this player // x = g_rgPlayerPos[gpGlobals->wMaxPartyMemberIndex][i][0]; y = g_rgPlayerPos[gpGlobals->wMaxPartyMemberIndex][i][1]; g_Battle.rgPlayer[i].posOriginal = PAL_XY(x, y); g_Battle.rgPlayer[i].pos = PAL_XY(x, y); } // // Load battle sprites for enemies // for (i = 0; i < MAX_ENEMIES_IN_TEAM; i++) { if (g_Battle.rgEnemy[i].wObjectID == 0) { continue; } l = PAL_MKFGetDecompressedSize( gpGlobals->g.rgObject[g_Battle.rgEnemy[i].wObjectID].enemy.wEnemyID, fp); if (l <= 0) { continue; } g_Battle.rgEnemy[i].lpSprite = UTIL_calloc(l, 1); PAL_MKFDecompressChunk(g_Battle.rgEnemy[i].lpSprite, l, gpGlobals->g.rgObject[g_Battle.rgEnemy[i].wObjectID].enemy.wEnemyID, fp); // // Set the default position for this enemy // x = gpGlobals->g.EnemyPos.pos[i][g_Battle.wMaxEnemyIndex].x; y = gpGlobals->g.EnemyPos.pos[i][g_Battle.wMaxEnemyIndex].y; y += g_Battle.rgEnemy[i].e.wYPosOffset; g_Battle.rgEnemy[i].posOriginal = PAL_XY(x, y); g_Battle.rgEnemy[i].pos = PAL_XY(x, y); } fclose(fp); }
VOID PAL_LoadBattleSprites( VOID ) /*++ Purpose: Load all the loaded sprites. Parameters: None. Return value: None. --*/ { int i, l, x, y, s; FILE *fp; UTIL_WriteLog(LOG_DEBUG, "[0x%08x][%s][%s] - %s", (long)PAL_LoadBattleSprites, "PAL_LoadBattleSprites", __FILE__, "start"); PAL_FreeBattleSprites(); fp = UTIL_OpenRequiredFile("abc.mkf"); // // Load battle sprites for players // for (i = 0; i <= gpGlobals->wMaxPartyMemberIndex; i++) { s = PAL_GetPlayerBattleSprite(gpGlobals->rgParty[i].wPlayerRole); l = PAL_MKFGetDecompressedSize(s, gpGlobals->f.fpF); if (l <= 0) { continue; } g_Battle.rgPlayer[i].lpSprite = UTIL_calloc(l, 1); PAL_MKFDecompressChunk(g_Battle.rgPlayer[i].lpSprite, l, s, gpGlobals->f.fpF); // // Set the default position for this player // x = g_rgPlayerPos[gpGlobals->wMaxPartyMemberIndex][i][0]; y = g_rgPlayerPos[gpGlobals->wMaxPartyMemberIndex][i][1]; g_Battle.rgPlayer[i].posOriginal = PAL_XY(x, y); g_Battle.rgPlayer[i].pos = PAL_XY(x, y); } // // Load battle sprites for enemies // for (i = 0; i < MAX_ENEMIES_IN_TEAM; i++) { if (g_Battle.rgEnemy[i].wObjectID == 0) { continue; } l = PAL_MKFGetDecompressedSize( gpGlobals->g.rgObject[g_Battle.rgEnemy[i].wObjectID].enemy.wEnemyID, fp); if (l <= 0) { continue; } g_Battle.rgEnemy[i].lpSprite = UTIL_calloc(l, 1); PAL_MKFDecompressChunk(g_Battle.rgEnemy[i].lpSprite, l, gpGlobals->g.rgObject[g_Battle.rgEnemy[i].wObjectID].enemy.wEnemyID, fp); // // Set the default position for this enemy // x = gpGlobals->g.EnemyPos.pos[i][g_Battle.wMaxEnemyIndex].x; y = gpGlobals->g.EnemyPos.pos[i][g_Battle.wMaxEnemyIndex].y; y += g_Battle.rgEnemy[i].e.wYPosOffset; g_Battle.rgEnemy[i].posOriginal = PAL_XY(x, y); g_Battle.rgEnemy[i].pos = PAL_XY(x, y); } fclose(fp); UTIL_WriteLog(LOG_DEBUG, "[0x%08x][%s][%s] - %s", (long)PAL_LoadBattleSprites, "PAL_LoadBattleSprites", __FILE__, "end"); }