Skip to content

Commit 1871e63

Browse files
authored
Update plugins to v4.4 (#27)
* Update plugins to v4.4 * Update readme
1 parent fe14233 commit 1871e63

File tree

8 files changed

+193
-172
lines changed

8 files changed

+193
-172
lines changed

CHANGELOG.md

Lines changed: 136 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,136 @@
1+
# CLEO 4 Change Log
2+
3+
## 4.4.0
4+
- Dropped Windows XP support
5+
6+
## 4.3.24
7+
- Added the export of some functions required for new version of the CLEO+ plugin, and can be used in other plugins: CLEO_GetScriptTextureById, CLEO_GetInternalAudioStream, CLEO_CreateCustomScript, CLEO_GetLastCreatedCustomScript, CLEO_AddScriptDeleteDelegate, CLEO_RemoveScriptDeleteDelegate.
8+
- Fixed sounds not pausing when unfocus (thanks to dkluin).
9+
- Opcodes for finding entities (0AE1, 0AE2, 0AE3) now use a distance check with optimized performance, and ignore the distance limitation if the argument sent is greater than 1000.0.
10+
- Opcode for finding peds (0AE1) now makes it possible to send "-1" in the "pass_deads" parameter to ignore all checks and return literally all peds.
11+
- Opcode for car number of gears (0AB7) now returns from vehicle class itself instead of using model and handling arrays — now compatible with f92la and IndieVehicles.
12+
- Opcodes for blip target coordinates (0AB6), car name (0ADB) and spawn (0ADD) are now compatible with f92la.
13+
- Now the full version is shown in the SDK and menu text.
14+
15+
## 4.3.23
16+
- Now you can use string pointer in the file address parameter for .ini files opcodes.
17+
- Fixed the 0ABA opcode causing heap corruption.
18+
- Fixed shared variables not reset correctly. Which caused malfunctions in mods that use them and you play a new game or load game in a slot without the variables.
19+
20+
## 4.3.22
21+
- Now creates cleo, cleo/cleo_saves and cleo/cleo_text directories on startup if they do not exist
22+
- Fix to issue with 0AE9 not returning result
23+
24+
## 4.3.21
25+
- Fixed operand type IDs in CLEO.h
26+
- Added 'extern' to variables declared in CLEO.h
27+
- Fix to issue with 0AB1 in missions not storing mission locals
28+
29+
## 4.3.19-20
30+
- Fixed issue with 0AB1 passing incorrect variable scope in missions
31+
- Updated SDK version
32+
33+
## 4.3.17-18
34+
- Fixed potential future problem with 0AB0 which used methods with undefined behaviour
35+
- Fixed incorrect method used for 0AB7
36+
37+
## 4.3.16
38+
- Fixed bugs with CLEO saves when saved scripts ended
39+
- Prevented crashing when invalid audiostream handles are used
40+
41+
## 4.3.15
42+
- Improvemed compatibility fix for opcodes 0AE1, 0AE2 and 0AE3 with incorrect find_next usage
43+
44+
## 4.3.14
45+
- Fixed 0AAA only returning custom scripts
46+
- Fixed many things which use the 'SCM Block' or 'Mission Local Storage' space
47+
- Fixed parameters being passed to script local storage instead of mission local storage through 0A94
48+
- Fixed potential problems with iteration through the script queues (may cause rare and hard to trace bugs)
49+
50+
## 4.3.13
51+
- Fixed crashing when starting a new game after a game has already started with CLEO scripts installed
52+
- Possibly fixed other issues with starting a game with CLEO scripts installed
53+
54+
## 4.3.12.1
55+
- Un-did the 'Scripts no longer load prematurely' fix as it caused scripts to not load certain circumstances (like before CLEO 4)
56+
- Included 'cleo_text' folder in installation
57+
58+
## 4.3.12
59+
- Fixed string parameter skipping in 'SkipOpcodeParams' used by CLEO plugins
60+
- 0AC8 now returns a NULL value to the output var if allocation failed (as it did before 4.3a)
61+
- 0AC9 now checks the memory was allocated by 0AC8 before attempting to free it
62+
- FXT references are now case insensitive (as they were before 4.3a)
63+
- File operations now check the input handle isn't null (as it seems was the way before 4.3a)
64+
- 'Loaded mission' status now reset on new/loaded game (as it was before 4.3a)
65+
- Scripts no longer load prematurely (like before 4.3a)
66+
- Resolved conflicts with other menu hooks such as 'HUME'
67+
- Other minor tweaks
68+
69+
## 4.3.11
70+
- Fixed crash with 0ADA in scripts beginning with an opcode ending in '00'
71+
72+
## 4.3.10
73+
- Improvements to opcodes 0AE1, 0AE2 and 0AE3 - now loops around the pool even when the 'find_next' flag isn't used correctly
74+
- Fixed 0AD2 not returning peds targetted with the mouse, while targetting with a pad worked
75+
76+
## 4.3.9
77+
- Will now be able to start a CLEO mission after recently finishing a standard mission
78+
- Will no longer error & terminate when scripts fail to open and instead simply log the error
79+
- Will no longer terminate on warnings
80+
- No longer includes paths in automatically generated script names (e.g. cleo\dir\demo.cs is now named 'demo.cs' and not 'dir\dem')
81+
- Improved handling of script load errors
82+
83+
## 4.3.8
84+
- Fixed crash which would occur when missions were ended with 004E
85+
86+
## 4.3.7
87+
- Custom missions launched by CLEO scripts now inherit their compatibility mode - possibly fixing incompatibilities with mods using custom missions
88+
- The current directory set by 0A99 is now script-dependant and only affects running CLEO scripts (not the entire game or the main.scm)
89+
- Text and texture/sprite draws are now script-dependant (doesn't affect main.scm scripts)
90+
91+
## 4.3.0
92+
- Replaced code which dynamically allocated and deallocated memory for script parameters every time 0AA5-0AA8 were called with static arrays
93+
- Removed a script execution loop replacement which wasn't used for anything important and weirdly only worked with 1.0US that caused crashes with script logging plugins
94+
- Added support for Steam (v3) versions of gta_sa.exe
95+
- Prevented the local storage from being initialized in SCM functions when the script is in CLEO 3 compatibility mode ('.cs3' extension)
96+
97+
### Updates to behaviour of following opcodes:
98+
99+
#### 0A99
100+
CHANGE_DIRECTORY can now correctly change to the program directory
101+
102+
#### 0A9A
103+
OPEN_FILE now uses a 'legacy' mode when passing an integer as the mode parameter for compatibility of CLEO file handles and SA file handles
104+
Note that you should really not pass CLEO file handles to game functions. However, this legacy mode now ensures that the handles are compatible.
105+
Other file functions have also been updated ensuring that game file handles are passed to relevant game functions.
106+
It is recommended to not rely on passing files to game functions and instead use CLEO 4's in-built file functions in future.
107+
108+
#### 0AD1
109+
CALL now accepts string input, which is passed as a string pointer following string convention
110+
111+
#### 0AD4
112+
SCAN_STRING now returns a condition result
113+
114+
#### 0AE6
115+
FIND_FIRST_FILE now accepts string array output
116+
117+
#### 0AE3
118+
FIND_ALL_RANDOM_OBJECTS_IN_SPHERE now ensures no fading objects are returned and returns -1 instead of 0 on failure
119+
120+
#### 0AE2
121+
FIND_ALL_RANDOM_CARS_IN_SPHERE now ensures no script vehicles or fading vehicle are returned and returns -1 instead of 0 on failure
122+
123+
#### 0AE1
124+
FIND_ALL_RANDOM_CHARS_IN_SPHERE now ensures no script characters or fading characters are returned and returns -1 instead of 0 on failure
125+
126+
#### 0ADF
127+
ADD_TEXT_LABEL now updates existing text labels if they already exist
128+
129+
#### 0AD6
130+
IS_END_OF_FILE_REACHED now returns true if a file error occured
131+
132+
#### 0AD2
133+
GET_CHAR_PLAYER_IS_TARGETING now returns -1 instead of 0 when no target is found
134+
135+
#### 0AB5
136+
STORE_CLOSEST_ENTITIES now ensures no script entities or fading entities are returned and ensures the player ped is not returned

CLEO Changes.txt

Lines changed: 0 additions & 150 deletions
This file was deleted.

CLEO ReadMe.rtf

-4.54 KB
Binary file not shown.

README.md

Lines changed: 38 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,41 @@
1+
# CLEO library for GTA San Andreas
12

2-
# CLEO4
3+
## About
4+
CLEO is a hugely popular extensible library plugin which brings new possibilities in scripting for the game Grand Theft Auto: San Andreas by Rockstar Games, allowing the use of thousands of unique mods which change or expand the gameplay. You may find more information about CLEO on the official website https://cleo.li
35

4-
This is the home repository for the CLEO library (or simply CLEO) - a hugely popular extensible plugin for the Grand Theft Auto games series by Rockstar Games, allowing the use of thousands of unique mods which change or expand the gameplay.
6+
## Installation
7+
CLEO requires an 'ASI Loader' installed to run which is provided with the release. The ASI Loader requires overwriting one original game file: vorbisFile.dll - be sure to make a backup of this file.
8+
No additional files are replaced, however the following files and folders are added:
9+
- cleo\ (CLEO script directory)
10+
- cleo\FileSystemOperations.cleo (file system plugin)
11+
- cleo\IniFiles.cleo (ini config plugin)
12+
- cleo\IntOperations.cleo (int operations plugin)
13+
- cleo\cleo_save\ (CLEO save directory)
14+
- cleo.asi (core library)
15+
- bass.dll (audio engine library)
16+
- vorbisHooked.dll (Silent's ASI Loader)
17+
All plugins are optional, however they may be required by various CLEO scripts.
518

6-
Visit [cleo.li](http://cleo.li/) for binaries and more.
19+
## CLEO Scripts
20+
CLEO allows the installation of 'CLEO scripts', which often use the extension '.cs'. These third-party scripts are entirely user-made and are in no way supported by the developers of this library. While CLEO itself should work in a wide range of game installations, individual scripts are known to have their own compatibility restrictions and can not be guaranteed to work.
21+
A huge range of CLEO scripts can be found on the web, notably via Grand Theft Auto fansites and modding sites such as:
22+
http://hotmist.ddo.jp/cleomod/index.html
23+
http://www.gtagarage.com/
24+
http://gtainside.com/en/download.php?do=cat&id=322
25+
http://zazmahall.de/CLEO.htm
26+
27+
## Compatibility Mode
28+
CLEO is continually being improved and extended over time. In very rare circumstances, some scripts written for CLEO 3 may not work while using CLEO 4. However, since CLEO 4.3 you are able to enable a 'legacy mode' to increase compatibility with CLEO 3 scripts by naming them with the extension '.cs3'. CLEO 4.3 will load '.cs' and '.cs4' scripts normally and load '.cs3' scripts in CLEO 3 compatibility mode, in which certain small behaviours of the CLEO library will change to achieve better compatibility with that script. However, most CLEO 3 scripts will work without the need for compatibility mode being set as CLEO 4.3 also detects certain necessary CLEO 3 behaviours. Specifically, scripts which use the uninitialized storage data after a SCM function call to work.
29+
30+
## Credits
31+
The author and original developer of the CLEO library is Seemann. Development of CLEO 4 was led by Alien and Deji. Today the CLEO library is an open-source project being maintained at https://github.com/cleolibrary
32+
33+
The author of the ASI Loader is Silent. Find out more at: http://gtaforums.com/topic/523982-relopensrc-silents-asi-loader/
34+
35+
Special thanks to:
36+
* Stanislav Golovin (a.k.a. listener) for his great work in exploration of the GTA series.
37+
* NTAuthority and LINK/2012 for additional support with CLEO 4.3.
38+
* mfisto for the alpha-testing of CLEO 4, his support and advices.
39+
40+
The developers have no connection with Take 2 Interactive or Rockstar Games.
41+
By using this product or any of the additional products included you take your own personal responsibility for any negative consequences should they arise.

cleo_sdk/CLEO.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*
2-
CLEO 4.3 header file;
2+
CLEO 4.4 header file;
33
Copyright (c) 2020 Alien, Deji, Junior_Djjr;
44
*/
55
#pragma once

0 commit comments

Comments
 (0)