Skip to content

Commit 604e820

Browse files
authored
Restored behavior of .\ filepath prefix in legacy compat modes (#309)
* Restored behavior of .\ filepath prefix in legacy compat modes. * Fixed 0A99 tests when PortableGTA.asi is used.
1 parent e5d0b2e commit 604e820

4 files changed

Lines changed: 29 additions & 9 deletions

File tree

CHANGELOG.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
## 5.0.1
22
- cleo.log file moved back to the game root (as in CLEO4)
3+
- Restored behavior of '.\\' prefix for scripts in legacy compat mode
34
- fixed **0AB9 ([get_audio_stream_state](https://library.sannybuilder.com/#/sa/audio/0AB9))** not always returning Stopped, despite playback ended
45
- fixed **2507 ([get_audio_stream_progress](https://library.sannybuilder.com/#/sa/audio/2507))** sometimes returning values smaller than 1.0, despite playback ended
56
- fixed progress set with **2508 ([set_audio_stream_progress](https://library.sannybuilder.com/#/sa/audio/2508))** being ignored by stopped streams

source/CScriptEngine.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -681,7 +681,7 @@ namespace CLEO
681681

682682
if(_strcmpi(r, DIR_GAME) == 0) virtualPrefix = VPref::Game;
683683
else if (_strcmpi(r, DIR_USER) == 0) virtualPrefix = VPref::User;
684-
else if (_strcmpi(r, DIR_SCRIPT) == 0) virtualPrefix = VPref::Script;
684+
else if (_strcmpi(r, DIR_SCRIPT) == 0 && !IsLegacyScript((CRunningScript*)this)) virtualPrefix = VPref::Script;
685685
else if (_strcmpi(r, DIR_CLEO) == 0) virtualPrefix = VPref::Cleo;
686686
else if (_strcmpi(r, DIR_MODULES) == 0) virtualPrefix = VPref::Modules;
687687
}

tests/cleo_tests/FilesystemOperations/0A99.txt

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -38,19 +38,21 @@ function tests
3838

3939
function test2
4040
set_current_directory {path} 1 // user files
41-
0@ = resolve_filepath ""
42-
assert_suffix(0@, "\GTA San Andreas User Files", true)
41+
does_file_exist {path} "gta_sa.set" // game's settings file in user dir
42+
assert_result_true()
4343
end
4444

4545

4646
function test3
4747
set_current_directory {path} "root:" // game root
4848
0@ = resolve_filepath ""
4949
assert_eqs(0@, "") // relative to root, so empty
50+
does_file_exist {path} "gta_sa.set" // game's settings file in user dir
51+
assert_result_false()
5052

5153
set_current_directory {path} "user:" // user files
52-
0@ = resolve_filepath ""
53-
assert_suffix(0@, "\GTA San Andreas User Files", true)
54+
does_file_exist {path} "gta_sa.set" // game's settings file in user dir
55+
assert_result_true()
5456

5557
set_current_directory {path} "cleo:" // cleo directory
5658
0@ = resolve_filepath ""

tests/cleo_tests/FilesystemOperations/0AAB.txt

Lines changed: 21 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -10,16 +10,33 @@ function tests
1010

1111
it("should fail on a non-existing file", test1)
1212
it("should success on existing file", test2)
13+
it("should handle .\ prefix", test3)
14+
it_cs4("should handle .\ prefix", test4)
1315
return
14-
16+
1517
function test1
1618
does_file_exist {path} "cleo\not_a_file.txt" // tested opcode
1719
assert_result_false()
1820
end
19-
20-
function test2
21+
22+
function test2
2123
does_file_exist {path} "cleo\.cleo_config.ini" // tested opcode
2224
assert_result_true()
2325
end
24-
26+
27+
function test3
28+
does_file_exist {path} ".\0AAB.s"
29+
assert_result_true()
30+
31+
does_file_exist {path} ".\cleo.asi"
32+
assert_result_false()
33+
end
34+
35+
function test4
36+
does_file_exist {path} ".\0AAB.s"
37+
assert_result_false()
38+
39+
does_file_exist {path} ".\cleo.asi"
40+
assert_result_true()
41+
end
2542
end

0 commit comments

Comments
 (0)