author | nemo |
Thu, 17 May 2018 20:04:39 -0400 | |
changeset 13394 | 7b4726ef2308 |
parent 12122 | cc2d2f910d5a |
child 12855 | 1b2b84315d27 |
child 13512 | 36f3f77e9b1b |
permissions | -rw-r--r-- |
10129
cd2a64a1f4aa
- Pas2C: make use of 'external' function decorator
unc0rr
parents:
10127
diff
changeset
|
1 |
{$INCLUDE "options.inc"} |
cd2a64a1f4aa
- Pas2C: make use of 'external' function decorator
unc0rr
parents:
10127
diff
changeset
|
2 |
|
7959 | 3 |
unit uPhysFSLayer; |
8063 | 4 |
|
7959 | 5 |
interface |
8077 | 6 |
uses SDLh, LuaPas; |
7959 | 7 |
|
9204 | 8 |
const PhysfsLibName = {$IFDEF PHYSFS_INTERNAL}'libhwphysfs'{$ELSE}'libphysfs'{$ENDIF}; |
8540
cf808329bb6f
this should hijack the linker name and always pick the bundled physfs when another version is already prsent
koda
parents:
8533
diff
changeset
|
9 |
const PhyslayerLibName = 'libphyslayer'; |
8073 | 10 |
|
8540
cf808329bb6f
this should hijack the linker name and always pick the bundled physfs when another version is already prsent
koda
parents:
8533
diff
changeset
|
11 |
{$IFNDEF WIN32} |
cf808329bb6f
this should hijack the linker name and always pick the bundled physfs when another version is already prsent
koda
parents:
8533
diff
changeset
|
12 |
{$linklib physfs} |
cf808329bb6f
this should hijack the linker name and always pick the bundled physfs when another version is already prsent
koda
parents:
8533
diff
changeset
|
13 |
{$linklib physlayer} |
8533
2d7703d6bc22
this should make physfs happy to link on windows too, forcing every function in its proper dll and skipping linklib
koda
parents:
8528
diff
changeset
|
14 |
{$ENDIF} |
2d7703d6bc22
this should make physfs happy to link on windows too, forcing every function in its proper dll and skipping linklib
koda
parents:
8528
diff
changeset
|
15 |
|
11631
b3db79b56f28
Pass paths to initModule of uPhysFSLayer (as in 4be6cd55f1cf from qmlfrontend branch)
unc0rr
parents:
11155
diff
changeset
|
16 |
procedure initModule(localPrefix, userPrefix: PChar); |
7959 | 17 |
procedure freeModule; |
18 |
||
8028 | 19 |
type PFSFile = pointer; |
20 |
||
8025 | 21 |
function rwopsOpenRead(fname: shortstring): PSDL_RWops; |
22 |
function rwopsOpenWrite(fname: shortstring): PSDL_RWops; |
|
8022 | 23 |
|
8028 | 24 |
function pfsOpenRead(fname: shortstring): PFSFile; |
11632 | 25 |
function pfsOpenWrite(fname: shortstring): PFSFile; |
26 |
function pfsFlush(f: PFSFile): boolean; |
|
8028 | 27 |
function pfsClose(f: PFSFile): boolean; |
28 |
||
29 |
procedure pfsReadLn(f: PFSFile; var s: shortstring); |
|
10122
cefede760264
Revert 88929358d2e1 in favor of ansistrings implementation in pas2c
unc0rr
parents:
10101
diff
changeset
|
30 |
procedure pfsReadLnA(f: PFSFile; var s: ansistring); |
11632 | 31 |
procedure pfsWriteLn(f: PFSFile; s: shortstring); |
8031 | 32 |
function pfsBlockRead(f: PFSFile; buf: pointer; size: Int64): Int64; |
33 |
function pfsEOF(f: PFSFile): boolean; |
|
34 |
||
35 |
function pfsExists(fname: shortstring): boolean; |
|
11632 | 36 |
function pfsMakeDir(path: shortstring): boolean; |
8028 | 37 |
|
8533
2d7703d6bc22
this should make physfs happy to link on windows too, forcing every function in its proper dll and skipping linklib
koda
parents:
8528
diff
changeset
|
38 |
function physfsReader(L: Plua_State; f: PFSFile; sz: Psize_t) : PChar; cdecl; external PhyslayerLibName; |
2d7703d6bc22
this should make physfs happy to link on windows too, forcing every function in its proper dll and skipping linklib
koda
parents:
8528
diff
changeset
|
39 |
procedure physfsReaderSetBuffer(buf: pointer); cdecl; external PhyslayerLibName; |
8978
e6ef8fe314bd
suggestion of unc0rr's to fix issue w/ random maps in campaign. load sidecar packages in physfs for lua. should be useful also for lua that does custom layouts
nemo
parents:
8927
diff
changeset
|
40 |
procedure hedgewarsMountPackage(filename: PChar); cdecl; external PhyslayerLibName; |
8077 | 41 |
|
7959 | 42 |
implementation |
11832
f2ab65d97242
- In case of HWLIBRARY we need reference to sysutils for GetCurrentDir()
antonc27 <antonc27@mail.ru>
parents:
11826
diff
changeset
|
43 |
uses uConsts, uUtils, uVariables{$IFNDEF PAS2C}{$IFDEF HWLIBRARY}, sysutils{$ENDIF}{$ELSE}, physfs{$ENDIF}; |
7959 | 44 |
|
8839 | 45 |
function PHYSFSRWOPS_openRead(fname: PChar): PSDL_RWops; cdecl; external PhyslayerLibName; |
8533
2d7703d6bc22
this should make physfs happy to link on windows too, forcing every function in its proper dll and skipping linklib
koda
parents:
8528
diff
changeset
|
46 |
function PHYSFSRWOPS_openWrite(fname: PChar): PSDL_RWops; cdecl; external PhyslayerLibName; |
10129
cd2a64a1f4aa
- Pas2C: make use of 'external' function decorator
unc0rr
parents:
10127
diff
changeset
|
47 |
procedure hedgewarsMountPackages(); cdecl; external PhyslayerLibName; |
cd2a64a1f4aa
- Pas2C: make use of 'external' function decorator
unc0rr
parents:
10127
diff
changeset
|
48 |
{$IFNDEF PAS2C} |
cd2a64a1f4aa
- Pas2C: make use of 'external' function decorator
unc0rr
parents:
10127
diff
changeset
|
49 |
function PHYSFS_init(argv0: PChar): LongInt; cdecl; external PhysfsLibName; |
cd2a64a1f4aa
- Pas2C: make use of 'external' function decorator
unc0rr
parents:
10127
diff
changeset
|
50 |
function PHYSFS_deinit(): LongInt; cdecl; external PhysfsLibName; |
9993
76ad55807c24
allow engine to use symlinked fonts. disallow packages to "overwrite" fonts
sheepluva
parents:
9988
diff
changeset
|
51 |
function PHYSFS_mount(newDir, mountPoint: PChar; appendToPath: LongBool) : LongBool; cdecl; external PhysfsLibName; |
8073 | 52 |
function PHYSFS_openRead(fname: PChar): PFSFile; cdecl; external PhysfsLibName; |
11632 | 53 |
function PHYSFS_openWrite(fname: PChar): PFSFile; cdecl; external PhysfsLibName; |
54 |
function PHYSFS_setWriteDir(path: PChar): LongBool; cdecl; external PhysfsLibName; |
|
8073 | 55 |
function PHYSFS_eof(f: PFSFile): LongBool; cdecl; external PhysfsLibName; |
56 |
function PHYSFS_readBytes(f: PFSFile; buffer: pointer; len: Int64): Int64; cdecl; external PhysfsLibName; |
|
11632 | 57 |
function PHYSFS_writeBytes(f: PFSFile; buffer: pointer; len: Int64): Int64; cdecl; external PhysfsLibName; |
58 |
function PHYSFS_seek(f: PFSFile; pos: QWord): LongBool; cdecl; external PhysfsLibName; |
|
59 |
function PHYSFS_flush(f: PFSFile): LongBool; cdecl; external PhysfsLibName; |
|
8073 | 60 |
function PHYSFS_close(f: PFSFile): LongBool; cdecl; external PhysfsLibName; |
12122
cc2d2f910d5a
Add a buffer for files opened with physfs for reading, fixes slow engine start
unc0rr
parents:
11832
diff
changeset
|
61 |
function PHYSFS_setBuffer(f: PFSFile; pos: QWord): LongBool; cdecl; external PhysfsLibName; |
8073 | 62 |
function PHYSFS_exists(fname: PChar): LongBool; cdecl; external PhysfsLibName; |
11632 | 63 |
function PHYSFS_mkdir(path: PChar): LongBool; cdecl; external PhysfsLibName; |
9993
76ad55807c24
allow engine to use symlinked fonts. disallow packages to "overwrite" fonts
sheepluva
parents:
9988
diff
changeset
|
64 |
function PHYSFS_getLastError(): PChar; cdecl; external PhysfsLibName; |
11632 | 65 |
function PHYSFS_enumerateFiles(dir: PChar): PPChar; cdecl; external PhysfsLibName; |
66 |
procedure PHYSFS_freeList(list: PPChar); cdecl; external PhysfsLibName; |
|
10129
cd2a64a1f4aa
- Pas2C: make use of 'external' function decorator
unc0rr
parents:
10127
diff
changeset
|
67 |
{$ELSE} |
cd2a64a1f4aa
- Pas2C: make use of 'external' function decorator
unc0rr
parents:
10127
diff
changeset
|
68 |
function PHYSFS_readBytes(f: PFSFile; buffer: pointer; len: Int64): Int64; |
cd2a64a1f4aa
- Pas2C: make use of 'external' function decorator
unc0rr
parents:
10127
diff
changeset
|
69 |
begin |
cd2a64a1f4aa
- Pas2C: make use of 'external' function decorator
unc0rr
parents:
10127
diff
changeset
|
70 |
PHYSFS_readBytes:= PHYSFS_read(f, buffer, 1, len); |
cd2a64a1f4aa
- Pas2C: make use of 'external' function decorator
unc0rr
parents:
10127
diff
changeset
|
71 |
end; |
10078 | 72 |
{$ENDIF} |
8052 | 73 |
|
8025 | 74 |
function rwopsOpenRead(fname: shortstring): PSDL_RWops; |
75 |
begin |
|
76 |
exit(PHYSFSRWOPS_openRead(Str2PChar(fname))); |
|
77 |
end; |
|
78 |
||
79 |
function rwopsOpenWrite(fname: shortstring): PSDL_RWops; |
|
7959 | 80 |
begin |
8025 | 81 |
exit(PHYSFSRWOPS_openWrite(Str2PChar(fname))); |
82 |
end; |
|
8022 | 83 |
|
8028 | 84 |
function pfsOpenRead(fname: shortstring): PFSFile; |
12122
cc2d2f910d5a
Add a buffer for files opened with physfs for reading, fixes slow engine start
unc0rr
parents:
11832
diff
changeset
|
85 |
var f: PFSFile; |
8028 | 86 |
begin |
12122
cc2d2f910d5a
Add a buffer for files opened with physfs for reading, fixes slow engine start
unc0rr
parents:
11832
diff
changeset
|
87 |
f:= PHYSFS_openRead(Str2PChar(fname)); |
cc2d2f910d5a
Add a buffer for files opened with physfs for reading, fixes slow engine start
unc0rr
parents:
11832
diff
changeset
|
88 |
if f <> nil then |
cc2d2f910d5a
Add a buffer for files opened with physfs for reading, fixes slow engine start
unc0rr
parents:
11832
diff
changeset
|
89 |
PHYSFS_setBuffer(f, 4096); |
cc2d2f910d5a
Add a buffer for files opened with physfs for reading, fixes slow engine start
unc0rr
parents:
11832
diff
changeset
|
90 |
exit(f); |
8028 | 91 |
end; |
92 |
||
11632 | 93 |
function pfsOpenWrite(fname: shortstring): PFSFile; |
94 |
begin |
|
95 |
exit(PHYSFS_openWrite(Str2PChar(fname))); |
|
96 |
end; |
|
97 |
||
8028 | 98 |
function pfsEOF(f: PFSFile): boolean; |
99 |
begin |
|
100 |
exit(PHYSFS_eof(f)) |
|
101 |
end; |
|
102 |
||
11632 | 103 |
function pfsFlush(f: PFSFile): boolean; |
104 |
begin |
|
105 |
exit(PHYSFS_flush(f)) |
|
106 |
end; |
|
107 |
||
8028 | 108 |
function pfsClose(f: PFSFile): boolean; |
109 |
begin |
|
110 |
exit(PHYSFS_close(f)) |
|
111 |
end; |
|
112 |
||
8031 | 113 |
function pfsExists(fname: shortstring): boolean; |
114 |
begin |
|
115 |
exit(PHYSFS_exists(Str2PChar(fname))) |
|
116 |
end; |
|
117 |
||
11632 | 118 |
function pfsMakeDir(path: shortstring): boolean; |
119 |
begin |
|
120 |
exit(PHYSFS_mkdir(Str2PChar(path))) |
|
121 |
end; |
|
122 |
||
123 |
function pfsEnumerateFiles(dir: shortstring): PPChar; |
|
124 |
begin |
|
125 |
exit(PHYSFS_enumerateFiles(Str2PChar(dir))) |
|
126 |
end; |
|
127 |
||
128 |
procedure pfsFreeList(list: PPChar); |
|
129 |
begin |
|
130 |
PHYSFS_freeList(list) |
|
131 |
end; |
|
8028 | 132 |
|
133 |
procedure pfsReadLn(f: PFSFile; var s: shortstring); |
|
134 |
var c: char; |
|
135 |
begin |
|
136 |
s[0]:= #0; |
|
137 |
||
8034 | 138 |
while (PHYSFS_readBytes(f, @c, 1) = 1) and (c <> #10) do |
8028 | 139 |
if (c <> #13) and (s[0] < #255) then |
140 |
begin |
|
141 |
inc(s[0]); |
|
142 |
s[byte(s[0])]:= c |
|
143 |
end |
|
144 |
end; |
|
145 |
||
10122
cefede760264
Revert 88929358d2e1 in favor of ansistrings implementation in pas2c
unc0rr
parents:
10101
diff
changeset
|
146 |
procedure pfsReadLnA(f: PFSFile; var s: ansistring); |
cefede760264
Revert 88929358d2e1 in favor of ansistrings implementation in pas2c
unc0rr
parents:
10101
diff
changeset
|
147 |
var c: char; |
cefede760264
Revert 88929358d2e1 in favor of ansistrings implementation in pas2c
unc0rr
parents:
10101
diff
changeset
|
148 |
b: shortstring; |
8107 | 149 |
begin |
10122
cefede760264
Revert 88929358d2e1 in favor of ansistrings implementation in pas2c
unc0rr
parents:
10101
diff
changeset
|
150 |
s:= ''; |
cefede760264
Revert 88929358d2e1 in favor of ansistrings implementation in pas2c
unc0rr
parents:
10101
diff
changeset
|
151 |
b[0]:= #0; |
8107 | 152 |
|
10122
cefede760264
Revert 88929358d2e1 in favor of ansistrings implementation in pas2c
unc0rr
parents:
10101
diff
changeset
|
153 |
while (PHYSFS_readBytes(f, @c, 1) = 1) and (c <> #10) do |
cefede760264
Revert 88929358d2e1 in favor of ansistrings implementation in pas2c
unc0rr
parents:
10101
diff
changeset
|
154 |
if (c <> #13) then |
8107 | 155 |
begin |
10122
cefede760264
Revert 88929358d2e1 in favor of ansistrings implementation in pas2c
unc0rr
parents:
10101
diff
changeset
|
156 |
inc(b[0]); |
cefede760264
Revert 88929358d2e1 in favor of ansistrings implementation in pas2c
unc0rr
parents:
10101
diff
changeset
|
157 |
b[byte(b[0])]:= c; |
cefede760264
Revert 88929358d2e1 in favor of ansistrings implementation in pas2c
unc0rr
parents:
10101
diff
changeset
|
158 |
if b[0] = #255 then |
8107 | 159 |
begin |
10123 | 160 |
s:= s + ansistring(b); |
10122
cefede760264
Revert 88929358d2e1 in favor of ansistrings implementation in pas2c
unc0rr
parents:
10101
diff
changeset
|
161 |
b[0]:= #0 |
8107 | 162 |
end |
163 |
end; |
|
10123 | 164 |
|
165 |
s:= s + ansistring(b) |
|
8107 | 166 |
end; |
167 |
||
11632 | 168 |
procedure pfsWriteLn(f: PFSFile; s: shortstring); |
169 |
var c: char; |
|
170 |
begin |
|
171 |
c:= #10; |
|
172 |
PHYSFS_writeBytes(f, @s[1], byte(s[0])); |
|
173 |
PHYSFS_writeBytes(f, @c, 1); |
|
174 |
end; |
|
175 |
||
8031 | 176 |
function pfsBlockRead(f: PFSFile; buf: pointer; size: Int64): Int64; |
177 |
var r: Int64; |
|
178 |
begin |
|
8034 | 179 |
r:= PHYSFS_readBytes(f, buf, size); |
8031 | 180 |
|
181 |
if r <= 0 then |
|
182 |
pfsBlockRead:= 0 |
|
183 |
else |
|
184 |
pfsBlockRead:= r |
|
185 |
end; |
|
186 |
||
11643 | 187 |
procedure pfsMount(path: PChar; mountpoint: PChar); |
9993
76ad55807c24
allow engine to use symlinked fonts. disallow packages to "overwrite" fonts
sheepluva
parents:
9988
diff
changeset
|
188 |
begin |
11644 | 189 |
PHYSFS_mount(path, mountpoint, false) |
9993
76ad55807c24
allow engine to use symlinked fonts. disallow packages to "overwrite" fonts
sheepluva
parents:
9988
diff
changeset
|
190 |
end; |
76ad55807c24
allow engine to use symlinked fonts. disallow packages to "overwrite" fonts
sheepluva
parents:
9988
diff
changeset
|
191 |
|
11643 | 192 |
procedure pfsMountAtRoot(path: PChar); |
9993
76ad55807c24
allow engine to use symlinked fonts. disallow packages to "overwrite" fonts
sheepluva
parents:
9988
diff
changeset
|
193 |
begin |
10129
cd2a64a1f4aa
- Pas2C: make use of 'external' function decorator
unc0rr
parents:
10127
diff
changeset
|
194 |
pfsMount(path, PChar(_S'/')); |
9993
76ad55807c24
allow engine to use symlinked fonts. disallow packages to "overwrite" fonts
sheepluva
parents:
9988
diff
changeset
|
195 |
end; |
76ad55807c24
allow engine to use symlinked fonts. disallow packages to "overwrite" fonts
sheepluva
parents:
9988
diff
changeset
|
196 |
|
11631
b3db79b56f28
Pass paths to initModule of uPhysFSLayer (as in 4be6cd55f1cf from qmlfrontend branch)
unc0rr
parents:
11155
diff
changeset
|
197 |
procedure initModule(localPrefix, userPrefix: PChar); |
8025 | 198 |
var i: LongInt; |
8310
a98c349bc06b
minor adjustments to libengine, moc is correctly created as definitions are set before calling it, params are better numbered and we don't subclass qthread but rather use moveToThread()
koda
parents:
8283
diff
changeset
|
199 |
cPhysfsId: shortstring; |
11139
4f4e97eb52fd
- Load fonts on init if not 'mobile'
antonc27 <antonc27@mail.ru>
parents:
11087
diff
changeset
|
200 |
{$IFNDEF MOBILE} |
9996 | 201 |
fp: PChar; |
11155 | 202 |
{$ENDIF} |
8025 | 203 |
begin |
8310
a98c349bc06b
minor adjustments to libengine, moc is correctly created as definitions are set before calling it, params are better numbered and we don't subclass qthread but rather use moveToThread()
koda
parents:
8283
diff
changeset
|
204 |
{$IFDEF HWLIBRARY} |
a98c349bc06b
minor adjustments to libengine, moc is correctly created as definitions are set before calling it, params are better numbered and we don't subclass qthread but rather use moveToThread()
koda
parents:
8283
diff
changeset
|
205 |
//TODO: http://icculus.org/pipermail/physfs/2011-August/001006.html |
11683
17d102f9515d
Add workaround to force string concatenation in pas2c
koda
parents:
11644
diff
changeset
|
206 |
cPhysfsId:= shortstring(GetCurrentDir()) + {$IFDEF DARWIN}{$IFNDEF IPHONEOS}'/Hedgewars.app/Contents/MacOS/' + {$ENDIF}{$ENDIF} ' hedgewars'; |
8310
a98c349bc06b
minor adjustments to libengine, moc is correctly created as definitions are set before calling it, params are better numbered and we don't subclass qthread but rather use moveToThread()
koda
parents:
8283
diff
changeset
|
207 |
{$ELSE} |
a98c349bc06b
minor adjustments to libengine, moc is correctly created as definitions are set before calling it, params are better numbered and we don't subclass qthread but rather use moveToThread()
koda
parents:
8283
diff
changeset
|
208 |
cPhysfsId:= ParamStr(0); |
a98c349bc06b
minor adjustments to libengine, moc is correctly created as definitions are set before calling it, params are better numbered and we don't subclass qthread but rather use moveToThread()
koda
parents:
8283
diff
changeset
|
209 |
{$ENDIF} |
a98c349bc06b
minor adjustments to libengine, moc is correctly created as definitions are set before calling it, params are better numbered and we don't subclass qthread but rather use moveToThread()
koda
parents:
8283
diff
changeset
|
210 |
|
a98c349bc06b
minor adjustments to libengine, moc is correctly created as definitions are set before calling it, params are better numbered and we don't subclass qthread but rather use moveToThread()
koda
parents:
8283
diff
changeset
|
211 |
i:= PHYSFS_init(Str2PChar(cPhysfsId)); |
11644 | 212 |
//AddFileLog('[PhysFS] init: ' + inttostr(i)); |
11139
4f4e97eb52fd
- Load fonts on init if not 'mobile'
antonc27 <antonc27@mail.ru>
parents:
11087
diff
changeset
|
213 |
|
4f4e97eb52fd
- Load fonts on init if not 'mobile'
antonc27 <antonc27@mail.ru>
parents:
11087
diff
changeset
|
214 |
{$IFNDEF MOBILE} |
9994
8455993a7a1b
* allow telling cmake where to find required fonts in system when user supplies the paths, as suggested by unC0Rr, e.g. -DFONTS_DIRS='/usr/share/fonts/truetype/wqy;/usr/share/fonts/truetype/dejavu'
sheepluva
parents:
9993
diff
changeset
|
215 |
// mount system fonts paths first |
9996 | 216 |
for i:= low(cFontsPaths) to high(cFontsPaths) do |
9994
8455993a7a1b
* allow telling cmake where to find required fonts in system when user supplies the paths, as suggested by unC0Rr, e.g. -DFONTS_DIRS='/usr/share/fonts/truetype/wqy;/usr/share/fonts/truetype/dejavu'
sheepluva
parents:
9993
diff
changeset
|
217 |
begin |
9996 | 218 |
fp := cFontsPaths[i]; |
219 |
if fp <> nil then |
|
11643 | 220 |
pfsMount(fp, _P'/Fonts'); |
9994
8455993a7a1b
* allow telling cmake where to find required fonts in system when user supplies the paths, as suggested by unC0Rr, e.g. -DFONTS_DIRS='/usr/share/fonts/truetype/wqy;/usr/share/fonts/truetype/dejavu'
sheepluva
parents:
9993
diff
changeset
|
221 |
end; |
11155 | 222 |
{$ENDIF} |
11139
4f4e97eb52fd
- Load fonts on init if not 'mobile'
antonc27 <antonc27@mail.ru>
parents:
11087
diff
changeset
|
223 |
|
11631
b3db79b56f28
Pass paths to initModule of uPhysFSLayer (as in 4be6cd55f1cf from qmlfrontend branch)
unc0rr
parents:
11155
diff
changeset
|
224 |
pfsMountAtRoot(localPrefix); |
11632 | 225 |
pfsMount(userPrefix, PChar('/Config')); |
226 |
pfsMakeDir('/Config/Data'); |
|
227 |
pfsMakeDir('/Config/Logs'); |
|
11643 | 228 |
pfsMountAtRoot(Str2PChar(shortstring(userPrefix) + '/Data')); |
11632 | 229 |
PHYSFS_setWriteDir(userPrefix); |
8052 | 230 |
|
231 |
hedgewarsMountPackages; |
|
9531
7fcdedc45589
Unbreak access to Data dir in profile broken in r8b48c27201af
unc0rr
parents:
9466
diff
changeset
|
232 |
|
7fcdedc45589
Unbreak access to Data dir in profile broken in r8b48c27201af
unc0rr
parents:
9466
diff
changeset
|
233 |
// need access to teams and frontend configs (for bindings) |
11631
b3db79b56f28
Pass paths to initModule of uPhysFSLayer (as in 4be6cd55f1cf from qmlfrontend branch)
unc0rr
parents:
11155
diff
changeset
|
234 |
pfsMountAtRoot(userPrefix); |
9988
317d46a2afd2
simple mechanism to run lua-based test cases. experimental - I will back it out if it turns out to be nonsense
sheepluva
parents:
9531
diff
changeset
|
235 |
|
317d46a2afd2
simple mechanism to run lua-based test cases. experimental - I will back it out if it turns out to be nonsense
sheepluva
parents:
9531
diff
changeset
|
236 |
if cTestLua then |
317d46a2afd2
simple mechanism to run lua-based test cases. experimental - I will back it out if it turns out to be nonsense
sheepluva
parents:
9531
diff
changeset
|
237 |
begin |
11643 | 238 |
pfsMountAtRoot(Str2PChar(ExtractFileDir(cScriptName))); |
9988
317d46a2afd2
simple mechanism to run lua-based test cases. experimental - I will back it out if it turns out to be nonsense
sheepluva
parents:
9531
diff
changeset
|
239 |
cScriptName := ExtractFileName(cScriptName); |
317d46a2afd2
simple mechanism to run lua-based test cases. experimental - I will back it out if it turns out to be nonsense
sheepluva
parents:
9531
diff
changeset
|
240 |
end; |
7959 | 241 |
end; |
242 |
||
243 |
procedure freeModule; |
|
244 |
begin |
|
245 |
PHYSFS_deinit; |
|
246 |
end; |
|
247 |
||
248 |
end. |