Lines 1239-1244
Link Here
|
1239 |
|
1239 |
|
1240 |
char com_cachedir[MAX_OSPATH]; |
1240 |
char com_cachedir[MAX_OSPATH]; |
1241 |
char com_gamedir[MAX_OSPATH]; |
1241 |
char com_gamedir[MAX_OSPATH]; |
|
|
1242 |
char com_basedir[MAX_OSPATH]; |
1242 |
|
1243 |
|
1243 |
typedef struct searchpath_s |
1244 |
typedef struct searchpath_s |
1244 |
{ |
1245 |
{ |
Lines 1686-1705
Link Here
|
1686 |
then loads and adds pak1.pak pak2.pak ... |
1687 |
then loads and adds pak1.pak pak2.pak ... |
1687 |
================ |
1688 |
================ |
1688 |
*/ |
1689 |
*/ |
1689 |
void COM_AddGameDirectory (char *dir) |
1690 |
static void |
|
|
1691 |
COM_AddGameDirectory (char *base, char *dir) |
1690 |
{ |
1692 |
{ |
1691 |
int i; |
1693 |
int i; |
1692 |
searchpath_t *search; |
1694 |
searchpath_t *search; |
1693 |
pack_t *pak; |
1695 |
pack_t *pak; |
1694 |
char pakfile[MAX_OSPATH]; |
1696 |
char pakfile[MAX_OSPATH]; |
1695 |
|
1697 |
|
1696 |
strcpy (com_gamedir, dir); |
1698 |
if (!base) |
|
|
1699 |
return; |
1700 |
|
1701 |
strcpy(com_gamedir, va("%s/%s", base, dir)); |
1702 |
|
1703 |
// strcpy (com_gamedir, dir); |
1697 |
|
1704 |
|
1698 |
// |
1705 |
// |
1699 |
// add the directory to the search path |
1706 |
// add the directory to the search path |
1700 |
// |
1707 |
// |
1701 |
search = Hunk_Alloc (sizeof(searchpath_t)); |
1708 |
search = Hunk_Alloc (sizeof(searchpath_t)); |
1702 |
strcpy (search->filename, dir); |
1709 |
strcpy (search->filename, com_gamedir); |
1703 |
search->next = com_searchpaths; |
1710 |
search->next = com_searchpaths; |
1704 |
com_searchpaths = search; |
1711 |
com_searchpaths = search; |
1705 |
|
1712 |
|
Lines 1708-1714
Link Here
|
1708 |
// |
1715 |
// |
1709 |
for (i=0 ; ; i++) |
1716 |
for (i=0 ; ; i++) |
1710 |
{ |
1717 |
{ |
1711 |
sprintf (pakfile, "%s/pak%i.pak", dir, i); |
1718 |
sprintf (pakfile, "%s/pak%i.pak", com_gamedir, i); |
1712 |
pak = COM_LoadPackFile (pakfile); |
1719 |
pak = COM_LoadPackFile (pakfile); |
1713 |
if (!pak) |
1720 |
if (!pak) |
1714 |
break; |
1721 |
break; |
Lines 1731-1756
Link Here
|
1731 |
*/ |
1738 |
*/ |
1732 |
void COM_InitFilesystem (void) |
1739 |
void COM_InitFilesystem (void) |
1733 |
{ |
1740 |
{ |
|
|
1741 |
char *home; |
1734 |
int i, j; |
1742 |
int i, j; |
1735 |
char basedir[MAX_OSPATH]; |
1743 |
// char basedir[MAX_OSPATH]; |
1736 |
searchpath_t *search; |
1744 |
searchpath_t *search; |
1737 |
|
1745 |
|
|
|
1746 |
home = getenv("HOME"); |
1747 |
|
1738 |
// |
1748 |
// |
1739 |
// -basedir <path> |
1749 |
// -basedir <path> |
1740 |
// Overrides the system supplied base directory (under GAMENAME) |
1750 |
// Overrides the system supplied base directory (under GAMENAME) |
1741 |
// |
1751 |
// |
1742 |
i = COM_CheckParm ("-basedir"); |
1752 |
i = COM_CheckParm ("-basedir"); |
1743 |
if (i && i < com_argc-1) |
1753 |
if (i && i < com_argc-1) |
1744 |
strcpy (basedir, com_argv[i+1]); |
1754 |
strcpy (com_basedir, com_argv[i+1]); |
1745 |
else |
1755 |
else |
1746 |
strcpy (basedir, host_parms.basedir); |
1756 |
strcpy (com_basedir, GENTOO_DATADIR); |
|
|
1757 |
// strcpy (com_basedir, host_parms.basedir); |
1747 |
|
1758 |
|
1748 |
j = strlen (basedir); |
1759 |
j = strlen (com_basedir); |
1749 |
|
1760 |
|
1750 |
if (j > 0) |
1761 |
if (j > 0) |
1751 |
{ |
1762 |
{ |
1752 |
if ((basedir[j-1] == '\\') || (basedir[j-1] == '/')) |
1763 |
if ((com_basedir[j-1] == '\\') || (com_basedir[j-1] == '/')) |
1753 |
basedir[j-1] = 0; |
1764 |
com_basedir[j-1] = 0; |
1754 |
} |
1765 |
} |
1755 |
|
1766 |
|
1756 |
// |
1767 |
// |
Lines 1774-1785
Link Here
|
1774 |
// |
1785 |
// |
1775 |
// start up with GAMENAME by default (id1) |
1786 |
// start up with GAMENAME by default (id1) |
1776 |
// |
1787 |
// |
1777 |
COM_AddGameDirectory (va("%s/"GAMENAME, basedir) ); |
1788 |
COM_AddGameDirectory(com_basedir, GAMENAME); |
|
|
1789 |
COM_AddGameDirectory(home, ".nprquake-sdl/" GAMENAME); |
1778 |
|
1790 |
|
1779 |
if (COM_CheckParm ("-rogue")) |
1791 |
if (COM_CheckParm ("-rogue")) { |
1780 |
COM_AddGameDirectory (va("%s/rogue", basedir) ); |
1792 |
COM_AddGameDirectory(com_basedir, "rogue"); |
1781 |
if (COM_CheckParm ("-hipnotic")) |
1793 |
COM_AddGameDirectory(home, ".nprquake-sdl/rogue"); |
1782 |
COM_AddGameDirectory (va("%s/hipnotic", basedir) ); |
1794 |
} |
|
|
1795 |
if (COM_CheckParm ("-hipnotic")) { |
1796 |
COM_AddGameDirectory(com_basedir, "hipnotic"); |
1797 |
COM_AddGameDirectory(home, ".nprquake-sdl/hipnotic"); |
1798 |
} |
1783 |
|
1799 |
|
1784 |
// |
1800 |
// |
1785 |
// -game <gamedir> |
1801 |
// -game <gamedir> |
Lines 1789-1797
Link Here
|
1789 |
if (i && i < com_argc-1) |
1805 |
if (i && i < com_argc-1) |
1790 |
{ |
1806 |
{ |
1791 |
com_modified = true; |
1807 |
com_modified = true; |
1792 |
COM_AddGameDirectory (va("%s/%s", basedir, com_argv[i+1])); |
1808 |
COM_AddGameDirectory(com_basedir, com_argv[i + 1]); |
|
|
1809 |
COM_AddGameDirectory(home, va(".nprquake-sdl/%s", com_argv[i + 1])); |
1793 |
} |
1810 |
} |
1794 |
|
1811 |
|
|
|
1812 |
/* If home is available, create the game directory */ |
1813 |
if (home) { |
1814 |
COM_CreatePath(com_gamedir); |
1815 |
Sys_mkdir(com_gamedir); |
1816 |
} |
1817 |
|
1795 |
// |
1818 |
// |
1796 |
// -path <dir or packfile> [<dir or packfile>] ... |
1819 |
// -path <dir or packfile> [<dir or packfile>] ... |
1797 |
// Fully specifies the exact serach path, overriding the generated one |
1820 |
// Fully specifies the exact serach path, overriding the generated one |