misc/libphyslayer/hwpacksmounter.c
author Wuzzy <Wuzzy2@mail.ru>
Thu, 26 Oct 2017 22:49:39 +0200
changeset 12779 1f8a62d1609d
parent 8978 e6ef8fe314bd
child 13393 ae5d6448c5be
permissions -rw-r--r--
ACF5: Fix final animation being stuck when the cyborg's way to the right is blocked Fixed with the new maxMoveTime parameter in AnimMove. If cyborg didn't reach its destination in 7000ms, the move anim is skipped and the sequence just continues.

#include <string.h>
#include <stdio.h>
#include <stdlib.h>

#include "hwpacksmounter.h"

PHYSFS_DECL void hedgewarsMountPackages()
{
    char ** filesList = PHYSFS_enumerateFiles("/");
    char **i;

    for (i = filesList; *i != NULL; i++)
    {
        char * fileName = *i;
        int fileNameLength = strlen(fileName);
        if (fileNameLength > 4)
            if (strcmp(fileName + fileNameLength - 4, ".hwp") == 0)
            {
                const char * dir = PHYSFS_getRealDir(fileName);
                if(dir)
                {
                    char * fullPath = (char *)malloc(strlen(dir) + fileNameLength + 2);
                    strcpy(fullPath, dir);
                    strcat(fullPath, "/");
                    strcat(fullPath, fileName);

                    PHYSFS_mount(fullPath, NULL, 0);

                    free(fullPath);
                }
            }
    }

    PHYSFS_freeList(filesList);
}

PHYSFS_DECL void hedgewarsMountPackage(char * fileName)
{
    int fileNameLength = strlen(fileName);
    if (fileNameLength > 4)
        if (strcmp(fileName + fileNameLength - 4, ".hwp") == 0)
        {
            const char * dir = PHYSFS_getRealDir(fileName);
            if(dir)
            {
                char * fullPath = (char *)malloc(strlen(dir) + fileNameLength + 2);
                strcpy(fullPath, dir);
                strcat(fullPath, "/");
                strcat(fullPath, fileName);

                PHYSFS_mount(fullPath, NULL, 0);

                free(fullPath);
            }
        }
}