misc/libphyslayer/hwpacksmounter.c
author Wuzzy <Wuzzy2@mail.ru>
Mon, 12 Mar 2018 19:39:00 +0100
changeset 13173 4d1cf0d76eb7
parent 8978 e6ef8fe314bd
child 13393 ae5d6448c5be
permissions -rw-r--r--
Remove rubber duck from BRW, RW and most weapon schemes for now The duck is not liked by players. Rubber duck needs a lot of rework. Before that happens, better remove it from game modes for now. Players can always modify the weapon schemes, of course.

#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);
            }
        }
}