Beispiel #1
0
/*++
 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);
}
Beispiel #2
0
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");
}